“自定义ResultSetHandler的实现类完成查询操作”的版本间的差异
跳到导航
跳到搜索
Jihongchang(讨论 | 贡献) (建立内容为“https://www.bilibili.com/video/BV1eJ411c7rf/?p=54”的新页面) |
Jihongchang(讨论 | 贡献) |
||
(未显示同一用户的1个中间版本) | |||
第1行: | 第1行: | ||
− | https://www.bilibili.com/video/BV1eJ411c7rf/?p=54 | + | https://www.bilibili.com/video/BV1eJ411c7rf/?p=54<syntaxhighlight lang="java"> |
+ | /** | ||
+ | * 定义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); | ||
+ | |||
+ | } | ||
+ | </syntaxhighlight><syntaxhighlight lang="console"> | ||
+ | Customer{id=9, name='蔡徐坤', email='caixukun@126.com', birth=1997-09-08} | ||
+ | </syntaxhighlight>https://github.com/jihch/jdbc_2/blob/main/src/main/java/io/github/jihch/dbutils/QueryRunnerTest.java |
2023年1月14日 (六) 07:21的最新版本
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