一、DBUtils
在使用DBUtils时,要先导入包。commons-dbutils-1.4.jar
具体用法是要先创建一个QueryRunner对象。其中括号里面的参数是C3P9的数据库连接对象。
###增加操作,以及运行结果
###删除操作,以及运行结果
###更新操作,以及运行结果
###查询方式一,直接new接口的匿名实现类,以及运行结果
###查询方式二,直接使用框架已经写好的实现类,查询单个对象,以及运行结果
###查询方式三,直接使用框架已经写好的实现类,查询多个对象,以及运行结果
###ResultSetHandler常用的实现类,以下两个是使用频率最高的
BeanHandler,查询到的单个数据封装成一个对象
BeanListHandler,查询到的多个数据封装成一个List<对象>
-----------------------------------------------------------------------------------
ArrayHandler,查询到的单个数据封装成一个数组
ArrayListHandler,查询到的多个数据封装成一个集合,集合里面的元素是数组
MapHandler,查询到的单个数据封装成一个map
MapListHandler,查询到的多个数据封装成一个集合,集合里面的元素是map
二、数据库的CRUD操作改进
不管是之前的update函数还是DBUtils中的query函数,都是需要在函数参数里面根据sql语句添加相应个数的问号参数,如何简化参数,让计算机自动识别参数的个数呢?
###元数据 Meta data
描述数据的数据String sql,描述这份sql字符串的数据焦作元数据
数据库元数据:DatabaseMetaData
参数元数据:ParameterMetaData
结果集元数据:ResultSetMetaData
步骤一:先写出一个ResultSetHandler,重载一个接口
步骤二:实现ResultSetHandler接口,handle目的在于根据rs对象操作数据库中的数据
步骤三:利用参数元数据ParameterMetaData,算出sql语句中的问号个数。
步骤四:测试query函数。
总结,这个例子中,那个args需要注意,当不知道参数有多少时,可以使用Object...args将部分参数放在一个数组中。