JdbcTemplate自定义映射器

news/2024/5/19 0:01:27 标签: jdbc, java

(1)作用:结果集映射器BeanPropertyRowMapper的使用前提是数据库字段和对象属性
一致,
当不一致的时候,使用自定义映射器解决,将结果集转换成需要的对象
(2)自定义映射器代码如下

public class AccountRowMapper implements RowMapper<Account> {
/**
* 需要手动将结果集封装成对象
* @param rs 结果集(数据库里的字段)
* @param i 结果集所在的行: 下标从0开始
* @return 封装好的对象
* @throws SQLException
*/
@Override
public Object mapRow(ResultSet rs, int i) throws SQLException {
//1、新建实体类对象
Account account = new Account();
//2、设置属性值
account.setId(rs.getInt("id"));
account.setUid(rs.getInt("uid"));
account.setMoney(rs.getDouble("money"));
//不同的字段(这里数据库没有,实体类有的字段)
account.setUserId(rs.getInt("id"));
//3、返回对象
return account;
 }
 }

(3)测试映射器代码如下

@Test
 public void testCustomMapper(){
 //1、创建容器
 ClassPathXmlApplicationContext ioc =
 new ClassPathXmlApplicationContext("applicationContext.xml");
 //2、获取工具类对象
 JdbcTemplate jd = ioc.getBean(JdbcTemplate.class);
 //3、操作数据库
String sql = "select * from account";
 List accountList = jd.query(sql, new AccountRowMapper());
 accountList.forEach(System.out::println);
}

 


http://www.niftyadmin.cn/n/811939.html

相关文章

JavaSE-GUI编程知识点笔记

GUI编程 组件 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 鼠标 键盘事件 破解工具 1&#xff0c;简介 GUI的核心技术&#xff1a;Swing&#xff0c;AWT 1&#xff0c;界面不美观 2&#xff0c;需要jre环境 为什么要学习&#xff1f; 1&#xff0c;可以…

线上学习感受

首先&#xff0c;我先恭喜这位小伙伴&#xff0c;一面过了&#xff0c;说明专业能力、基本素质OK&#xff0c;和岗位需求也比较匹配。 其次&#xff0c;帮助这位小伙伴平复下心情&#xff0c;不要紧张&#xff0c;不要慌乱&#xff0c;淡定&#xff0c;淡定…… 之后&a…

JavaSE-Thread多线程知识点笔记

1&#xff0c;线程&#xff0c;进程&#xff0c;多线程 2&#xff0c;线程创建 Thread,Runnable,Callable 三种创建方式&#xff1a; Thread package Thread; //创建线程方式一&#xff1a;继承Thread类&#xff0c;重写run&#xff08;&#xff09;方法&#xff0c;调用star…

新手面试必备技能,Get!!

新手面试必备技能&#xff0c;Get&#xff01;&#xff01;当大家离开校园&#xff0c;走上职场时&#xff0c;形形色色的面试使很多年轻求职者对心仪的工作望而却步。我有一些经验分享&#xff0c;希望能够对大家有所帮助&#xff1a; 一、知己知彼百战百胜 一定…

JavaEE-Mybatis知识点笔记

1,简介 1.1&#xff0c;什么是mybatis&#xff1f; 中文文档&#xff1a;https://mybatis.org/mybatis-3/zh/index.html MyBatis 是一款优秀的持久层框架它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBat…

Java 线程池 8 大拒绝策略,面试必问!

[size1.2em]前言 谈到java的线程池最熟悉的莫过于ExecutorService接口了&#xff0c;jdk1.5新增的java.util.concurrent包下的这个api&#xff0c;大大的简化了多线程代码的开发。而不论你用FixedThreadPool还是CachedThreadPool其背后实现都是ThreadPoolExecutor。ThreadPoo…

高并发下的接口幂等性解决方案!

高并发下的接口幂等性解决方案&#xff01; 一、背景我们实际系统中有很多操作&#xff0c;是不管做多少次&#xff0c;都应该产生一样的效果或返回一样的结果。例如&#xff1…

JavaSE-网络编程知识点

1.1&#xff0c;概述 1.2&#xff0c;网络通信的要素 1.3&#xff0c;IP package lesson01;import java.net.InetAddress; import java.net.UnknownHostException;//测试ip public class TestInetAddress {public static void main(String[] args) {try {//查询本机地址InetAd…