2007-08-28
菜鸟请教业务层--事务控制
关键字: struts+hibernate
环境:struts + hibernate
HibernateUtil创建管理Session
Filter 来实现关闭Session
/*
DAO 层
*/
public class UserDAOImpl implements IUserDAO {
private Session s;
public UserDaoImpl(){
this.s = HibernateUtil.getCurrentSession();
}
public void add(PoUser user){
this.session.save(user);
}
public void update(PoUser user){
this.session.save(user);
}
.
.
.
.
.
//
}
//那么我的业务层怎么实现控制事务呢
public class UserServiceImpl implements IUserService {
public addUser(UserDTO user){
//怎么控制事务呢?
//先看用户名是否重复,然后在添加
}
.
.
.
.
}
请指教。。谢谢各位大侠。。:(
HibernateUtil创建管理Session
Filter 来实现关闭Session
/*
DAO 层
*/
public class UserDAOImpl implements IUserDAO {
private Session s;
public UserDaoImpl(){
this.s = HibernateUtil.getCurrentSession();
}
public void add(PoUser user){
this.session.save(user);
}
public void update(PoUser user){
this.session.save(user);
}
.
.
.
.
.
//
}
//那么我的业务层怎么实现控制事务呢
public class UserServiceImpl implements IUserService {
public addUser(UserDTO user){
//怎么控制事务呢?
//先看用户名是否重复,然后在添加
}
.
.
.
.
}
请指教。。谢谢各位大侠。。:(
评论
soltex
2007-08-28
但是如果说是不用Spring来管理事务的话,我该怎么实现呢 ?
我在网上看到一片文章,写道:
业务层应该不应该出现事务控制代码 这个问题已经在业界达成共识:业务层绝对不应该出现事务控制代码,严格的说不应该出现与业务无关的代码。
如果不用Spring的话,是不是就必须在业务层出现事务管理的代码呢 ?
我在网上看到一片文章,写道:
业务层应该不应该出现事务控制代码 这个问题已经在业界达成共识:业务层绝对不应该出现事务控制代码,严格的说不应该出现与业务无关的代码。
如果不用Spring的话,是不是就必须在业务层出现事务管理的代码呢 ?
smalltiger1984
2007-08-28
事务处理一般靠现有的框架去做,比如Spring
我是这样写的:
我是这样写的:
java 代码
- public UserBO getUserByNameAndPwd(final String username, final String pwd) {
- return (UserBO) getHibernateTemplate().execute(new HibernateCallback() {
- public Object doInHibernate(Session session)
- throws HibernateException {
- Query query = session
- .createQuery("from UserBO u where u.userName=? and u.userPwd=?");
- query.setString(0, username);
- query.setString(1, pwd);
- UserBO index = (UserBO) query.uniqueResult();
- return index;
- }
- }, true);
- }
xml 代码
- <bean id="GoodsDAO" class="com.maidong.mobile.goods.dao.GoodsDAOImpl"><!--注入sessionFactory-->
- <property name="sessionFactory">
- <ref local="sessionFactory"/>
- </property>
- </bean>
- <!--使用声明式事务管理代理DAO类,每一个DAO类都需配置一个代理-->
- <bean id="DAOProxy"
- class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
- <property name="transactionManager">
- <ref bean="transactionManager" />
- </property>
- <property name="target">
- <ref local="GoodsDAO" />
- </property>
- <property name="proxyTargetClass" value="true"/><!-- 使用CGlib -->
- <property name="transactionAttributes">
- <props>
- <prop key="insert*">PROPAGATION_REQUIRED</prop>
- <prop key="save*">PROPAGATION_REQUIRED</prop>
- <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
- </props>
- </property>
- </bean>
- 浏览: 445 次

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
菜鸟请教业务层--事务控制
但是如果说是不用Spring来管理事务的话,我该怎么实现呢 ? 我在网上看到一 ...
-- by soltex -
菜鸟请教业务层--事务控制
事务处理一般靠现有的框架去做,比如Spring 我是这样写的: java 代 ...
-- by smalltiger1984






评论排行榜