Tabla de contenido
1. Interfaz BeanPropertyRowMapper
- Cuando hago una consulta, utilizo la siguiente interfaz. El principio es que el resultado se obtendrá cuando el nombre del campo de la clase de entidad y el nombre de la columna de la tabla sean iguales, de lo contrario el campo correspondiente es nulo
List<MusicSong> songList = jdbcTemplate.query(sql.toString(),
new Object[]{
musicListId, startLine, endLine},
new BeanPropertyRowMapper<>(MusicSong.class));
2. Crea una clase de mapeador para implementar la interfaz.
class MusicSongRowMapper implements RowMapper<MusicSong> {
@Override
public MusicSong mapRow(ResultSet rs, int rowNum) throws SQLException {
MusicSong song = new MusicSong();
// 设置结果集
song.setSongId(rs.getLong("music_song_id"));
song.setTitle(rs.getString("music_title"));
song.setCoverImg(rs.getString("music_cover_img"));
song.setSinger(rs.getString("music_singer"));
song.setDetails(rs.getString("music_details"));
song.setListeningVolume(rs.getLong("music_listening_volume"));
song.setLyricsId(rs.getLong("lyrics_id"));
song.setCreateDate(rs.getDate("music_create_date"));
return song;
}
}
Los cambios son los siguientes, con subclases
List<MusicSong> songList = jdbcTemplate.query(sql.toString(),
new Object[]{
musicListId, startLine, endLine},
new MusicSongRowMapper());