學習筆記:dbutils與Spring JdbcTemple的區別
阿新 • • 發佈:2019-01-07
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;
}