Spring的JdbcTemplate(三)

1.1 Spring JdbcTemplate
JdbcTemplate模板与DbUtils工具类比较类似.
1.1.1 Spring对持久层技术支持 :
JDBC: org.springframework.jdbc.core.JdbcTemplate
Hibernate3.0 : org.springframework.orm.hibernate3.HibernateTemplate
IBatis(MyBatis) : org.springframework.orm.ibatis.SqlMapClientTemplate
JPA: org.springframework.orm.jpa.JpaTemplate
1.1.2 开发JDBCTemplate入门 :
第一步:引入相应jar包:
* spring-tx-3.2.0.RELEASE.jar
* spring-jdbc-3.2.0.RELEASE.jar
* mysql驱动.
 
第二步:创建applicationContext.xml
 
第三步:编写一个测试类:
 
1.1.3 配置连接池:
Spring默认的连接池 :
<!-- 配置Spring默认的连接池 -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///spring3_day02"/>
<property name="username" value="root"/>
<property name="password" value="123"/>
</bean>
 
DBCP连接池 :
导入jar包:
* com.springsource.org.apache.commons.dbcp-1.2.2.osgi.jar
* com.springsource.org.apache.commons.pool-1.5.3.jar
 
<!-- 配置DBCP连接池 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql:///spring3_day02"/>
<property name="username" value="root"/>
<property name="password" value="123"/>
</bean>
 
C3P0连接池 :
导入jar包:
* com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar
<!-- 配置c3p0连接池 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUrl" value="jdbc:mysql:///spring3_day02"/>
<property name="user" value="root"/>
<property name="password" value="123"/>
</bean>
 
1.1.4 参数设置到属性文件中:
在src下创建jdbc.properties

 
需要在applicationContext.xml 中使用属性文件配置的内容.
* 第一种写法:
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
          <property name="location" value="classpath:jdbc.properties"></property>
</bean>
 
* 第二种写法:
<context:property-placeholder location="classpath:jdbc.properties"/>
 
1.1.5 JdbcTemplate的 CRUD 的操作 :
Spring框架中提供了对持久层技术支持的类:
JDBC : org.springframework.jdbc.core.support.JdbcDaoSupport
Hibernate 3.0 : org.springframework.orm.hibernate3.support.HibernateDaoSupport
iBatis : org.springframework.orm.ibatis.support.SqlMapClientDaoSupport
 
编写DAO的时候:
public class AccountDao extends JdbcDaoSupport{
public String selectNameById(int id){
String sql = "select name from account where id =?";
String name = (String)this.getJdbcTemplate().queryForObject(sql, String.class,id);
return name;
}
public Account selectAccountById(int id){
String sql = "select * from account where id = ?";
RowMapper rowMapper = new BeanPropertyRowMapper<Account>(Account.class);
Account account = (Account) this.getJdbcTemplate().queryForObject(sql, rowMapper, id);
return account;
}
public List<Account> selectAccounts(){
String sql = "select * from account";
RowMapper<Account> rowMapper = new BeanPropertyRowMapper<Account>(Account.class);
List<Account> accounts = this.getJdbcTemplate().query(sql, rowMapper);
return accounts;
}
}

在applicationContext.xml中配置 dataSource就是上面配置的c3p0连接池

<bean id="accountDao" class="com.demo.dao.AccountDao">
<property name="dataSource" ref="dataSource"></property>
</bean>
 
进行CRUD的操作;
* 保存:update(String sql,Object... args)
* 修改:update(String sql,Object... args)
* 删除:update(String sql,Object... args)
 
查询:
* 简单查询:
* select count(*) from user; --- queryForInt(String sql);
* select name from user where id = ?; --- queryForObject(String sql, Class clazz ,Object... args);
 
* 复杂查询:(返回对象,和对象集合)
* select * from user where id = ? --- queryForObject(String sql, RowMapper<T> rowMapper ,Object... args);
* select * from user; --- query(String sql,RowMapper<T> rowMapper,Object... args);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值