「Spring」インタフェースRowMapperを実装する

2021年11月5日

説明
1.public interface RowMapper<T>
行ごとに ResultSetSE の行をマッピングするために JdbcTemplate によって使用されるインターフェース。
2.mapRow(ResultSetSE rs, int rowNum)
ResultSet のデータの各行をマップするには、実装でこのメソッドを実装する必要があります。
使用例
1.RowMapperを実装

package com.arkgame.study.user.model;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.springframework.jdbc.core.RowMapper;

public class UserRowMapper implements RowMapper
{
    public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
        User user = new User();
        user.setDepId(rs.getInt("DEPID"));
        user.setName(rs.getString("NAME"));
        user.setAge(rs.getInt("AGE"));
        return user;
    }

}

2.実装クラスのmapRowメソットを利用
queryForObject()メソッドに渡すと、返された結果はカスタムのmapRow()メソッドを呼び出して値を取得します。

public User findByUserId(int depId){

    String selectSql = "SELECT *  FROM USER WHERE DEPID = ?";

    User user = (User)getJdbcTemplate().queryForObject(
            selectSql, new Object[]{ depId }, new UserRowMapper());

    return user;
}

 

SpringMVC

Posted by arkgame