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

2021年11月5日

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

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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;
}
}
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; } }
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()メソッドを呼び出して値を取得します。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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;
}
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; }
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