Spring的JdbcTemplate
首先肯定得导入jar包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
接下来看看创建:
public static void main(String[] args) {
//准备数据源,这里使用spring的内置数据源
//学习使用,开发请使用Spring的IOC
DriverManagerDataSource ds = new DriverManagerDataSource();
ds.setDriverClassName("");
ds.setUrl("");
ds.setUsername("");
ds.setPassword("");
//1.创建JdbcTemplate对象
JdbcTemplate jt = new JdbcTemplate();
//给jt设置数据源
jt.setDataSource(ds);
}
再看看增删查改操作:
//保存
jt.update("insert into account(name, money) values(?, ?)", "name", 3333f);
//更新
jt.update("update account set name=?, money=? where id=?", "test", 4567, 7);
//删除
jt.update("delete from account where id=?", 8);
//查询
List<Account> accounts = jt.query("select * from account where money > ?",
new BeanPropertyRowMapper<Account>(Account.class), 1000f);
//查询返回一行一列(使用聚合函数,但不加group by子句)
Long count = jt.queryForObject("select count(*) from account where money > ?", Long.class, 1000f);
再说一个经常使用的类,JdbcDaoSupport。
来看一下它的setDataSource()和getJdbcTemplate(),其它原码将不看了:
public abstract class JdbcDaoSupport extends DaoSupport {
@Nullable
private JdbcTemplate jdbcTemplate;
public JdbcDaoSupport() {}
public final void setDataSource(DataSource dataSource) {
if (this.jdbcTemplate == null || dataSource != this.jdbcTemplate.getDataSource()) {
this.jdbcTemplate = this.createJdbcTemplate(dataSource);
this.initTemplateConfig();
}
}
protected JdbcTemplate createJdbcTemplate(DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Nullable
public final JdbcTemplate getJdbcTemplate() {
return this.jdbcTemplate;
}
}
加入现在有一个DaoImpl继承了这个JdbcDaoSupport,那么也相应的获得了setDataSource()和getJdbcTemplate()这两个方法。
所以在xml中配置DaoImpl的时候,只要注入一个DataSoure,就可以使用getJdbcTemplate()来获取JdbcTemplate对象了。