HasorDB RowMapper(數(shù)據(jù)讀取并轉(zhuǎn)換成對象)

2021-12-30 11:20 更新

將 ?ResultSet ?一行數(shù)據(jù)讀取出來并且轉(zhuǎn)換成對象的工作是 ?RowMapper ?來負(fù)責(zé)完成。

在 HasorDB 中一共內(nèi)置了三種 RowMapper,除此之外用戶可以自己所以擴展。

  • ?ColumnMapRowMapper ?將行轉(zhuǎn)換為 Map
  • ?MappingRowMapper ?基于 ?對象映射? 處理行數(shù)據(jù)。
  • ?SingleColumnRowMapper ?只有當(dāng)查詢結(jié)果中包含一列數(shù)據(jù)的時候才可以使用。它會利用 ?TypeHandler ?機制讀取出這一列數(shù)據(jù)。

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?

讀取一行數(shù)據(jù),并且只設(shè)置 ?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);


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號