private ResultSetExtractor hKTCloudExtractor;
//多态 public HKTCloudUserDaoImpl() { //polymorphellosm hKTCloudExtractor = new HKTCloudSetExtractor(); }
public class HKTCloudSetExtractor implements ResultSetExtractor { //get HKTCloudUser data from db @Override public Object extractData(ResultSet rs) throws SQLException, DataAccessException { HKTCloudUser hktCloudUser = null; if (rs.next()) { hktCloudUser = new HKTCloudUser(); hktCloudUser.setUserId(rs.getString(DBConstants.HKT_CLOUD_USER_ID)); hktCloudUser.setMsisdn(rs.getString(DBConstants.HKT_CLOUD_MSISDN)); hktCloudUser.setCloudName(rs.getString(DBConstants.HKT_CLOUD_CLOUD_NAME)); hktCloudUser.setCloudId(rs.getString(DBConstants.HKT_CLOUD_CLOUD_ID)); hktCloudUser.setStatus(rs.getString(DBConstants.HKT_CLOUD_STATUS)); hktCloudUser.setQuota(rs.getString(DBConstants.HKT_CLOUD_QUOTA)); hktCloudUser.setUserPackage(rs.getString(DBConstants.HKT_CLOUD_PACKAGE)); } return hktCloudUser; } }
查询方法内可以调用jdbc query查询
HKTCloudUser hKTCloudUser = null; Object[] param = null; param = new Object[] { msisdn }; hKTCloudUser = (HKTCloudUser) jdbcTemplate.query(sql, param, hKTCloudExtractor);
第二种:
public Object mapRow(ResultSet rs, int arg1) throws SQLException { Subscriber subscriber = new Subscriber(); subscriber.setMsisdn(rs.getString(DBConstants.USER_MSISDN)); subscriber.setMsisdn_create_date(rs.getString(DBConstants.USER_CREATE_DATE)); subscriber.setMsisdn_mark_delete_date(rs.getString(DBConstants.USER_MARK_DELETE_DATE) == null ? "": rs.getString(DBConstants.USER_MARK_DELETE_DATE)); subscriber.setSubscribed_type(rs.getString(DBConstants.USER_SUNSCRIBED_TYPE)); subscriber.setEfax_number(rs.getString(DBConstants.EFAX_NUMBER)); subscriber.setEfax_loginId(rs.getString(DBConstants.EFAX_LOGIN_ID)); subscriber.setEfax_password(rs.getString(DBConstants.EFAX_PASSWORD)); subscriber.setEfax_create_date(rs.getString(DBConstants.EFAX_CREATE_DATE)); subscriber.setCommond(rs.getString(DBConstants.EFAX_ID_COMMON)== null? "": rs.getString(DBConstants.EFAX_ID_COMMON)); return subscriber; }
相关推荐
2. **定义`ResultSetExtractor`**:创建一个实现了`ResultSetExtractor`的类,比如`SplitPageResultSetExtractor`,在其中实现`extractData(ResultSet rs)`方法。这个方法将负责处理游标,每次处理一条记录,直到...
springJDBCUtils.getNamedParameterJdbcTemplate().query(sql, new MapSqlParameterSource(paramMap), new ResultSetExtractor() { @Override public Person extractData(ResultSet rs) throws SQLException, ...
RowMapper接收ResultSet的一行并返回一个对象,而ResultSetExtractor则处理整个ResultSet,返回一个单一的值或集合。 8. **NamedParameterJdbcTemplate** 对于复杂查询,NamedParameterJdbcTemplate提供了更直观的...
例如,执行简单的SQL查询可以使用`queryForList`方法,执行带有参数的查询可以使用`query`方法,并通过RowMapper或ResultSetExtractor来处理结果。 JdbcTemplate的另一个重要特性是支持批处理。通过`batchUpdate`...
类似于`RowCallbackHandler`,`ResultSetExtractor`接口允许你在提取所有数据后返回一个自定义对象。在上述代码中,`getBaseObj()`方法通过实现`ResultSetExtractor`来创建并填充一个`BaseObj`对象。当ResultSet中...
3. **RowMapper/ResultSetExtractor**: 这两个接口用于将数据库查询结果映射到Java对象。RowMapper处理单行结果,而ResultSetExtractor处理整个结果集。 4. **SqlProvider**: Spring还提供了动态SQL的支持,允许在...
RowMapper适用于单行数据的映射,而ResultSetExtractor则可以处理整个结果集,提供更大的灵活性。 6. **Transaction Management** Spring JDBC提供了声明式事务管理,通过配置@Transactional注解,可以在方法级别...
`RowMapper`将每一行结果映射为一个Java对象,而`ResultSetExtractor`允许对整个结果集进行处理,返回单个或多个对象。 7. **批处理** 对于大量重复的数据库操作,Spring JDBC提供了批处理功能,通过`JdbcTemplate...
`RowMapper`将结果集的一行映射为Java对象,而`ResultSetExtractor`则可以从整个结果集中提取数据,它们极大地提高了代码的可读性和可维护性。 Spring JDBC还支持批处理操作,通过`JdbcTemplate`的`batchUpdate`...
3. **RowMapper** 和 **ResultSetExtractor**:这两个接口用于将数据库查询的结果映射到Java对象。RowMapper处理单行数据,而ResultSetExtractor可以处理整个结果集。它们提供了自定义数据转换的灵活性。 4. **...
RowCallbackHandler可以在遍历每行结果时执行回调,而ResultSetExtractor则在所有结果处理完后返回一个单一的值。 4. **JdbcTransactionManager**: 这是Spring提供的事务管理器,它利用JDBC的API来管理事务,支持...
- **执行SQL查询**:使用`query()`方法,配合RowMapper接口或ResultSetExtractor接口,将结果映射为Java对象。 - **执行SQL更新**:使用`update()`方法执行INSERT, UPDATE, DELETE等操作。 - **批量操作**:使用`...
2. JdbcTemplate:核心工具类,提供了一组执行SQL的模板方法,如execute()、update()、query()等,以及用于处理结果集的RowMapper和ResultSetExtractor接口。 3. SimpleJdbcInsert:用于简化INSERT操作,可以自动...
6. **回调接口**:通过`PreparedStatementCreator`和`ResultSetExtractor`等回调接口,用户可以在不修改`JdbcTemplate`核心逻辑的情况下定制SQL执行和结果处理。 7. **执行效率**:由于`JdbcTemplate`会缓存预编译...
ResultSetExtractor则是更通用的接口,允许你处理整个ResultSet,返回一个单一的值或集合。 六、事务管理 Spring JDBC提供了声明式事务管理,可以在XML配置或注解中定义事务边界。这样,事务的开启、提交、回滚和...
2. **RowMapper** 和 **ResultSetExtractor**:这两个接口用于将数据库查询结果映射为 Java 对象。RowMapper 适用于单行数据转换,而 ResultSetExtractor 可以处理多行数据。 3. **SqlSessionFactory** 和 **...
3. **ResultSetExtractor**: 类似于`RowMapper`,`ResultSetExtractor`允许开发者处理整个结果集,而不是一行一行地处理。它提供了一个`extractData()`方法,返回一个自定义类型的结果集合。 4. **...
SpringJdbcTemplate支持分页查询,通过`SimpleJdbcCall`或`NamedParameterJdbcCall`类,可以配合`RowCallbackHandler`或`ResultSetExtractor`处理分页结果。此外,还可以使用`JdbcPagingItemReader`作为Spring ...
5. **结果集映射**:Spring JDBC 提供了 `RowMapper` 和 `ResultSetExtractor` 接口,将数据库结果集映射到自定义对象,简化了数据处理。 而结合 Scala,Scala JDBC 库通常会提供更佳的类型安全性和函数式编程特性...
- **结果集处理**:可以将查询结果转换为 List 或单个对象,支持自定义 RowMapper 和 ResultSetExtractor 处理结果集。 ### 3. 使用 JdbcTemplate 的步骤 1. **配置数据源**:在 Spring 配置文件中定义数据源...