codecamp

HasorDB RowMapper(数据读取并转换成对象)

将 ​ResultSet ​一行数据读取出来并且转换成对象的工作是 ​RowMapper ​来负责完成。

在 HasorDB 中一共内置了三种 RowMapper,除此之外用户可以自己所以扩展。

  • ColumnMapRowMapper ​将行转换为 Map
  • MappingRowMapper ​基于 ​对象映射​ 处理行数据。
  • SingleColumnRowMapper ​只有当查询结果中包含一列数据的时候才可以使用。它会利用 ​TypeHandler ​机制读取出这一列数据。

ColumnMapRowMapper

使用 ​ColumnMapRowMapper

String querySql = "select * from test_user where age > 40";
RowMapper rowMapper = new ColumnMapRowMapper();
List<Map<String, Object>> result = jdbcTemplate.query(querySql, rowMapper);

下列是简化形式

List<Map<String, Object>> result = jdbcTemplate.queryForList(querySql);

MappingRowMapper

使用 ​MappingRowMapper

String querySql = "select * from test_user where age > 40";
RowMapper rowMapper = new MappingRowMapper<>(TestUser.class);
List<TestUser> result = jdbcTemplate.query(querySql, rowMapper);

下列是简化形式

List<TestUser> result = jdbcTemplate.queryForList(querySql, TestUser.class);

SingleColumnRowMapper

使用​ SingleColumnRowMapper

String querySql = "select name from test_user where age > 40";
RowMapper rowMapper = new SingleColumnRowMapper<>(String.class);
List<String> result = jdbcTemplate.query(querySql, rowMapper);

下列是简化形式

List<String> result = jdbcTemplate.queryForList(querySql, String.class);

自定义 RowMapper

读取一行数据,并且只设置 ​age ​和 ​name

String queryString = "select * from test_user where age > 40";
RowMapper rowMapper = new RowMapper<TestUser>() {
    public TestUser mapRow(ResultSet rs,int rowNum)throws SQLException{
        TestUser testUser=new TestUser();
        testUser.setAge(rs.getInt("age"));
        testUser.setName(rs.getString("name"));
        return testUser;
    }
};

List<TestUser> mapList = jdbcTemplate.query(queryString, rowMapper);


HasorDB SQL多语句/多返回值
HasorDB ResultSetExtractor(结果集处理)
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }