JDBC:JDBC,即java数据库连接,是一组专门负责连接并操作数据库的标准,其中提供了大量的接口,使用这些接口,java客户端可以访问不同类型的数据库。比如建立数据库连接、执行SQL语句进行数据的增删改查。
JDBC编程步骤
1、加载数据库驱动
Class.forName(driverClass)
其中driverClass就是数据库驱动类所对应的类路径字符串。
2、获取数据库连接
DriverManager.getConnection(String url, String user, String password)
使用DriverManager来获取连接,传入三个参数:数据量的url,用户名,密码
3、通过Connection对象创建Statement/PrepareStatement对象
PrepareStatement(String sql); //根据传入的sql语句创建PrepareStatement对象
4、执行sql语句并返回ResultSet对象
execute();
executeQuery();//执行查询语句,返回ResultSet对象
executeUpdate();//执行DML,DDL语句,返回操作行数
5、操作结果集ResultSet
主要用next()方法,移动指针获取值
6、关闭资源
操作MySQL数据库语句示例:
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/emp_test","root","123456");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from emp_test");
while(rs.next()){
System.out.println("");
}
*Statement会引起sql注入问题,一般多用PrepareStatement
JDBC事务
事务是一步或多步操作序列组成的逻辑执行单元,这个序列要么全部执行,要么全部不执行。
事务的四个特性:
原子性:事务应用最小的执行单元,不可再分。
一致性:事务执行结果,使数据库从一个一致性状态到另一个一致性的状态。
持续性:事务一旦提交,对数据所做的任何改变,都要记录到永久的存储器。
隔离性:各个事务执行互相不干扰,相互隔离。
事务中DDL和DCL语句最多只能有一个,因为他们都会导致事物的立即提交。
当事务操作都成功执行时,应该提交事务,使这些修改永久生效。
事务提交两种方式:
显示提交:使用commit提交
自动提交:执行DDL或DCL,或程序正常退出
当事务任意操作失败时,应该回滚事务,使事务的修改全部失效。
事务回滚两种方式:
显示回滚:使用rollback
自动回滚:系统错误或强行退出
JDBC批量更新
批量更新就是可以同时进行多条sql语句,将会被作为一批操作被同时进行、同时提交。
public int[] executeBatch(String[] sql) throws SQLException {
int[] result = null;
conn = DBHelper.getConnection();
try {
//获得当前Connection的提交模式
boolean autoCommit = conn.getAutoCommit();
//关闭自动提交模式
conn.setAutoCommit(false);
sm = conn.createStatement();
for (String s : sql) {
sm.addBatch(s);
}
//执行批量更新
result = sm.executeBatch();
//提交事务
conn.commit();
//还原提交模式
conn.setAutoCommit(autoCommit);
} catch (Exception e) {
e.printStackTrace();
conn.rollback();
} finally {
if (sm != null) {
sm.close();
}
DBHelper.close();
}
return result;
}