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函数。

第四部分:小结

对数据库进行各种查询是程序员的常见任务之一,如果能适当运用以上类,能减少代码的重复程度及减轻他们的劳动强度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值