Mysql接続データベース:PreparedStatement.addBatch()メソッド

4339 ワード

1.Eclipse MySQLデータベースへの接続
mysql>CREATE DATABASE test;//データベースの作成
mysql>use  test;//testを現在操作するデータベースとして指定
mysql>CREATE TABLE user (name VARCHAR(20),password VARCHAR(20));//テーブルuserを作成し、2つのフィールドを設定します.
mysql>INSERT INTO user VALUES('huzhiheng','123456');//テーブルにデータを挿入
2.ドライバがインポートされました.次に、プログラム検証を書きます.

import java.sql.*;
public class MysqlJdbc {
  public static void main(String args[]) {
    try {
      Class.forName("com.mysql.jdbc.Driver");     //  MYSQL JDBC       
      //Class.forName("org.gjt.mm.mysql.Driver");
     System.out.println("Success loading Mysql Driver!");
    }
    catch (Exception e) {
      System.out.print("Error loading Mysql Driver!");
      e.printStackTrace();
    }
    try {
      Connection connect = DriverManager.getConnection(
          "jdbc:mysql://localhost:3306/test","root","198876");
           //  URL    jdbc:mysql//     /      ,   2              

      System.out.println("Success connect Mysql server!");
      Statement stmt = connect.createStatement();
      ResultSet rs = stmt.executeQuery("select * from user");
                                                              //user       
      while (rs.next()) {
        System.out.println(rs.getString("name"));
      }
    }
    catch (Exception e) {
      System.out.print("get data error!");
      e.printStackTrace();
    }
  }
}

データベースへの接続に成功したことを示す結果が表示されます.
3.MySQLの内容を見ることができますが、私たちはMySQLにデータを挿入したいのではないでしょうか.次の例では、MySQLのuserテーブルに100個のデータを挿入します.

import java.sql.*;

public class Myjproject {
 public static void main(String args[])
 {
     try {
          Class.forName("com.mysql.jdbc.Driver");     //  MYSQL JDBC       
          //Class.forName("org.gjt.mm.mysql.Driver");
         System.out.println("Success loading Mysql Driver!");
        }
        catch (Exception e) {
          System.out.print("Error loading Mysql Driver!");
          e.printStackTrace();
        }
  try {
      Connection connect = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test","root","198876");
     
       int num=100;
       PreparedStatement Statement=connect.prepareStatement("INSERT INTO user VALUES(?,?)");
       for(int i=0;i<num;i++)        //   100    ,          。
      {
           Statement.setString(1,"chongshi"+i);
           Statement.setString(2,"bo"+i);
           Statement.executeUpdate();
   }

  // } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
   // System.out.println("An error has occurred:"+e.toString());
  //  e.printStackTrace();
   }catch(SQLException e)
   {
   }
 }
}

PreparedStatementについてaddBatch()メソッド
StatementとPreparedStatementの違いはくだらないことではなく、PreparedStatementの最も重要なaddbatch()構造の使用を直接言う.
1.リンクを確立する(電話でダイヤルする)
  Connection    connection =getConnection();

2.自動ではないCommit(瓜は1個ずつ食べるのではなく、全部剥いてテーブルの上に広げ、ひと口舐めた)
connection.setAutoCommit(false);
  
3.事前にSQL文をコンパイルして、一回だけコンパイルして、効率が高いです.△瓜を剥く方法を発明して、これからはどうやって瓜を剥くかを考えないでください.
PreparedStatement statement = connection.prepareStatement("INSERT INTO TABLEX VALUES(?, ?)");   

4.一つ剥いてテーブルの上に置く
//  1
statement.setInt(1, 1); 
statement.setString(2, "Cujo"); 
statement.addBatch();   

//  2
statement.setInt(1, 2); 
statement.setString(2, "Fred"); 
statement.addBatch();   

//  3
statement.setInt(1, 3); 
statement.setString(2, "Mark"); 
statement.addBatch();   

//      3   .     ,  
int [] counts = statement.executeBatch();   

//Commit it    ,   (DB)  
connection.commit();