title: java操作数据库的利器 DBCUtils
tags: [java,数据库]
一开始学习java操作数据库时总是自己写好增删查改函数,用的都是预处理的方式,但是后来越来越发现他们可以写成一个包,以后直接拿来用就行了,直到有一天看java视频时才发现早就有大神们写好了,。他就是dbutils包,下面介绍其中常用的方法
//传入一个账号,在数据库中查看有没有这个账号,若有就返回它的个数(其实返回1)没有返回零
public int accountNum(String account)
{
Connection connection = JDBCUtils.getConnection();
String sql = "select count(*) from student where student_account=" + account;
QueryRunner queryRunner = new QueryRunner();
Object[] num = null;
try
{
//返回查询结果的个数,只有一行一列
num = queryRunner.query(connection, sql, new ArrayHandler());
} catch (SQLException e)
{
e.printStackTrace();
}
//Object 无法直接转换为int类型
return Integer.valueOf(String.valueOf(num[0]));
}
queryRunner.query(connection, sql, new ArrayHandler());
说一下第三个参数的意思,第三个参数有以下几个,作用不同
:ArrayHandler() 返回第一行的所有列,一行中大部分都是许多列组成的,所以返回的是一个数组,并且是Object[]类型
ArrayListHandler:把结果集中的每一行数据都转成一个数组,再存放到List中。即查询的是所有的结果, 返回的是一个list
BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。
例: Student student = queryRunner.query(connection, sql, new BeanHandler(Student.class));
BeanListHandler:将结果集中的每一行数据封装到一个对应的JavaBean实例中。
例: List< Stduent >list = queryRunner.query(connection, sql, new BeanListHandler(Student.class));
MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。
MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List