一.JDBC介紹
Paste_Image.png
二.準備
*下載mysql-connector-java-5.1.38.jar
- 在項目根目錄新建lib目錄,并將mysql-connector-java-5.1.38.jar 復制到給目錄下
- 在Eclipse編輯器中右鍵點擊mysql-connector-java-5.1.38.jar ->
Build Path
->Add to Build Path
,將其添加到環境變量中,操作完成后編輯器會在根目錄下自動生成Referenced Libraries
->mysql-connector-java-5.1.38.jar
,代表環境變量添加成功;
三.Demo之(對面的女孩看過來)
Paste_Image.png
Paste_Image.png
四.執行SQL語句的兩種方式
- (1) 通過Statement對象執行方法,直接執行
//加載驅動程序
Class.forName("com.mysql.jdbc.Driver");
//獲取數據庫連接
Connection conn = DriverManager.getConnection(URL, NAME, PASS);
//創建Statement對象
Statement stmt = (Statement) conn.createStatement();
ResultSet res = stmt.executeQuery("select id from goodess");
while(res.next())
{
System.out.println(res.getInt("id"));
}
- (2) 現將sql語句進行預編譯,然后為預編譯的占位符賦值后執行
String sql = " insert into goodess (user_name,sex,birthday,add_time,update_time) " +
"values (" +
"?,?,?,current_date,current_date)";
//預編譯
PreparedStatement ptmt = conn.prepareStatement(sql);
//為預編譯的占位符賦值
ptmt.setString(1, gs.getUser_name());
ptmt.setInt(2,gs.getSex());
ptmt.setDate(3, new Date(gs.getBirthday().getTime()));
//執行sql語句
ptmt.execute();
五.日期類型注意
- 如果從java.util.date類型的數據,新增到數據庫中的java.sql.date類型字段時,序號轉換為java.util.date類型才可以,而從數據庫查出來的java.sql.date類型字段向類的屬性java.util.date類型賦值是不需要轉換的,因為java.sql.date是java.util.date的子類;
Paste_Image.png
JDBC其他應用
Paste_Image.png
批量新增
public static void batchInsert() throws ClassNotFoundException, SQLException{
long start = System.currentTimeMillis();
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection(
"jdbc:mysql://127.0.0.1:3306/kxh?useServerPrepStmts=false&rewriteBatchedStatements=true",
"root", "root");
connection.setAutoCommit(false);
PreparedStatement cmd = connection
.prepareStatement("insert into test1 values(?,?)");
for (int i = 0; i < 1000000; i++) {//100萬條數據
cmd.setInt(1, i);
cmd.setString(2, "test");
cmd.addBatch();
if(i%1000==0){
cmd.executeBatch();
}
}
cmd.executeBatch();
connection.commit();
cmd.close();
connection.close();
long end = System.currentTimeMillis();
System.out.println("批量插入需要時間:"+(end - start)); //批量插入需要時間:24675
}