spring 学习
其一 ----------------------- Spring对jdbc操作的包装类-------JdbcTemplate
org.springframework.jdbc.core.support.JdbcDaoSupport;
可以方便我们采用jdbc的方式对数据库进行操作
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
------------------------spring对dao的支持-----------JdbcDaoTemplate
可以通过继承此类,然后直接使用this.getJdbcTemplate() 进行数据库的操作
配置dao时候加上
<property name="dataSource" ref="dataSource" />
其二
之前的操作都没有事务的支持
spring对事物的支持,需要借助
1、jdbc的事务管理器
2、spring对jdbc声明式事务的支持
<bean id="dataSourceTransactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<constructor-arg ref="dataSource" />
</bean>
<bean id="transactionTemplate"
class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager" ref=dataSourceTransactionManager" />
</bean>
测试代码:
TransactionTemplate tt=(TransactionTemplate)app.getBean("transactionTemplate");
tt.execute(new TransactionCallbackWithoutResult(){
@Override
protected void doInTransactionWithoutResult(TransactionStatus transactionstatus) {
try{
userDao.getJdbcTemplate().execute("insert into fwb_test values('fwb',24)");
userDao.getJdbcTemplate().execute("insert into fwb_test values('fwb','sdfsdf')");
}catch(Exception e){
System.out.println("我会滚了");
e.printStackTrace();
transactionstatus.setRollbackOnly();//回滚
}
}
});
//注TransactionCallbackWithoutResult释TransactionCallback的子类,为一个无返回类型的