`
lengyimeng
  • 浏览: 26318 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

不知sql语句以及返回对象的情况下使用的rowMapper

    博客分类:
  • java
 
阅读更多

有时候我们在开发的过程中,sql语句是由用户自己填写的,这样的话我们就不能预知这条sql语句返回的是什么对象,于是daoImpl中我们在返回数据的时候所需要的rowMapper就不能用某一个对象来概括,下面就是我在开发过程中用到的一个通用的rowMapper:

bean代码(set和get方法就不写了):

public class CommonData {
        private String label;
        private String name;
        private String value;
        private int type;
        private String typeName;
        private long dateTime;

}

rowMapper代码:

 private class CommonDataRowMapper implements RowMapper {
                public Object mapRow(ResultSet rs, int rownum) throws SQLException {
                    List list = new LinkedList();
                    ResultSetMetaData meta = rs.getMetaData();
                    int count =meta.getColumnCount();
                    for ( int i=1;i<=count; i++)
                    {
                        CommonData data = new CommonData();
                        data.setLabel(meta.getColumnLabel(i));
                        data.setName(meta.getColumnName(i));
                        data.setValue(rs.getString(i));
                        data.setType(meta.getColumnType(i));
                        data.setTypeName(meta.getColumnTypeName(i));
                       
                        if (data.getType() == Types.DATE
                                || data.getType() == Types.TIME
                                || data.getType() == Types.TIMESTAMP)
                        {
                            if (data.getDateTime() <=0)
                            {
                                data.setDateTime(rs.getTimestamp(i).getTime());
                            }
                               
                           
                        }
                       
                        list.add(data);
                    }
                                 
                    return list;
             
                }
         }

这里的思想就是,把我们通常的一个对象转换成了一个list,list里面的数据就是这个对象的属性以及属性对应的值,即多个CommonData 对象。举个例子说就是,比如我有一个对象person,有age和name两个属性,那么list里面就有两条数据,两个CommonData对象,这两个对象的name分别是age和name,value则是这两个属性的具体值。

0
1
分享到:
评论
1 楼 jyjava 2012-06-25  
要考虑数据库字段的属性跟java数据类型的对应关系

相关推荐

    MySQL工具包

    * 调用此方法,需要自定义一个类实现RowMapper接口,该接口返回泛型,该泛型为该方法返回值集合的泛型 * @param sql * :SQL语句,参数用"?"表示 * @param rm * :rm为RowMapper接口的实现类所产生的对象 ...

    Java利用Freemarker模板自动生成dto、dao、rowmapper、bo、service代码

    Java利用Freemarker模板自动生成dto、dao、rowmapper、bo、service代码,代码可以直接复制到项目中使用,代码是基于pring框架的

    基于SpringJDBC的轻量级ORM框架sborm.zip

    3、实现一套简单的ORM(直接使用spring rowmapper,insert自己实现),可以基于对象进行crud和相对复杂(感觉比hibernate强大一点)的sql操作; 4、基于对象指定查询的字段,大部分时候可以忘掉表结构进行业务...

    FreeMarker模板包括dto、dao、rowmapper、bo、service

    FreeMarker通用模板。... 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。 模板编写为FreeMarker Template Language (FTL)。... 那就意味着要准备数据在真实编程语言中来显示,比如...

    rest风格+jdbctemplate的CRUD操作.rar

    ①查询所有员工列表:jdbcTemplate.query(sql, new RowMapper() {}回调函数的使用 ②添加员工:添加员工之前要先查询出所有部门,因此要先查询所有的部门列表,然后用POST请求添加员工,重定向回员工列表 ③删除员工...

    SpringData@Query的注释的代码实现

    主要是如何利用@Query注释来完成增加,删除,的操作

    spring.net中文手册在线版

    使用对象或类的属性值进行注入 4.3.5.2.使用字段值进行注入 4.3.5.3.使用方法的返回值进行注入 4.3.6.IFactoryObject接口的其它实现 4.3.6.1.Log4Net 4.3.7.使用depends-on 4.3.8.自动装配协作对象 4.3.9.检查依赖项...

    基于spring jdbc的上层封装,底层jdbc操作基于JdbcTemplate

    基于spring jdbc的RowMapper自动实现对象映射,大部分功能已经由spring jdbc实现了。2、数据类型的设计:集成了JFinal和SBORM的优点,对字段的大小写不敏感,对强类型实体、弱类型实体和非实体的支持。3、统一的接口...

    javascript:void(0);

    import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.RowMapper; ...

    JavaEE的Spring JDBC与事务管理 实验

    //jdbcTemplate.queryForObject(sql, Double.class, isbn);rowMapper public double findBookPriceByIsbn(String isbn); //更新书的库存,使书号对应的库存减num,若库存不足,则给出提示,并且不更新 public ...

    spring.doc

    5.1.7 RowMapper的使用 107 拓展: 108 DataSource注入的三种方式: 108 5.1.8声明式事务管理 116 5.1.8.1Spring的事务管理器 117 5.1.8.2Spring事务的传播属性 117 5.1.8.3Spring事务的隔离级别 117 拓展: 118 5.1...

    easyjdbc-spring-boot-starter:easyjdbc-spring-boot-starter在easyjdbc之上进行了一些自动spring boot配置

    动态实体映射使得各种查询不再需要写大量的RowMapper。功能简介:1:常用的JPA注解支持。2:简化的批处理操作。4:简化的分页操作。5:灵活的链式查询API和SQL构造器。6:实体属性动态映射。7:支持多种数据库...

    java从mdb中读取并显示数据

    利用java小窗口读取mdb数据库中的数据,并将其显示出来

    利用spring的jdbcTemplate处理blob、clob

    spring 中对大数据的处理,包括clob,blob的数据。比之jdbc下简便很多。

    Spring高级之注解驱动开发视频教程

    让我们在开发中以及开发后期进行测试时,直接使用Junit结合spring一起测试。 本套课程中,我们将全面剖析Spring和SpringMVC两个部分。从应用场景分析,到基本用法的入门案例,再到高级特性的分析及使用,最后是执行...

    springMVC4.0.6+spring4.0.6+hibernate4.3.6

    springMVC4.0.6+spring4.0.6+hibernate4.3.6框架,基本的包结构,dao基础类的封装,rowmapper,分页等工具类的封装。

    thucydides-junit-0.9.125.zip

    springjdbc-constructor-mapper.zip,spring的rowmapper实现,用于对其构造函数进行注释的类

    SPRING API 2.0.CHM

    RowMapper RowMapperResultSetExtractor RuleBasedTransactionAttribute RuntimeBeanNameReference RuntimeBeanReference RuntimeTestWalker SavepointManager ScheduledExecutorFactoryBean ...

    red5连接池

    final List l = t.query("SELECT * FROM jt_employee", new RowMapper() { public Object mapRow(ResultSet rs, int rowNum) throws SQLException { MappedRow(rs.getInt(1), rs.getString(2)); } }); ...

Global site tag (gtag.js) - Google Analytics