java学习之路—JDBC—DBUtils
1.需要导的包
commons-dbutils-jar
2.用处
利用dbutils提供的方法 便捷的访问数据库 更新 查询
3.主要方法
QueryRunner的quer方法的返回值取决于其ResultSetHandler参数的handle方法的返回值
QueryRunner queryRunner = new QueryRunner();
public void testQuery() {
Connection connection = null;
try {
connection = JDBCTools.getConnection();
String sql = "SELECT id,name,email,birth FROM customers";
Object obj = queryRunner.query(connection, sql, new MyResultSetHandler());
System.out.println(obj);
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCTools.releaseRs(null, connection, null);
}
}
1.BeanHandler:把结果集的第一条记录转为创建的BeanHandler 对象时传入 的class参数对应的对象
public void testBeanHanlder() {
Connection connection = null;
try {
connection = JDBCTools.getConnection();
String sql = "SELECT id,name,email,birth FROM customers WHERE id = ?";
Customer customer = queryRunner.query(connection, sql, new BeanHandler<>(Customer.class), 5);
System.out.println(customer);
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCTools.releaseRs(null, connection, null);
}
}
2. BeanListHandler:把结果集转为一个List,该List不为null; 但可能为空集合(size() 方法返回 0 )
public void testBeanListHandler() {
Connection connection = null;
try {
connection = JDBCTools.getConnection();
String sql = "SELECT id,name,email,birth FROM customers ";
List<Customer> customers = queryRunner.query(connection, sql, new BeanListHandler<>(Customer.class));
System.out.println(customers);
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCTools.releaseRs(null, connection, null);
}
}
3.MapHandler
public void testMapHandler() {
Connection connection = null;
try {
connection = JDBCTools.getConnection();
String sql = "SELECT id,name,email,birth FROM customers";
Map<String, Object> customer = queryRunner.query(connection, sql, new MapHandler());
System.out.println(customer);
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCTools.releaseRs(null, connection, null);
}
}
4.MapListHandler:将结果集转为一个Map的List Map对应查询的一条记录
public void TestMapListHandler() {
Connection connection = null;
try {
connection = JDBCTools.getConnection();
String sql = "SELECT id,name,email,birth FROM customers";
List<Map<String, Object>> customer = queryRunner.query(connection, sql, new MapListHandler());
System.out.println(customer);
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCTools.releaseRs(null, connection, null);
}
}
5.Scarlar把结果集转为一个数值返回(可以是任意类型的 字符 数字)
public void testScalarHandler() {
Connection connection = null;
try {
connection = JDBCTools.getConnection();
String sql = "SELECT name FROM customers WHERE id = ?";
String result = queryRunner.query(connection, sql, new ScalarHandler<>(),5);
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCTools.releaseRs(null, connection, null);
}
}
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步