Java JDBI ResultSetMapper:将行部分映射到类
当我们为类定义映射器时,我们必须获取sql查询中的每一列,以便与jdbc ResultsUpper中的类进行映射 例如Java JDBI ResultSetMapper:将行部分映射到类,java,jdbc,resultset,jdbi,sqlresultsetmapping,Java,Jdbc,Resultset,Jdbi,Sqlresultsetmapping,当我们为类定义映射器时,我们必须获取sql查询中的每一列,以便与jdbc ResultsUpper中的类进行映射 例如 公共类映射器实现ResultsMapper{ 公共MyClass映射(int索引、ResultSet rs、StatementContext ctx)引发SQLException{ MyClass mc=新的MyClass(); mc.setEntity1(rs.getString(“column1”); mc.setEntity2(rs.getString(“column2”
公共类映射器实现ResultsMapper{
公共MyClass映射(int索引、ResultSet rs、StatementContext ctx)引发SQLException{
MyClass mc=新的MyClass();
mc.setEntity1(rs.getString(“column1”);
mc.setEntity2(rs.getString(“column2”);
mc.setEntity3(rs.getString(“column3”);
返回mc;
}
}
为了使用这个映射器,我必须获取映射器中使用的每一列,但是如果我只获取2列,它将抛出PSQLException
因此,除了定义另一个映射器来获取2列之外,还有什么方法可以使用同一个映射器来映射到MyClass吗?您是否尝试过使用
RowMapper
?发布异常的堆栈跟踪。@pingw33n它说“column3”在中找不到resultset@FlorescentTicker我不认为RowMapper可以工作,因为它还使用ResultSet映射到columnsSee。
public class Mapper implements ResultSetMapper<MyClass>{
public MyClass map(int index, ResultSet rs, StatementContext ctx) throws SQLException{
MyClass mc = new MyClass();
mc.setEntity1(rs.getString("column1"));
mc.setEntity2(rs.getString("column2"));
mc.setEntity3(rs.getString("column3"));
return mc;
}
}