jdbcTemplate.query(????)<o:p></o:p>
<o:p></o:p>
主要是一些callback interface 的用法<o:p></o:p>
<o:p></o:p>
PreparedStatement处理<o:p></o:p>
1. PreparedStatementCreator<o:p></o:p>
PreparedStatement createPreparedStatement(Connection con) <o:p></o:p>
用途: 准备好PreparedStatement<o:p></o:p>
ps=con.preparedStatement(sql);<o:p></o:p>
ps.setXXX();<o:p></o:p>
return ps;<o:p></o:p>
<o:p></o:p>
2. PreparedStatementSetter<o:p></o:p>
void setValues(PreparedStatement ps)<o:p></o:p>
用途: 设置ps参数.<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
ResultSet 处理<o:p></o:p>
1. ResultSetExtractor<o:p></o:p>
Object extractData(ResultSet rs) <o:p></o:p>
处理整个结果集, 返回任意Object<o:p></o:p>
<o:p></o:p>
rs.absolute(x);<o:p></o:p>
while(rs.next())..
注意,需要手工移动ResultSet
<o:p></o:p>
<o:p></o:p>
2. RowCallbackHandler<o:p></o:p>
void processRow(ResultSet rs) <o:p></o:p>
用途: 处理一行数据. 不能rs.next().<o:p></o:p>
<o:p></o:p>
3. RowMapper<o:p></o:p>
Object mapRow(ResultSet rs, int rowNum) <o:p></o:p>
只处理当前行数据, 将当前条数据map到某entity, rowNum为当前行号, 0开始.<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
jdbcTemplate.queryForInt(???) 和 jdbcTemplate.queryForLong(???)<o:p></o:p>
<o:p></o:p>
一般是用来count(),返回单行单列int , long。
<o:p></o:p>
<o:p></o:p>
jdbcTemplate.queryForList(???)<o:p></o:p>
返回 a List of Maps, using column name as key.<o:p></o:p>
[{id=1, name=aaa.com}, {id=2, name=bbb.com,}]<o:p></o:p>
<o:p></o:p>
<o:p></o:p>
jdbcTemplate.queryForMap(???)<o:p></o:p>
和 queryForList(), 差不多,只是预期查询一行数据。返回 a Map, using column name as key.<o:p></o:p>
The query is expected to be a single row query
<o:p></o:p>
<o:p></o:p>
jdbcTemplate.queryForObject(???)
本质上和queryForInt(),相同。返回都是单行单列一个数据。
The query is expected to be a single row/single column query; the returned result will be directly mapped to the corresponding object type.
<o:p></o:p>
<o:p></o:p>
jdbcTemplate.queryForRowSet(???)<o:p></o:p>
返回RowSet, representing disconnected java.sql.ResultSet<o:p></o:p>
<o:p></o:p>
分享到:
相关推荐
spring JdbcTemplate query方法使用示例,欢迎下载借鉴
本文将深入探讨Spring JdbcTemplate的常用方法,并结合提供的`JsonBean.java`和`JdbcUtils.java`文件,来理解其在实际应用中的使用。 首先,JdbcTemplate的核心功能在于它提供了一系列的方法来执行SQL语句,包括...
JdbcTemplate 类主要提供四类方法:execute 方法、update 方法及 batchUpdate 方法、query 方法及 queryForXXX 方法、call 方法。 一、 execute 方法 execute 方法用于执行任何 SQL 语句,一般用于执行 DDL 语句。...
在使用`jdbcTemplate`进行预编译查询时,我们通常会使用`query()`或`queryForList()`方法。例如: ```java String sql = "SELECT * FROM table WHERE id = ?"; Object[] params = {1}; List<MyObject> result = ...
通过使用模板方法设计模式,`JdbcTemplate`提供了一系列静态和非静态的方法来执行各种SQL操作,如查询、更新、插入和删除。 为了打印`JdbcTemplate`执行的SQL语句,我们需要关注以下几点: 1. **日志配置**:首先...
- 查询返回对象:通过query方法结合RowMapper接口来实现,RowMapper负责将结果集中的数据封装到实体对象中。 - 查询返回集合:使用query方法,传入SQL语句和RowMapper实例。 对于批量操作,JdbcTemplate提供了...
- **执行SQL**:调用JdbcTemplate的execute()方法执行SQL,对于查询操作,可以使用query()方法,传入SQL、RowMapper或者ResultSetExtractor。 - **参数化查询**:使用问号?作为占位符,通过addBatch()添加参数,...
`JdbcTemplate`提供了`query()`方法来执行SQL SELECT语句,并将结果映射到对象。例如,如果我们有一个User类,可以这样获取用户信息: ```java String selectSql = "SELECT * FROM users WHERE username = ?"; List...
通过`jdbcTemplate.query()`方法执行SQL查询,并使用`ItemMapper`来映射结果集到`Item`对象。如果查询结果为空,则返回`null`。 - **应用场景**:适用于根据ID获取单个实体的情况,如用户登录验证、获取某个商品...
4. **调用JdbcTemplate方法**:在业务代码中,通过`JdbcTemplate`提供的方法执行SQL,例如`update`、`insert`、`delete`和`query`。 5. **处理结果**:对于查询操作,可以指定结果集的映射方式,如使用RowMapper或...
- 调用对应的方法,如`update()`执行更新操作,`queryForObject()`或`query()`执行查询操作,传入SQL语句和参数。 - 如果是查询操作,可以使用`RowMapper`或`ResultSetExtractor`来映射结果到Java对象。 8. **...
可以使用`JdbcTemplate`的`executeWithinTransaction`方法来包裹一个数据库操作,以确保原子性和一致性。例如: ```java jdbcTemplate.executeWithinTransaction(new TransactionCallbackWithoutResult() { @...
在上述代码中,我们定义了一个UserRepository类,其中的`addUser`方法使用JdbcTemplate的`update`方法执行SQL插入语句。`@Autowired`注解使得Spring能够自动将配置的JdbcTemplate注入到Repository中。 同样,我们也...
在`BaseDaoImpl` 类中,`find` 方法的实现使用了`JdbcTemplate`的`query`方法。这个方法可以接受SQL语句、参数数组和一个RowMapper,用于将数据库行映射为Java对象。在这里,使用了`BeanPropertyRowMapper`,它会...
List<Book> books = jdbcTemplate.query( "SELECT * FROM book", new RowMapper() { @Override public Book mapRow(ResultSet rs, int rowNum) throws SQLException { Book book = new Book(); book.setId(rs....
然后,我们定义了一个处理GET请求的方法`queryData()`,其中使用了JdbcTemplate的`queryForList()`方法执行SQL查询并返回结果。 JdbcTemplate提供了一系列的便捷方法,如`update()`, `queryForObject()`, `...
* query方法及queryForXXX方法:用于执行查询相关语句。 五、JdbcTemplate的示例代码 以下是JdbcTemplate的一些示例代码: ```java // 1. 查询一行数据并返回int型结果 jdbcTemplate.queryForInt("select count(*...
使用`JdbcTemplate`读取数据时,可以通过`query`方法结合`RowCallbackHandler`或自定义的`RowMapper`来处理结果集。`RowMapper`接口用于将结果集中的每一行映射为一个对象,通过`JdbcTemplate.query(sql, params, ...
3. 编写SQL:你可以直接编写SQL语句,或者使用PreparedStatement,JdbcTemplate提供了相应的模板方法。 4. 调用JdbcTemplate的方法:例如queryForList()用于查询多条记录,update()用于执行更新操作。 5. 处理结果:...
4. 调用JdbcTemplate提供的方法,如`update()`执行DML语句,`query()`执行查询,`queryForList()`获取列表,`queryForObject()`获取单个对象等。 5. 使用占位符(问号)或命名参数进行SQL动态绑定,避免SQL注入。 ...