JDBC
JDBC开发步骤
1.注册驱动:导入驱动jar包,创建lib目录,用于存放当前项目所需要的所有jar包,选择jar包,右键执行build path /Add to Build Path
使用static void registerDriver(Driver driver),Driver是一个接口,参数传递应该是MySQL驱动程序中的实现类 ,但从源码发现会注册两次,所以应该用反射技术将驱动类直接加入到内存 Class.forName(String className)
2.获得连接:
static Connection getConnection(String url, String user, String password)
返回值是Connection接口的实现类,在mysql驱动程序里
url:数据库地址: jdbc:mysql://连接主机IP:端口号//数据库名字
3.获得语句执行平台
对象调用方法 Statement createStatement() 获取Statement对象,将SQL语句发送到数据库,返回值是Statement接口的实现类对象,在 mysql驱动程序
4.执行sql语句
通过执行者对象调用方法执行sql语句,获取结果
int executeUpdate(String sql):执行数据库中的SQL语句,仅限insert,delete,update
返回值int,操作成功数据表多少行
ResultSet executeQuery(String sql):执行SQL语句中的select查询
5.处理结果
boolean next() ResultSet接口方法: 返回true,有结果集,false,无结果集
获取每列数据,使用的是ResultSet接口的方法getXX方法,参数中,建议写String列名
6.释放资源
防止注入攻击
Statement的子接口PreparedStatement(SQL预编译存储,多次高效的执行SQL)
PreparedStatement prepareStatement(String sql) :Connection接口实现类对象调用方法创建PreparedStatement接口实现类对象, 方法中参数,SQL语句中的参数全部采用问号占位符, 调用PreparedStatement对象set方法,设置问号占位符上的参数
DBUtils
DBUtils是java编程中的数据库操作实用工具,DBUtils封装了对JDBC的操作,简化了JDBC操作。
DBUtils的三个核心功能:
- QueryRunner中提供对sql语句操作的API
- ResultSetHandler接口,用于定义select操作后,怎样封装结果集
- DBUtils类,它就是一个工具类,定义了关闭资源与事务处理的方法
QueryRunner类
- 实现对数据表的insert,delete,update,调用QueryRunner类的方法update(Connection
con,String sql,Object
…param),Object…param可变参数,Object类型,写这个参数的原因是SQL语句中会出现?占位符 - QueryRunner数据查询操作:调用QueryRunner类方法: query(Connection conn, String
sql, ResultSetHandler rsh, Object… params), ResultSetHandler
rsh表示结果集的处理方式,需要传递ResultSetHandler 接口的实现类, Object…
params表示SQL语句中的问号占位符,query方法返回值是T 泛型,具体返回值类型,跟随结果集处理方式变化
ResultHandler结果集处理类
- ArrayHandler,将结果集中的第一条记录封装到一个Object[]数组中,数组中的第一个元素就是这条记录中每一个字段的值
- ArrayListHandler:将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组再封装到List集合中
- BeanHandler:将结果集中第一条记录封装到一个指定的javaBean中
- BeanListHandler:将结果集中的每一条记录封装到指定的javaBean中,将这些javaBean再封装到List集合中
- ColumnListHandler:将结果集中指定的列的字段值,封装到一个List集合中
- ScalarHandler:它是用于接受单数据
- MapHandler:将结果集第一行封装到Map集合中