- Jdbc (java database connection)执行增删改查操作步骤
1. 引入jdbc的jar包
2. 准备sql语句
String sql=”select |delete|update|insert.... ?”; |
3. 加载jdbc驱动
Class.forName(“com.mysql.cj.jdbc.Driver”); |
4. 获取连接对象,与数据库建立连接
Connection conn=DriverManager.getConnection(url,uname,pwd); url=”jdbc:mysql://localhost:3306/数据库名?serverTimezone=UTC”; |
5. 获取命令对象,发送sql语句结构
PreparedStatement psmt=conn.prepareStatement(sql); |
5.1 如果sql有占位符,设置占位符值
psmt.setXXX(下标,值); //下标从1开始 |
6. 执行sql语句,返回结果
6.1 如果查询sql,返回结果集
ResultSet rs=psmt.executeQuery(); |
6.2 如果增删改sql,返回受影响的行数
int row=psmt.executeUpdate(); |
7. 关闭 (后创建的先关闭)
rs.close(); psmt.close(); conn.close(); |
- 调用存储过程
1.存储过程的sql语句(需要转义:{})
String sql=”{call 存储过程名( ?,? ...)}”; |
2.获取CallableStatement命令对象
CallableStatement cs=conn.prepareCall(sql); |
3. 如果输入参数in,设置值
cs.setXXX(下标,值); |
4. 如果输出参数out,注册输出参数类型
cs.registerOutParameter(下标, Types.XXX); |
5. 执行存储过程
cs.execute(); |
获取输出参数的值
cs.getXXX(下标); |
- 事务
作用:多条DML的sql语句看成一个整体,要么都成功,要么都失败。
步骤:
1. 设置提交方式为手动提交 conn.setAutoCommit(false); 2. 提交事务 conn.commit(); 3. 回滚事务 conn.rollback(); |
四大特性:
原子性(Atomicity):指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 一致性(Consistency)事务必须使数据库从一个一致性状态变换到另外一个一致性状态。 隔离性(Isolation)事务的隔离性是指一个事务的执行不能被其他事务干扰。 持久性(Durability)持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响。
- 批处理
作用:大批量处理数据,提高效率。(减少程序和数据库的交互)
步骤:
psmt.addBatch(); //添加批处理,数据放到批处理 psmt.executeBatch(); //执行批处理 psmt.clearBatch(); //清除批处理 |