spring事务一为"声明式,一为"可编程式",
1,可编程式:
TransactionTemplate,HibernateTemplate,JdbcTemplate为编程式,
在我做项目时,Hibenrate常用Dao extends HibernateDaoSupport;
Jdbc常在jdbcDao层把jdbcTemplate注入进去,
[b]这样访问数据库时,会自动打开Session,开启事务.[/b]
public class SysUserDAO extends HibernateDaoSupport {
public List findByUserId(Integer userId){
HibernateTemplate ht = getHibernateTemplate();
ht.setCacheQueries(true);
StringBuffer hql = new StringBuffer(" from SysUser su where 1=1 and su.userId="+userId);
List list = ht.find(hql.toString());
return list;
}
public void save(SysUser transientInstance) {
log.debug("saving SysUser instance");
try {
getHibernateTemplate().saveOrUpdate(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
}
public class JdbcSysUserDAO {
private JdbcTemplate jdbcTemplate;
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate nanguajdbcTemplate) {
this.jdbcTemplate = nanguajdbcTemplate;
}
}
配置文件:
spring.xml
<bean id="dataSourc" .../>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
spring-dao.xml
<bean id="sysUserDao" class=..>
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="jdbcSysUserDao class=..>
<property name="jdbcTemplate">
<ref bean="jdbcTemplate" />
</property>
</bean>
1,可编程式:
TransactionTemplate,HibernateTemplate,JdbcTemplate为编程式,
在我做项目时,Hibenrate常用Dao extends HibernateDaoSupport;
Jdbc常在jdbcDao层把jdbcTemplate注入进去,
[b]这样访问数据库时,会自动打开Session,开启事务.[/b]
public class SysUserDAO extends HibernateDaoSupport {
public List findByUserId(Integer userId){
HibernateTemplate ht = getHibernateTemplate();
ht.setCacheQueries(true);
StringBuffer hql = new StringBuffer(" from SysUser su where 1=1 and su.userId="+userId);
List list = ht.find(hql.toString());
return list;
}
public void save(SysUser transientInstance) {
log.debug("saving SysUser instance");
try {
getHibernateTemplate().saveOrUpdate(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}
}
}
public class JdbcSysUserDAO {
private JdbcTemplate jdbcTemplate;
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate nanguajdbcTemplate) {
this.jdbcTemplate = nanguajdbcTemplate;
}
}
配置文件:
spring.xml
<bean id="dataSourc" .../>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<bean id="jdbcTemplate"
class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
spring-dao.xml
<bean id="sysUserDao" class=..>
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="jdbcSysUserDao class=..>
<property name="jdbcTemplate">
<ref bean="jdbcTemplate" />
</property>
</bean>