mysql之jdbc

sql执行过程

在这里插入图片描述

jdbc简介

JDBC(Java DataBase Connectivity)是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够执行SQL语句。
在这里插入图片描述

jdbc开发步骤

  • 获取连接
  • 获取语句执行平台
  • 执行sql语句
  • 处理结果
  • 释放资源

获取连接

String url="jdbc:mysql://localhost:3306/test?serverTimezone=UTC";
String user="root";
String pwd="123456";
//获取连接对象
Connection con=DriverManager.getConnection(url,user,pwd);

获取连接这一步直接使用SPI(Service Provider Interface)机制将驱动类注册入内存。SPI机制在我的另一篇文章中。

获取语句执行平台

有2个执行平台

  • PrepareStatement
  • Statement
  1. 量比较小,二者皆差别不大。
  2. 量比较多,在PreparedStatement预编译空间范围之内,选择PreparedStatement,因为其只预编译一次sql语句。
  3. 量特别大,使用Statement,因为PrepareStatement的预编译空间有限,当数据量特别大时,会发生异常。

Statement

Statement stat = conn.createStatement();
stat.addBatch("drop database if exists mydb5");
stat.addBatch("create database mydb5");
stat.addBatch("insert into tb_batch values(null,'a')");
stat.addBatch("insert into tb_batch values(null,'bbb')");
stat.addBatch("insert into tb_batch values(null,'cccccc')");
stat.executeBatch(); 

PrepareStatement

//开始事务
conn.setAutoCommit(false);
String sql = "insert into tb_batch values (null,?)";
PreparedStatement ps = conn.prepareStatement(sql);
for(int i=2000;i<3000;i++){
ps.setString(1, "tong"+i);
ps.addBatch();
}
ps.executeBatch();
//提交事务
conn.commit();

执行sql

ps.executeBatch();
ps.execute();
ps.executeUpdate();

处理结果集

ResultSet rs=s.executeQuery(sql);
while (rs.next()) {
    String id = rs.getString(1);
    String name = rs.getString(2);
    System.out.println(id+"  "+name);
}

关闭资源

conn.close();
ps.close();
发布了23 篇原创文章 · 获赞 1 · 访问量 507

猜你喜欢

转载自blog.csdn.net/qq_38783257/article/details/104030357