Class.forName()加载数据库连接驱动。
DriverManager.getConnection()获取数据连接对象。
根据SQL语句获取会话对象,会话对象一般用PreparedStatement类型,
conn.prepareStatement(),注意方法名和类名不一样哟。
执行SQL处理结果集,执行SQL前如果有参数值就设置参数值setXXX()。
关闭结果集、关闭会话、关闭连接。
JDBC操作数据库的常用对象
Connection
创建执行SQL的对象
Statement createStatement()
PreparedStatement prepareStatement(String sql)
CallableStatement prepareCall(String sql) 创建一个CallableStatement对象来调用数据库存储过程
进行事务管理
void setAutoCommit(boolean bl)
void commit()
void rollback()
PreparedStatement
String sql = “SELECT * FROM users WHERE username=? AND PASSWORD=?”;
PreparedStatement pstat = conn.prepareStatement(sql)
执行SQL语句:
int executeUpdate(); –执行insert update delete语句.
ResultSet executeQuery(); –执行select语句.
boolean execute(); –执行select返回true 执行其他的语句返回false.
设置实际参数
void setXxx(int index, Xxx xx) 将指定参数设置为给定Java的xx值。在将此值发送到数据库时,驱动程序将它转换成一个 SQL Xxx类型值。
Statement
执行sql语句
ResultSet executeQuery(String sql)
int executeUpdate(String sql)
批处理执行
void addBatch(String sql) 将给定的SQL命令添加到此Statement对象的当前命令列表中
void clearBatch() 清空此Statement对象的当前命令列表
int[] executeBatch() 将一批命令提交给数据库执行,如果全部成功,则返回更新计数组成的数组
开发中获得连接的4个参数(驱动、URL、用户名、密码)通常都存在配置文件中,方便后期维护,程序如果需要更换数据库,只需要修改配置文件即可。
通常情况下,我们习惯使用properties文件,此文件我们将做如下要求:
1. 文件位置:任意,建议src下
2. 文件名称:任意,扩展名为properties
3. 文件内容:一行一组数据,格式是“key=value”.
a) key命名自定义,如果是多个单词,习惯使用点分隔。例如:jdbc.driver
b) value值不支持中文,如果需要使用非英文字符,将进行unicode转换。
DbUtils结构
DbUtils
JDBC Helper 方法的集合,线程安全。
控制事务,数据库连接,驱动加载等。
构造函数: public DbUtils()
QueryRunner
使用插拔策略执行SQL查询,线程安全。
构造函数:
QueryRunner()
QueryRunner(boolean pmdKnownBroken)
QueryRunner(DataSource ds)
QueryRunner(DataSource ds,boolean pmdKnownBroken)
QueryRunner核心:
update(Connection conn, String sql, Object... params) ,用来完成表数据的增加、删除、更新操作
query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params) ,用来完成表数据的查询操作
ResultSetHandler<T>接口
这个接口的实现类,转换查询结果为对象。
主要实现类:
ArrayHandler:结果集第一行放入Object[]数组中,数组中的元素依次是各个字段的值
ArrayListHandler:结果集每一行放入Object[]数组中,数组中的元素依次是各个字段的值。并将Object[]封装到一个集合List中。
BeanHandler:将结果集中的第一行放入指定的JavaBean对象中。
BeanListHandler:将结果集中的每一行放入指定的JavaBean对象中,并将这些对象封装到List中。
ColumnListHandler:将结果集中指定字段的值封装到一个List中
ScalarHandler:用于但数据处理,如avg,sum,count等
MapHandler:将结果集第一行封装到Map集合中,Key 列名, Value 该列数据
MapListHandler:将结果集第一行封装到Map集合中,Key 列名, Value 该列数据,Map集合存储到List集合
总结jdbc,dbutils
最新推荐文章于 2020-05-22 21:07:01 发布