RowMapper可以将数据中的每一行封装成用户定义的类,在数据库查询中,如果返回的类型是用户自定义的类型则需要包装。
public class ItemDAOImpl implements ItemDAO {
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
//插入一条记录
public Item insert(Item item) {
String sql = "INSERT INTO items(user_id,name,phone,email) VALUES(?,?,?,?)";
Object[] params = new Object[]{item.getUserId(),item.getName(),item.getPhone(),item.getEmail()};
int[] types = new int[]{Types.INTEGER,Types.VARCHAR,Types.CHAR,Types.VARCHAR};
jdbcTemplate.update(sql,params,types);
return item;
}
public Item findById(int id) {
String sql = "SELECT * FROM items WHERE id = ?";
Object[] params = new Object[] {id};
int[] types = new int[] {Types.INTEGER};
List items = jdbcTemplate.query(sql,params,types,new ItemMapper());
if(items.isEmpty()){
return null;
}
return (Item)items.get(0);
}
public List<Item> findAllByUser(int user_id) {
String sql = "SELECT * FROM items WHERE user_id = ?";
Object[] params = new Object[]{user_id};
int[] types = new int[]{Types.INTEGER};
List items = jdbcTemplate.query(sql,params,types,new ItemMapper());
return items;
}
protected class ItemMapper implements RowMapper {
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
Item item = new Item();
item.setId(rs.getInt("id"));
item.setUserId(rs.getInt("user_id"));
item.setName(rs.getString("name"));
item.setPhone(rs.getString("phone"));
item.setEmail(rs.getString("email"));
return item;
}
调用:
public List findItemsBySQL(String sql) throws DataAccessException {
return (List)jdbcTemplate.query (sql,newRowMapperResultSetExtractor(new ItemMapper ()));
}
}
其用意就是通过该接口将查询到的每行记录信息都封装到一个entity类里边,方便使用。
分享到:
相关推荐
"更新记录.docx"文件可能是项目开发过程中对SpringJdbcTemplate封装工具类的修改日志,记录了每次更新的功能改进、bug修复或性能优化等内容,这对于版本管理和问题排查非常有帮助。 通过上述分析,我们可以看到...
在Spring JDBC中,RowMapper接口用于将数据库查询结果的一行映射为一个Java对象。生成RowMapper代码时,通常会为每个DTO创建一个对应的RowMapper实现,这样可以在处理数据库查询结果时,方便地将结果集转换为DTO...
4. **RowMapper.java**: RowMapper是Spring框架中常见的一种接口,用于将数据库查询结果的每一行映射为Java对象。在这个压缩包中,这个接口可能被用来将数据库查询的结果转换为自定义的Java对象。开发人员可以实现这...
- **Python中的SQLAlchemy**:一个强大的SQL工具包,支持SQL语句的动态执行和编译,并允许用户定义SQL表达式为Python类的方法。 ```python from sqlalchemy import create_engine, MetaData, Table, select engine ...
例如,可能会有一个抽象的`SqlExecutor`类,里面定义了基本的SQL执行模板,子类可以重写其中的方法以适应不同的处理逻辑。 在实际应用中,JdbcTemplate框架还可能包含了事务管理的功能,例如支持编程式事务和声明式...
- "基于jdbctemplate封装"可能包含一个或多个类文件,如BaseJdbcDao.java,它定义了通用的方法,以及针对特定业务的子DAO类,如UserDao.java,实现了用户相关的数据库操作。 7. **使用示例**: - 创建一个新的...
- `query(String sql, RowMapper<T> rowMapper)`:执行查询并使用自定义的RowMapper将结果映射到对象。 - `update(String sql)`:执行更新操作,如INSERT、UPDATE或DELETE。 - `execute(String sql)`:执行任意的...
在实际开发中,这可能是一个项目站点,用于展示ifunsu的API使用方法、示例、API文档、用户指南等资源。 综上所述,ifunsu封装的基于Spring JDBC的DAO层API是一个旨在简化数据库操作的工具,它提供了更友好的接口,...
本篇文章将详细介绍一个用于Java应用程序中调用Oracle存储过程的通用类,帮助开发者更高效地实现相关功能。 #### 核心知识点解析 ##### 1. 类的基本结构 此通用类位于`com.gemship.common.service.impl`包下,名...
在`JsonBean.java`中,可能定义了一个用于存储数据库查询结果的Java bean类,它的属性与数据库表的字段相对应,通过`RowMapper`映射到对象。例如: ```java public class JsonBean { private String field1; ...
具体做法是在`DbUtil`类中定义获取连接和关闭连接的方法: ```java public class DbUtil { private static Connection conn; public static Connection getConnection() throws SQLException { // 加载配置文件...
如果查询结果有多列,所有列值将被封装到一个Map对象中,其中键为列名,值为对应的列值。 4. `queryForObject(String sql, RowMapper<T> rowMapper, Object... args)`:当预期查询结果只有一行数据时,可以使用此...
JdbcTemplate 是 Spring 框架中 org.springframework.jdbc.core 包提供的 JDBC 模板类,它是核心类,其他模板类都是基于它封装完成的。JdbcTemplate 类主要提供四类方法:execute 方法、update 方法及 batchUpdate ...
在Spring3中,我们可以通过接口定义通用的CRUD(Create, Read, Update, Delete)操作,然后创建一个实现该接口的抽象类,封装共性的JDBC操作,比如执行SQL、处理结果集等。这样,对于每个具体的数据库表,只需要创建...
1. **依赖注入**: 在Spring配置文件中,我们需要定义一个JdbcTemplate bean,并将其注入到需要使用数据库操作的类中。例如: ```xml ``` 其中,`dataSource`是数据源的引用,负责管理数据库连接。 2. **...
在IT行业中,分页是网页应用中不可或缺的一部分,特别是在处理大量数据时,它能有效提高用户体验,避免一次性加载过多内容导致页面响应速度下降。这里我们关注的标题是“匹配实体类的实现了大部分功能分页 网页分页...
这个工具类通常包含一个静态方法,接受ResultSet和JavaBean类型作为参数,然后遍历ResultSet,将数据填充到JavaBean对象中: ```java import java.sql.ResultSet; import java.sql.SQLException; public class ...
比如,在`JdbcTemplate`中,我们可以定义一个实现了`RowMapper`接口的类,该接口有一个`mapRow`方法,当JdbcTemplate从数据库查询数据时,会调用这个方法将每一行数据转换为Java对象。 **...
- 插入(Insert):`insert(String sql)`方法用于执行INSERT语句,将数据插入到表中。 - 删除(Delete):`delete(String sql)`方法用于执行DELETE语句,根据指定条件删除记录。 - 更新(Update):`update...
- **RowMapper**: 定义了将数据库一行数据映射到Java对象的方法。 - **ResultSetExtractor**: 处理整个结果集并返回单个值或集合。 3. **Spring JDBC配置** 在Spring配置文件中,我们需要配置DataSource,这是与...