java rowmapper 通用实现_06.Teambiz中三种特殊RowMapper的使用
Teambiz中三种特殊RowMapper的使用
作者:何杨
撰写日期:2012年2月25日
版本:1.00
更新日期:
第一部分:功能说明
针对特殊目的的查询,TeamBiz提供了一系列的RowMapper类以减轻程序员的劳动。
第二部分:核心组件 名称 路径 说明
IntegerRowMapper teambiz\src\com\ibm\heyang\dao\rowmapper\IntegerRowMapper.java 只需进行数量查询时,如select count(*) from tb,明确只会返回一行一列,这时建议使用这个类。
StringRowMapper teambiz\src\com\ibm\heyang\dao\rowmapper\StringRowMapper.java 当只查询一列时,如select a from table,建议使用这个类。
UserRowMapper eambiz\src\com\ibm\heyang\dao\rowmapper\UserRowMapper.java 当需要从JDBCTemplate查询到的链表中取出对象时,建议仿照这个类制作自己的RowMapper类
第三部分:各种RowMapper类的具体使用
1. IntegerRowMapper。
StringBuilder sb=new StringBuilder();
sb.append(" select ");
sb.append(" count(*) as recordcount");
sb.append(" from teambiz_menu");
String sql=sb.toString();
List> ls=this.getJdbcTemplate().query(sql, new IntegerRowMapper());
Integer count=(Integer)(ls.get(0));
以上代码路径:teambiz\src\com\ibm\heyang\dao\MenuDao.java中isNoMenu函数。
2. StringRowMapper
StringBuilder sb=new StringBuilder();
sb.append(" select");
sb.append(" t01.group_name");
sb.append(" from");
sb.append(" sys_group");
sb.append(" t01,");
sb.append(" sys_user");
sb.append(" t02");
sb.append(" where");
sb.append(" t01.groupid=t02.groupid");
sb.append(" and");
sb.append(" t02.userid="+userid+"");
String sql=sb.toString();
// 查询
List> ls = this.getJdbcTemplate().query(sql,new StringRowMapper());
最后得到的ls就是一个包含字符串元素的链表,要取值对其进行遍历即可。
3. UserRowMapper的使用示例
StringBuilder sb=new StringBuilder();
sb.append(" select ");
sb.append(" ID, ");
sb.append(" name, ");
sb.append(" email, ");
sb.append(" pswd, ");
sb.append(" groupName, ");
sb.append(" companyName,");
sb.append(" level");
sb.append(" from teambiz_user");
sb.append(" where name='"+name+"' and ");
sb.append(" pswd='"+pswd+"' ");
String sql=sb.toString();
List> ls = this.getJdbcTemplate().query(sql, (new UserRowMapper()));
if(ls.size()==1){
return (User)ls.get(0);
}else{
throw new Exception("用户名或密码错误!");
}
以上代码路径:teambiz\src\com\ibm\heyang\dao\UserDao.java中的getUserByNamePswd函数。
第四部分:小结
对数据库进行各种查询是程序员的常见任务之一,如果能适当运用以上类,能减少代码的重复程度及减轻他们的劳动强度。
java rowmapper 通用实现_06.Teambiz中三种特殊RowMapper的使用相关推荐
- 在java中三种编程思想(OOA,OOD,OOP)
在java中三种编程思想:OOA,OOD,OOP OOA 一.OOA的主要原则. 二.面向对象分析产生三种分析模型 三.OOA的主要优点 四.OOA方法的基本步骤 OOD 一.OOD背景知识 二.OO ...
- java 分页 通用Mapper,在Spring4中使用通用Mapper
1.在Spring4中使用通用Mapper Spring4增加了对泛型注入的支持,这个特性对通用Mapper来说,非常的有用,可以说有了这个特性,可以直接在Service中写Mapper mapper ...
- 简单介绍Lua中三种循环语句的使用
今天小编就为大家分享一篇关于Lua中三种循环语句的使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 Lua的循环和C语言的循环的语法其实差不多,所以, ...
- Redis中三种特殊数据类型
本文来说下Redis中三种特殊数据类型 文章目录 Gerspatial地理位置 Hyperloglog基数统计 Bitmap位图 Gerspatial地理位置 一共 6 个命令: GEOADD GEO ...
- tomcat中三种部署项目的方法(转)
tomcat中三种部署项目的方法 第一种方法:在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: <Context path="/h ...
- java浮点数化为整数_[Java教程]javascript浮点数转换成整数三种方法
[Java教程]javascript浮点数转换成整数三种方法 0 2014-06-24 04:00:27 将浮点数转换成整数方法有很多,分享三种常用方法. Summary 暂时我就想到3个方法而已.如 ...
- Java:简述对象转换为字符串的三种方式
Java:简述对象转换为字符串的三种方式 在Java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能.本文将对常用的转换方法进行一个总结. 一.(String)强制类型转换 使用 ...
- Java实现监听文件变化的三种方法,推荐第三种
背景 在研究规则引擎时,如果规则以文件的形式存储,那么就需要监听指定的目录或文件来感知规则是否变化,进而进行加载.当然,在其他业务场景下,比如想实现配置文件的动态加载.日志文件的监听.FTP文件变动监 ...
- Java多线程:多线程同步安全问题的 “三“ 种处理方式 ||多线程 ”死锁“ 的避免 || 单例模式”懒汉式“的线程同步安全问题
Java多线程:多线程同步安全问题的 "三" 种处理方式 ||多线程 "死锁" 的避免 || 单例模式"懒汉式"的线程同步安全问题 每博一文 ...
最新文章
- wince系统改安卓系统_什么是实时操作系统(RTOS)
- 转:测试部工作不受重视怎么办?
- 微娱推客——青龙羊毛
- ListView 与 它里面的Item 点击滑动冲突
- System BIOS设置
- Spring Ioc (Inversion of Control)
- Java案例:两个线程交替执行
- 127.0.0.1 myz.php,附录 – 1.0升级到2.0注意事项 - GatewayWorker 2.x 3.x 手册
- 常用excel函数 vlookup,concatenate, 的使用
- Google Wave 的失败给现代实时协作办公的一个重大教训!
- 阿里开发者们的第15个感悟:做一款优秀大数据引擎,要找准重点解决的业务场景... 1
- 常用cmd操作Redis的命令
- python 绘图英文字体_Matplotlib 中英文及公式字体设置
- SQL SERVER 取得某月第一天
- BDB 入门篇 第6章 A DPL Example一个DPL 例子
- 皮外骨伤科病题库【1】
- 人工智能的快速发展,对我们的不利影响有哪些?
- 锐角三角函数怎么用计算机算,锐角三角函数:运用计算器
- GoldWave V5.55 绿色汉化版_声音编辑
- 保研面试,考研复试-万能模板,一分钟到三分钟英语口语自我介绍。
热门文章
- 使用JS获取当前页面的URL(网址信息)
- VS2019中出现【Windows SDK】找不到 Windows SDK 版本10.0.18362.0的解决办法
- python读取文本两个数字的成语_【十分钟Python知识点】让文本数据更加生动——词云工具推荐...
- XAPP599-Vivado HLS的浮点设计
- HTML5 Canvas实现web画图之自由画笔
- Vue项目开发之北--环境大剑
- 关于Redis 启动命令
- Windows下LATEX排版论文攻略—CTeX、JabRef使用介绍
- 循环嵌套案例——九九乘法表
- 大数据和「数据挖掘」是何关系?---来自知乎