一.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.pngPaste_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的子类;
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
}
网友评论