使用RowMapper实现从Spring Web应用程序进行MySQL查询

时间:2016-08-25 15:01:52

标签: mysql spring resultset

我正在尝试接收此查询的结果:

    SELECT n.*, r.nombre as nom 
    FROM noticias n 
    INNER JOIN actperiodicas r 
    WHERE (n.idActPer = r.idActPer) and (n.idActPer>0) 
    UNION

    SELECT n.*, s.nombre as nom 
    FROM noticias n 
    INNER JOIN actpuntuales s 
    WHERE (n.idActPunt = s.idActPunt) and (n.idActPunt >0)
    UNION
    SELECT n.*, '-' as nom 
    FROM noticias n 
    WHERE (n.idActPer=0) and (n.idActPunt=0)
    ORDER BY fechaPublicacion DESC
    LIMIT 10 OFFSET 0;

我正在使用带有此代码的mapper用于mapRow函数(Interface RowMapper):

public Noticia mapRow(ResultSet rs, int rowNum) throws SQLException {

    Noticia not = new Noticia();

    not.setIdNoticia(rs.getInt("idNoticia"));
    not.setFechaPublicacion(rs.getString("fechaPublicacion"));
    not.setTitulo(rs.getString("titulo"));
    not.setTexto(rs.getString("texto"));
    not.setNomImagen(rs.getString("nomImagen"));
    not.setIdActPer(rs.getInt("idActPer"));
    not.setIdActPunt(rs.getInt("idActPunt"));

    not.setNomAct(rs.getString("nom"));

    return not;
}

你可能已经注意到了:'nom'列是我从表'actPuntuales'和'actPeriodicas'给'nombre'列的名字,当我的'noticias'时它只是一个' - '字符表行不需要名称(nom)。

我的问题是:当我使用Toad示例执行查询时,nom的值是正确的,但是当我尝试在我的应用程序中接收它时,它总是等于Null

0 个答案:

没有答案