RowMapper 将查出的一行记录封装到用户定义的类中

2024-04-18 02:38

本文主要是介绍RowMapper 将查出的一行记录封装到用户定义的类中,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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类里边,方便使用。

这篇关于RowMapper 将查出的一行记录封装到用户定义的类中的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/913552

相关文章

将sqlserver数据迁移到mysql的详细步骤记录

《将sqlserver数据迁移到mysql的详细步骤记录》:本文主要介绍将SQLServer数据迁移到MySQL的步骤,包括导出数据、转换数据格式和导入数据,通过示例和工具说明,帮助大家顺利完成... 目录前言一、导出SQL Server 数据二、转换数据格式为mysql兼容格式三、导入数据到MySQL数据

关于rpc长连接与短连接的思考记录

《关于rpc长连接与短连接的思考记录》文章总结了RPC项目中长连接和短连接的处理方式,包括RPC和HTTP的长连接与短连接的区别、TCP的保活机制、客户端与服务器的连接模式及其利弊分析,文章强调了在实... 目录rpc项目中的长连接与短连接的思考什么是rpc项目中的长连接和短连接与tcp和http的长连接短

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

Servlet中配置和使用过滤器的步骤记录

《Servlet中配置和使用过滤器的步骤记录》:本文主要介绍在Servlet中配置和使用过滤器的方法,包括创建过滤器类、配置过滤器以及在Web应用中使用过滤器等步骤,文中通过代码介绍的非常详细,需... 目录创建过滤器类配置过滤器使用过滤器总结在Servlet中配置和使用过滤器主要包括创建过滤器类、配置过滤

正则表达式高级应用与性能优化记录

《正则表达式高级应用与性能优化记录》本文介绍了正则表达式的高级应用和性能优化技巧,包括文本拆分、合并、XML/HTML解析、数据分析、以及性能优化方法,通过这些技巧,可以更高效地利用正则表达式进行复杂... 目录第6章:正则表达式的高级应用6.1 模式匹配与文本处理6.1.1 文本拆分6.1.2 文本合并6

python与QT联合的详细步骤记录

《python与QT联合的详细步骤记录》:本文主要介绍python与QT联合的详细步骤,文章还展示了如何在Python中调用QT的.ui文件来实现GUI界面,并介绍了多窗口的应用,文中通过代码介绍... 目录一、文章简介二、安装pyqt5三、GUI页面设计四、python的使用python文件创建pytho

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。