JDBC学習記録

2887 ワード

JDBC接続データベース
1.ドライバのロード
Class.forName(driver);
driver = “com.MySQL.jdbc.Driver”

2.接続オブジェクトの作成
String url = "jdbc:mysql://localhost:3306/test";//url test       
Connection con = DriverManager.getConnection(url,username,password);

3.sql文実行オブジェクトの作成
  • Statementクラス
  • 分:Statement,PreparedStatement,CallableStatement
  • Statement st = con.createStatement();//sql    
    Statement stmt = con.createStatement() ;
    PreparedStatement pstmt = con.prepareStatement(sql);
    CallableStatement cstmt = con.prepareCall(“{CALL demoSp(? , ?)}”) ;
    
  • Stmt実行オブジェクト
  • ResultSet rs = st.executeQuery(sql);//  sql        
    

    4.sql文の実行
    Statementの利用
    ResultSet executeQuery(String sqlString)
    

    クエリー・データベースのSQL文を実行し、結果セット(ResultSet)オブジェクトを返します.
    int executeUpdate(String sqlString)
    

    INSERT、UPDATEまたはDELETE文、およびSQL DDL文の実行に使用されます.たとえば、CREATE TABLEやDROP TABLEなどです.
    execute(sqlString)
    

    複数の結果セット、複数の更新カウント、または両方の組合せを返す文を実行します.
    5.実行結果の処理
  • ResultSetクラスのメソッド
  • Num
    方法
    説明
    1
    byte getByte(int columnIndex)
    指定したフィールドのバイト値を返します.
    2
    Date getDate(int columnIndex)
    指定したフィールドの日付値を返します.
    3
    Float getFloat(int columnIndex)
    指定したフィールドの浮動小数点値を返します
    4
    int getInt(int columnIndex)
    指定したフィールドの整数値を返します.
    5
    String getString(int columnIndex)
    指定したフィールドの文字列値を返します.
    6
    double getDouble(String columnName)
    指定したフィールドの二重精度値を返します.
    7
    long getLong(String columnName)
    指定したフィールドのlong型整数値を返します
    8
    boolean next()
    次のフィールドがあるかどうかを返します
            System.out.println(“username: “+rs.getString(1));//           
            System.out.println(“useradd: “+rs.getString(“useradd”));//         
            System.out.println(“userage: “+rs.getInt(“userage”));
    

    6.関連する接続オブジェクトを閉じる
            con.close();//    :con
    
  • 実行オブジェクト、結果オブジェクト、接続オブジェクトを閉じる必要があります.(順序は宣言の順序とは逆)
  • 6.補足:PrepareStatement
  • PrepareStatementは、事前にコンパイルされたSQL文
  • を表すStatementのサブクラスです.
  • PreparedStatementオブジェクトが表すSQL文のパラメータは疑問符(?)
  • を表す
  • Statementに対する性能向上:prepareStatementはSQLを初期化し、まずこのSQLをデータベースに提出して前処理を行い、複数回使用すると効率が向上する
  • 使用法:更新文
  • PreparedStatement updateSales = con.prepareStatement("UPDATE COFFEES SET SALES = ? WHERE COF_NAME LIKE ? ");
    updateSales.setInt(1, 75);
    updateSales.setString(2, "Colombian");
    updateSales.executeUpdate();
    

    クエリ文
    PreparedStatement pre = con.prepareStatement("SELECT * FROM XXXX WHERE XX = ?");
    pre.setInt(1,xx);
    ResultSet rt = pre.executeQuery();
    

    文の削除
    PreparedStatement pstmt = con.prepareStatement("DELETE XXXXXXX");
    pstmt.execute();