注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
获取连接
Connection connection=DriverManager.getConnection(url,username,password)
定义SQL语句
String sql="select xxx from table";
获取执行SQL对象
Statement statement = connection.createStatement();
执行SQL
statement.execute(sql);
获取返回后的结果
ResultSet resultSet = statement.getResultSet();
释放资源
statement.close();
connection.close();
registerDriver(Driver driver)
作用:用于注册驱动
参数:驱动对象
Class.forName(“com.mysql.cj.jdbc.Driver”) 注册驱动底层实现
static {
try {
java.sql.DriverManager.registerDriver(new Driver());//类被加载时调用注册方法
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}
getConnection(url,username,password)
作用:用于创建数据库连接
参数: url:数据库连接url username:用户名 password:密码
返回值:Connection对象
1.获取执行SQL的对象
2.管理事务
获取普通执行SQL对象
connection.createStatement()
获取预编译SQL执行对象(防止SQL注入)
connection.prepareStatement(sql)
获取执行存储过程对象
connection.prepareCall(sql)
事务管理API
开启事务
connection.setAutoCommit();
提交事务
connection.commit();
回滚事务
connection.rollback();
作用:执行SQL语句
作用:获取查询结果
作用:预编译SQL并执行SQL语句,利用转义符对参数进行转义处理
操作流程
获取PreparedStatement对象:sql中的参数用?进行占位
connection.prepareStatement(sql)
设置参数值setXxx
执行SQL:executeUpdate() executeQuery() 不需要再传递sql
原理:
1.在获取PreparedStatement对象时,将sql语句发送给mysql服务器进行检查、编译(步骤很耗时)
2.执行时就不用再进行这些步骤了,速度更快
3.如果sql模板一样,则只需要进行一次检查、编译
开启PreparedStatment预编译功能:在url参数中添加useServerPrepStmts=true