1.dbutils有接口ResultSetHandler而且dbutils提供了针对不同的结果实现类
QueryRunner runner=new QueryRunner(datasource);
runner.query(sql,new BeanHandler<User>(User.class));
//返回list集合
2.JdbcTemplate实现查询,有接口RowMapper
JdbcTemplate针对这个接口没有提供实现类,得到不同类型数据需要自己进行数据封装(需要继承rowMapper接口写实现类)
public void testObject() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
//获得DataSource 对象
dataSource.setDriverClassName("com.mysql.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/spring");
dataSource.setUsername("root");
dataSource.setPassword("shujuku");
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
String sql = "select *from user where username=?";
User user=jdbcTemplate.queryForObject(sql, new MyRowMapper(), "tom");
//利用MyRowMapper()方法返回user对象
System.out.println(user);
}
//通过内部类,继承RowMapper接口再进行数据封装
class MyRowMapper implements RowMapper<User> {
@Override
public User mapRow(ResultSet rs, int num) throws SQLException {
String username = rs.getString("username");
String password = rs.getString("password");
User user=new User();
user.setUsername(username);
user.setPassword(password);
return user;
}