1、准备
使用DBCP必须使用的三个包
commons-dbcp-1.2.1.jar, commons-pool-1.2.jar, commons-collections-3.1.jar。
Java API:
BasicDataSourceFactory.createDataSource(properties);
使用Spring的JDBC Template
1、查询带有参数和行映射方法:
public Object queryObject(String sql,Object[] args,RowMapper rowMapper),使用自定义的UserRowMapper完成映射。
2、一个RowMapper的常用实现BeanPropertyRowMapper,该实现可将结果集转换成一个Java Bean(字段名与Java Bean属性名不符合规范,可用别名处理)
3、public List query(String sql, Object[] args, RowMapper rowMapper)返回多个结果。
4、public int queryForInt(String sql)(如:select count(*) from user),其他结果比如String可用queryForObject方法向下转型。
5、public Map queryForMap(String sql, Object[] args)返回若类型的Map(key:字段名或别名,value:列值)。
6、public List queryForList(String sql, Object[] args)返回多Map。
Spring的NamedParameterJdbcTemplate
1、NamedParameterJdbcTemplate内部包含了一个JdbcTemplate,所以JdbcTemplate能做的事情NamedParameterJdbcTemplate都能干; NamedParameterJdbcTemplate相对于JdbcTemplate主要增加了参数可以命名的功能。
2、public Object queryForObject(String sql, Map paramMap, RowMapper rowMapper)
3、public Object queryForObject(String sql, SqlParameterSource paramSource, RowMapper rowMapper)
SqlParameterSource的两个主要实现MapSqlParameterSource和BeanPropertySqlParameterSource
4、public int update(String sql, SqlParameterSource paramSource, KeyHolder generatedKeyHolder)保存数据获得主键。
Spring的SimpleJdbcTemplate
1、SimpleJdbcTemplate内部包含了一个NamedParameterJdbcTemplate;所以NamedParameterJdbcTemplate能做的事情SimpleJdbcTemplate都能干,SimpleJdbcTemplate相对于NamedParameterJdbcTemplate主要增加了JDK5.0的泛型和可变长度参数支持。
2、public <T> List<T> query(String sql, ParameterizedRowMapper<T> rm, Object... args)
3、public <T> T queryForObject(String sql, ParameterizedRowMapper<T> rm, SqlParameterSource args)
4、public <T> List<T> query(String sql, ParameterizedRowMapper<T> rm, SqlParameterSource args)
5、getJdbcOperations返回的是JdbcOperations(实现JdbcTemplate)
6、getNamedParameterJdbcOperations返回的是NamedParameterJdbcOperations(实现是NamedParameterJdbcTemplate)