spring中的RowMapper
2019独角兽企业重金招聘Python工程师标准>>>
一.简介
sql中返回的是自定义的列或者一些统计的列,直接用hibernate无法处理;
此时,可以使用RowMapper,将数据中的每一行数据封装成用户定义的类
二.RowMapper
1、方法:
建立内部类实现RowMapper接口;
RowMapper中有一个mapRow方法,所以实现RowMapper接口一定要实现mapRow方法;
对自定义类的包装就在mapRow方法中实现.
2、例子:
public class TestDao {
private JdbcTemplate jt;
public void setJt(JdbcTemplate jt) {this.jt = jt;
}
public List<TNpc> getAll(){String sql = "select * from t_npc";//使用List list = jt.query(sql, new NpcRowMapper());return list;
}
/**
* 定义内部类实现RowMapper接口
*/
public class NpcRowMapper implements RowMapper{//实现mapRow方法public Object mapRow(ResultSet rs, int num) throws SQLException {//对类进行封装TNpc npc = new TNpc();npc.setId(rs.getLong("id"));npc.setName(rs.getString("name"));return npc;} }
}
三.相同效果的其他方法:map映射
用map映射相对rowMapper更简单,且无需建接口
List<Object> args = new ArrayList<Object>();
args.add(before);
args.add(today);
//sql获取需要的统计字段
String sql = "select cur_week_answer_count,cur_week_answer_score from t_answer where create_time>? and create_time<? and is_best_answer!=1";
//queryForList,然后把获取到的数据放到map中
List<Map<String,Object>> ids = EnvUtils.getEnv().getSimpleJdbcTemplate().queryForList(sql.toString(), args.toArray());
if(ids != null && !ids.isEmpty()){
for(Map<String,Object> map : ids){
//从map中获取数据
long answerCount = Long.parseLong(String.valueOf(map.get("cur_week_answer_count")));
long answerScore = Long.parseLong(String.valueOf(map.get("cur_week_answer_score ")));
Answer answer = answerService.load(answerCount,answerScore);
Question question = answer.getQuestion();
if(answer != null && question != null && answer.getId() == question.getBestAnswerId()){
qustionRaltionZhidaoService.setBestAnswerToZhidao(answer);
}
}
}
转载于:https://my.oschina.net/xsh1208/blog/176507
spring中的RowMapper相关推荐
- Spring中的RowMapper接口的作用
Spring中RowMapper接口的作用: 用来把数据库中的列字段和java bean中属性对应上,这样就可以赋值了 sping中的RowMapper可以将数据中的每一行数据封装成用户定义的类. 我 ...
- Spring中JdbcTemplate中使用RowMapper
转自:https://blog.csdn.net/u012661010/article/details/70049633 1 sping中的RowMapper可以将数据中的每一行数据封装成用户定义的类 ...
- Spring中的JDBC操作
一.Spring模板JdbcTemplate 为了使 JDBC 更加易于使用, Spring 在 JDBC API 上定义了一个抽象层, 以此建立一个 JDBC 存取框架JdbcTemplate. 作 ...
- Spring中使用JDBC
首先要获得DataSource连接池: 要对数据库执行任何的JDBC操作,需要有一个Connection.在Spring中,Connection对象是通过DataSource获得的. 有几种方法可以得 ...
- 在Spring中使用JDBC访问关系数据
在Spring中使用JDBC访问关系数据 本指南将引导您完成使用Spring访问关系数据的过程. 你会建立什么 您将构建一个使用Spring JdbcTemplate访问存储在关系数据库中的数据的应用 ...
- Spring中的事务控制
Chapter 1. Spring中的事务控制(Transacion Management with Spring) Table of Contents 1.1. 有关事务(Transaction)的 ...
- Spring中的事务控制(Transacion Management with Spring)
1.1. 有关事务(Transaction)的楔子 1.1.1. 认识事务本身1.1.2. 初识事务家族成员 1.2. 群雄逐鹿下的Java事务管理 1.2.1. Java平台的局部事务支持1.2.2 ...
- spring中的JdbcTemplate的使用方法
在没有使用mybatis框架之前,通常是用原始的方法编写持久层代码,但即便有jdbcutil工具类,开发效率也非常的低,那么spring为我们提供了JdbcTemplate类,能快速的开发持久层的代码 ...
- Spring 学习 day3 : AOP,Spring中JdbcTemplate的使用
1.AOP 1.1 什么是AOP 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方 式和运行期动态代理实现程序功能的统一维护的一种技术. ...
最新文章
- 界面设计 java_Java界面设计
- IOS 应用中从竖屏模式强制转换为横屏模式
- java jive歌词_Java Jive_Manhattan Transfer with Phil Collins_高音质在线试听_Java Jive歌词|歌曲下载_酷狗音乐...
- 计算机控制技术摘要,计算机控制技术摘要.ppt
- sql出现列名无效的原因_SQL数据库中的数据类型与表结构的创建
- 《cmake practice》总结 | cmake的构建过程与基本指令
- Multisim14.0的详细安装步骤
- QPSK、16QAM、64QAM信号的散点图、正交、同相分量波形图
- MapGIS入门教程——基础操作
- query归一 同义词挖掘
- 鹏业安装算量软件按桥架快速布线
- 极域教师端和学生端链接不上,出现这种问题怎么解决
- Excel-资产负债表-模板
- 天嵌IMX6核心板竞品分析(启杨IMX6)
- 用python简易英汉互译界面_python之做一个简易的翻译器(一)
- 二进制、八进制、十进制、十六进制之间的互相转化
- UMLChina建模答题赛第二赛季最终排行榜-刘京城、第五元素、龙龙
- 没听过计算机竞赛,国际信奥赛中国队夺冠!我忍不住再来和大家说说“编程”...
- python 树状数组_【算法日积月累】19-高级数据结构:树状数组
- 整理一篇不错的关于软件加密的文章