- 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(); |
2.调用存储过程
存储过程:类似于java中的方法,特定业务功能封装成存储过程
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(); |
6.获取输出参数的值
cs.getXXX(下标); |
3.事务
作用:多条DML的sql语句看成一个整体,要么都成功,要么都失败。
步骤:
1. 设置提交方式为手动提交,等价与start transaction conn.setAutoCommit(false); 2. 提交事务 conn.commit(); 3. 回滚事务 conn.rollback(); |
四大特性:CRID 原子性、一致性、隔离性、持久性
4.批处理
作用:大批量处理数据,提高效率。(减少程序和数据库的交互)
步骤:
psmt.addBatch(); //添加批处理,数据放到批处理 psmt.executeBatch(); //执行批处理 psmt.clearBatch(); //清除批处理 |