dbutils的总结

1.DbUtils

1.概述

DBUtils封装了对JDBC的操作,简化了JDBC操作,可以少写代码。

DBUtils就是JDBC的简化开发工具包。需要项目导入commons-dbutils-1.6.jar才能够正常使用DBUtils工具。

2.核心功能

update

(Connection conn, String sql, Object… params) ,用来完成表数据的增加、删除、更新操作

query

(Connection conn, String sql, ResultSetHandler rsh, Object… params) ,用来完成表数据的查询操作

ResultSetHandler

接口,用于定义select操作后,怎样封装结果集.

3.update

	//* A: QueryRunner类实现insert添加数据


			public class QueryRunnerDemo {

				private static Connection con = JDBCUtilsConfig.getConnection();

				public static void main(String[] args)throws SQLException {

					insert();			

				}				

				/*

				 * 定义方法,使用QueryRunner类的方法update向数据表中,添加数据

				 */

				public static void insert()throws SQLException{

					//创建QueryRunner类对象

					QueryRunner qr = new QueryRunner();

					String sql = "INSERT INTO sort (sname,sprice,sdesc)VALUES(?,?,?)";

					//将三个?占位符的实际参数,写在数组中

					Object[] params = {"体育用品",289.32,"购买体育用品"};

					//调用QueryRunner类的方法update执行SQL语句

					int row = qr.update(con, sql, params);

					System.out.println(row);

					DbUtils.closeQuietly(con);

				}

			}



// QueryRunner类实现update修改数据


			public class QueryRunnerDemo {

				private static Connection con = JDBCUtilsConfig.getConnection();

				public static void main(String[] args)throws SQLException {

					update();

				}				

				/*

				 *  定义方法,使用QueryRunner类的方法update将数据表的数据修改

				 */

				public static void update()throws SQLException{

					//创建QueryRunner类对象

					QueryRunner qr = new QueryRunner();	

					//写修改数据的SQL语句

					String sql = "UPDATE sort SET sname=?,sprice=?,sdesc=? WHERE sid=?";

				//定义Object数组,存储?中的参数

					Object[] params = {"花卉",100.88,"情人节玫瑰花",4};

					//调用QueryRunner方法update

					int row = qr.update(con, sql, params);

					System.out.println(row);

					DbUtils.closeQuietly(con);

				}				

			}

	//* A: QueryRunner类实现delete删除数据

			public class QueryRunnerDemo {

			private static Connection con = JDBCUtilsConfig.getConnection();

				public static void main(String[] args)throws SQLException {

					delete();
				}
				/*

				 *  定义方法,使用QueryRunner类的方法delete将数据表的数据删除

				 */

				public static void delete()throws SQLException{

					//创建QueryRunner类对象

					QueryRunner qr = new QueryRunner();	

					//写删除的SQL语句

					String sql = "DELETE FROM sort WHERE sid=?";

					//调用QueryRunner方法update

					int row = qr.update(con, sql, 8);

					System.out.println(row);

					/*

					 *  判断insert,update,delete执行是否成功

					 *  对返回值row判断

					 *  if(row>0) 执行成功

				 */

					DbUtils.closeQuietly(con);

				}				

			}

4.QueryRunner

1.QueryRunner

​ query(Connection conn, String sql, ResultSetHandler rsh, Object… params) ,用来完成表数据的查询操作

注意:ResultSetHandler r 结果集的处理方式,传递ResultSetHandler接口实现类

​ Object…params SQL语句中的?占位符

注意: query方法返回值,返回的是T 泛型, 具体返回值类型,跟随结果集处理方式变化

2.ResultSetHandler
  1. ArrayHandler

    将结果集中的第一条记录封装到一个Object[]数组中,数组中的每一个元素就是这条记录中的每一个字段的值

  2. ArrayListHandler

    将结果集中的每一条记录都封装到一个Object[]数组中,将这些数组在封装到List集合中。

  3. BeanHandler

    将结果集中第一条记录封装到一个指定的javaBean中。

  4. BeanListHandler

    将结果集中每一条记录封装到指定的javaBean中,将这些javaBean在封装到List集合中

  5. ColumnListHandler

    将结果集中指定的列的字段值,封装到一个List集合中

  6. ScalarHandler

    它是用于单数据。例如select count(*) from 表操作。

  7. MapHandler

    将结果集第一行封装到Map集合中,Key 列名, Value 该列数据

  8. MapListHandler

    ​ 将结果集第一行封装到Map集合中,Key 列名, Value 该列数据,Map集合存储到List集合

5.实例

1.ArrayHandler

	public class QueryRunnerDemo1 {

				private static Connection con = JDBCUtilsConfig.getConnection();

				public static void main(String[] args) throws SQLException{

					arrayHandler();

				}	

				/*

				 *  结果集第一种处理方法, ArrayHandler

				 *  将结果集的第一行存储到对象数组中  Object[]

				 */

				public static void arrayHandler()throws SQLException{

					QueryRunner qr = new QueryRunner();

					String sql = "SELECT * FROM sort";

					//调用方法query执行查询,传递连接对象,SQL语句,结果集处理方式的实现类

					//返回对象数组

					Object[] result = qr.query(con, sql, new ArrayHandler());

				for(Object obj : result){

						System.out.print(obj);

					}

				}	

			}

2.ArrayListHandler

​ p

ublic class QueryRunnerDemo1 {

				private static Connection con = JDBCUtilsConfig.getConnection();

				public static void main(String[] args) throws SQLException{

					arrayListHandler();

				}

				/*

				 *  结果集第二种处理方法,ArrayListHandler

				 *  将结果集的每一行,封装到对象数组中, 出现很多对象数组

				 *  对象数组存储到List集合

				 */

				public static void arrayListHandler()throws SQLException{

					QueryRunner qr = new QueryRunner();

					String sql = "SELECT * FROM sort";		

					//调用query方法,结果集处理的参数上,传递实现类ArrayListHandler

					//方法返回值 每行是一个对象数组,存储到List

					List<Object[]> result=  qr.query(con, sql, new ArrayListHandler());

					

					//集合的遍历

					for( Object[] objs  : result){

						//遍历对象数组

						for(Object obj : objs){

							System.out.print(obj+"  ");

						}

						System.out.println();

					}

				}

			}


3.BeanHandler

	public class QueryRunnerDemo1 {

				private static Connection con = JDBCUtilsConfig.getConnection();

				public static void main(String[] args) throws SQLException{

					beanHandler();

				}

				/*

				 *  结果集第三种处理方法,BeanHandler

				 *  将结果集的第一行数据,封装成JavaBean对象

				 *  注意: 被封装成数据到JavaBean对象, Sort类必须有空参数构造

				 */

				public static void beanHandler()throws SQLException{

					QueryRunner qr = new QueryRunner();

					String sql = "SELECT * FROM sort ";

					//调用方法,传递结果集实现类BeanHandler

					//BeanHandler(Class<T> type) 

					Sort s = qr.query(con, sql, new BeanHandler<Sort>(Sort.class));

					System.out.println(s);

				}

			}


4.BeanListHandler

	public class QueryRunnerDemo1 {

			private static Connection con = JDBCUtilsConfig.getConnection();

			public static void main(String[] args) throws SQLException{

				beanListHander();

			}

			/*

			 *  结果集第四种处理方法, BeanListHandler

			 *  结果集每一行数据,封装JavaBean对象

			 *  多个JavaBean对象,存储到List集合

			 */

			public static void beanListHander()throws SQLException{

			QueryRunner qr = new QueryRunner();

				String sql = "SELECT * FROM sort ";

				//调用方法query,传递结果集处理实现类BeanListHandler

				List<Sort> list = qr.query(con, sql, new BeanListHandler<Sort>(Sort.class));

				for(Sort s : list){

					System.out.println(s);

				}

			}

		}

5.MapHandler

public class QueryRunnerDemo1 {

				private static Connection con = JDBCUtilsConfig.getConnection();

				public static void main(String[] args) throws SQLException{

					mapHandler();
				}

			/*

				 *  结果集第七种处理方法,MapHandler
				 
				 *  将结果集第一行数据,封装到Map集合中

				 *  Map<键,值> 键:列名  值:这列的数据

				 */

				public static void mapHandler()throws SQLException{

				QueryRunner qr = new QueryRunner();

					String sql = "SELECT  * FROM sort";

					//调用方法query,传递结果集实现类MapHandler

					//返回值: Map集合,Map接口实现类, 泛型

					Map<String,Object> map = qr.query(con, sql, new MapHandler());

					//遍历Map集合

					for(String key : map.keySet()){

						System.out.println(key+".."+map.get(key));

					}

				}

			}


6.MapListHandler

public class QueryRunnerDemo1 {

				private static Connection con = JDBCUtilsConfig.getConnection();

				public static void main(String[] args) throws SQLException{

					mapListHandler();

				}

				/*

				 *  结果集第八种处理方法,MapListHandler

				 *  将结果集每一行存储到Map集合,键:列名,值:数据

				 *  Map集合过多,存储到List集合

				 */

				public static void mapListHandler()throws SQLException{

					QueryRunner qr = new QueryRunner();

					String sql = "SELECT  * FROM sort";

				//调用方法query,传递结果集实现类MapListHandler

					//返回值List集合, 存储的是Map集合

					List<Map<String,Object>> list = qr.query(con, sql, new MapListHandler());

					//遍历集合list

					for( Map<String,Object> map : list ){

						for(String key : map.keySet()){

							System.out.print(key+"..."+map.get(key));

						}

						System.out.println();

					}

					

				}

			}
上一篇:DBUtils和连接池


下一篇:jdbc框架-dbutils的简单使用