JDBC查询多条记录,结果为null?解决办法
代码如下
@Test
public void testSelect(){
Connection conn = null;
try {
conn = JDBCUtils.getConnection1();
String sql = "SELECT p.firstname firstName,p.lastName lastName,a.city city,a.state state FROM person p LEFT JOIN address a ON p.`personid`=a.`personid`";
QueryRunner runner = new QueryRunner();
BeanListHandler<Person> person = new BeanListHandler<Person>(Person.class);
List<Person> list = runner.query(conn, sql, person);
list.forEach(System.out::println);
}catch (Exception e){
e.printStackTrace();
}finally {
JDBCUtils.closeResource(conn);
}
}
导致问题出现的原因:
1.定义的封装类中缺少seter()方法
ResultHandler将数据传输到实体对象中时需要使用对应属性的seter()方法,缺少seter()方法就会导致数据传输失败而传回实体属性的默认值
2.SQL语句中的字段名和实体类中的属性名不一致
字段名和属性名不一致导致数据无法注入。