- Jdbc实现增删改查操作步骤 (java database connection )
- 引入jar包
|
- 准备sql语句
String sql=”select|insert|update|delete”; |
- 加载jdbc驱动类
Class.forName(oracleClass); oracleClass=”oracle.jdbc.Driver.OracleDriver”; |
- 创建连接对象,与数据库建立连接
Connection conn=DriverManager.getConnection(url,uname,pwd); url=”jdbc:oracle:thin:@localhost:1521:orcl”; uname=”scott”; pwd=”tiger”; |
- 创建命令对象,发送sql语句
PreparedStatement psmt=conn.prepareStatement(sql); //如果sql有占位符?,设置占位符的值 psmt.setXXX(下标,值); |
- 执行sql语句,并返回结果
如果增,删,改sql语句,返回受影响的行数
int row=psmt.executeUpdate(); |
如果查询sql语句,返回查询结果集
ResultSet rs=psmt.executeQuery(); |
- 释放资源
rs.close(); psmt.close(); conn.close(); |
- 元数据 ResultSetMetaData
数据中的数据
ResultSet返回查询的结果集数据,如果希望从结果集中获取总列数,
以及每列的列名,列类型,需要使用元数据。
-
- 获取元数据对象
ResultSetMetaData rsmd=rs.getMetaData(); |
-
- 获取总列数
int getColumnCount(); |
-
- 获取列名
String getColumnName(int column); |
-
- 获取列数据类型
String getColumnTypeName(int column); |
- 调用存储过程
3.1存储过程sql语句需要转义
String sql=”{call 存储过程名(?,?...)}”; |
3.2 创建存储过程命令对象CallableStatement
CallableStatement cs=conn.prepareCall(sql); |
3.3 如果占位符是in输入参数,设置值
cs.setXXX(下标,值); |
3.4 如果占位符是out输出参数,注册输出参数类型
cs.registerOutParameter(下标, Types.数据类型 |
3.5 执行存储过程
cs.execute(); |
3.6 获取输出参数的值
cs.getXXX(下标); |
- 事务
4.1 设置连接对象提交方式为手动提交
conn.setAutoCommit(false); |
4.2 提交
conn.commit(); |
4.3回滚
conn.rollback(); |
- 批处理
作用: 批量数据操作,提高效率
5.1添加批处理
psmt.addBatch(); |
5.2 执行批处理
psmt.executeBatch(); |
5.3 清除批处理
psmt.clearBatch(); |