自定义ResultSetHandler的实现类完成查询操作
跳到导航
跳到搜索
https://www.bilibili.com/video/BV1eJ411c7rf/?p=54
/**
* 定义ResultSetHandler的实现类完成查询操作
* ScalarHandler:是 ResultSetHandler 接口的实现类,对应查询结果中的单个值
*/
@Test
public void testCustomizedQuery() {
Connection conn = null;
String sql = "select id, name, email, birth from customers where id = ?";
Customer c = null;
/*
AbstractKeyedHandler, AbstractListHandler, ArrayHandler, ArrayListHandler, BaseResultSetHandler,
BeanHandler, BeanListHandler, BeanMapHandler, ColumnListHandler,
KeyedHandler, MapHandler, MapListHandler, ScalarHandler
*/
QueryRunner runner = new QueryRunner();
ResultSetHandler<Customer> rsh = new ResultSetHandler<Customer>() {
@Override
public Customer handle(ResultSet rs) throws SQLException {
if (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String email = rs.getString("email");
Date birth = rs.getDate("birth");
Customer c = new Customer(id, name, email, birth);
return c;
}
return null;
}
};
try {
conn = JDBCUtils.getConnectionFromDruid();
c = runner.query(conn, sql, rsh,9);
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.closeResource(conn, null);
}
System.out.println(c);
}
Customer{id=9, name='蔡徐坤', email='caixukun@126.com', birth=1997-09-08}
https://github.com/jihch/jdbc_2/blob/main/src/main/java/io/github/jihch/dbutils/QueryRunnerTest.java