使用properties配置文件
位置:任意,src最佳
名称:.properties结尾
内容:key=value格式,value不支持中文,可用Unicode转换
注释:#
创建配置文件:创建properties文件,写入键值对
加载配置文件:load()方法加载流->getProperty(key)获得值
读取配置文件:获取连接【执行一次,静态代码块】
JDBCUtils类(导包)
定义:是java编程中的数据库操作实用工具,小巧简单实用
事务:将多条sql语句包装成一个事务。
执行成功,提交事务:commit(所有语句均成功 )
执行失败,回滚事务:rollback(但凡一条语句不成功)
三个核心功能介绍:
QueryRunner:中提供对sql语句操作的API.
ResultSetHandler接口:用于定义select操作后,怎样封装结果集.
DbUtils类:工具类,定义了关闭资源与事务处理的方法
QueryRunner的Update 实现添加、更新、删除操作
Insert/delete/update
【Update(Connection con,String sql,Object…param)】
步骤:
连接数据库->创建QueryRunner对象->编写sql->调update()->处理结果集->释放资源
调用QueryRunner()方法->ResultSetHandler r 结果集处理
QueryRunner的Query 查询操作
处理结果集8大方法
ResultSetHandler结果集处理
ArrayHandler:将结果集中的第一条记录封装到一个Object[]数组中
【Object[] result = qr.query(con, sql, new ArrayHandler());】
ArrayListHandler:每条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。
【List<Object[]> result = qr.query(con, sql, new ArrayListHandler());】
BeanHandler:将结果集中第一条记录封装成javaBean对象。
【Sort s = qr.query(con, sql, new BeanHandler<Sort>(Sort.class));】
BeanListHandler:将结果集中每一条记录封装到javaBean中,将这些javaBean在封装到List集合中
【List<Sort> s = qr.query(con, sql, new BeanListHandler<Sort>(Sort.class));】(sort是一个根据数据库建的一个类)
ColumnListHandler:将结果集中指定的列的字段值,封装到一个List<Object o>集合中
【List<Object>list = qr.query(con, sql, new ColumnListHandler<Object>("列名"));】
ScalarHandler:它是用于单数据。查询后只有一个结果集(一行一列)时使用
【Object count = qr.query(con, sql, new ScalarHandler<Object>());】
MapHandler:将结果集第一行封装到Map集合中,Key 列名, Value 该列数据
【Map<String,Object> map = qr.query(con,sql,new MapHandler());】
MapListHandler:将结果集第一行封装到Map集合中,Key 列名, Value 该列数据,Map集合存储到List集合
【List<Map<String,Object>> list = qr.query(con,sql,new MapListHandler());】
//ArrayHandler处理集 private static void arrayHandlerM() throws SQLException { Connection con = JDBCUtilsss.getConnection(); //获取QueryRunner对象 QueryRunner qr = new QueryRunner(); //执行SQL语句 String sql = "select * from sort"; //调用query执行查询,传递连接对象,sql语句,结果集处理方式,返回一个对象数组 Object[] result = qr.query(con, sql, new ArrayHandler()); for (Object oo : result) { System.out.print(oo+" "); } }
/ArrayListHandler处理结果集 private static void arrayListHandlerM() throws SQLException { Connection con = JDBCUtilsss.getConnection(); //获取QueryRunner对象 QueryRunner qr = new QueryRunner(); String sql = "select * from sort"; //将获取的结果集存入集合,集合中存入每条语句构成的数组 List<Object[]> result = qr.query(con, sql, new ArrayListHandler()); for (Object[] objs : result) { for (Object obj : objs) { System.out.print(obj+" "); } System.out.println(); } }
//BeanListHandler private static void beanListHandlerM() throws SQLException { Connection con = JDBCUtilsss.getConnection(); //获取QueryRunner对象 QueryRunner qr = new QueryRunner(); String sql = "select * from sort"; List<Sort> s = qr.query(con, sql, new BeanListHandler<Sort>(Sort.class)); for (Sort ss : s) { System.out.println(ss); } }
//ColumnListHandler private static void columnListHandlerM() throws SQLException { Connection con = JDBCUtilsss.getConnection(); //获取QueryRunner对象 QueryRunner qr = new QueryRunner(); String sql = "select * from sort"; List<Object>list = qr.query(con, sql, new ColumnListHandler<Object>("sname")); for (Object s : list) { System.out.println(s); } }
//ScalarHandler private static void scalarHandlerM() throws SQLException { Connection con = JDBCUtilsss.getConnection(); //获取QueryRunner对象 QueryRunner qr = new QueryRunner(); String sql = "select count(*) from sort"; Object count = qr.query(con, sql, new ScalarHandler<Object>()); System.out.println(count); }
//MapListHandler private static void mapListHandlerM() throws SQLException { Connection con = JDBCUtilsss.getConnection(); //获取QueryRunner对象 QueryRunner qr = new QueryRunner(); String sql ="select * from sort"; List<Map<String,Object>> list = qr.query(con, sql, new MapListHandler()); //获取到每个Map,遍历得到信息 for (Map<String, Object> map : list) { for (Object keys : map.keySet()) { System.out.print(keys+".."+map.get(keys)); } System.out.println(); } }