[spring] JDBC


JDBC


データベースを処理するJava APIとして、DBMSを考慮せずにJDBCクエリ文を介して必要なデータを受信する.
動作順序
1.JDBCドライバのロード
Class.forName(driver);
  • DB接続
  • Connection conn = DriverManager.getConnection(url, uid, pwd);
  • DBタスク
  • Statement st = conn.createStatement();
    ResultSet rs = st.executeQuery(query);  //값이 여러개로 구해지는 경우
    stuList = new ArrayList<StudentVO>();
    while(rs.next()) {  // rs.next() 1행을 읽어올것이 없다면 false, 읽어나올 것이 있다면 읽어 나온 값을 가지고 있음.
    	StudentVO vo = new StudentVO();
    	//vo.setStuno(rs.getInt(1)); 와 밑은 같은 코드
            vo.setStuno(rs.getInt("empno"));
    }
    PreparedStatement ps = conn.prepareStatement(query);
    ps.setString(1, vo.getName());
    int result = ps.executeUpdate(); //변경후 반환하는 결과값이 행의 개수인 경우
  • DB切断
  • conn.close(); st.close();

    接続プール


    複数のDB接続を作成して保存し、必要に応じて複数のユーザーが使用できるように1つポップアップします.
  • より高速、再利用可能、制御可能接続オブジェクト
  • JNDI


    ディレクトリ・サービスによって提供されるデータおよびオブジェクトの検出および参照に使用されるJava API.
    📋JDBC/JNDI差異
    既存のJDBCは接続プールを使用しているが、性能が悪い.
    テーブル名、ユーザー名、パスワードなどを複数変更する必要がある場合や、他のDBMSを複数変更する必要がある場合は、コネクタプール(JDBC設定)やパラメータを変更する必要がある場合に使用できます.

    Driver.properties


    propertiesファイルを個別に管理する理由は、非表示にするためです.
    #Driver.properties
    driver = ~
    url = ~
    user = ~
    pwd = ~
    🚨ソースコードにアップロードしないように注意!
    --デザインモード

    モノトーンモード


    1つの設計モードで、最初のメモリのみを割り当て(静的)、メモリにインスタンスを作成します.
    複数回呼び出されても、実際に生成されたオブジェクトは1つしかありません!!
    Class Example {
    	Example e = new Example();
    }
    public static Example getInstance(){
    	return e;
    }
    Example e1 = Example.getInstance();
    Example.e1

    JDBCプロジェクトの実施


    構成


    Model - Service, Dao, Vo
    View - View
    Controller - Controller
    🤔View → Controller → Service → Dao → Vo