事务控制在业务层,业务层某一方法出现线程死锁导致方法没有执行完,这时候DAO操作已经执行了,数据库已经上锁了,那么其它数据库操作处于一直等待状态。有没有什么好方法解决?
解决方案 »
- 求教:在JSF中JSTL的使用问题
- weblogic部署程序报500错误,但是在tomcat上部署没问题
- 关于Hibernate ehcache二级缓存的问题(有点难度), 请帮忙, 谢谢!
- java文件类型识别
- hibernate+spring中使用openSession().connection()不能关闭问题。。。
- struts 设计中 是不是所有的页面都要写个ACTION进行初始化啊?
- IBM MQ是不是免费的?和iLink MQ比,那个好用?
- 菜鸟问关于import的问题(找不到class)
- eclipse+tomcat怎么配置啊,有没有中文的说明啊?
- Unsupported method:ResultSet.last怎么解决?
- ssh里面使用dwr,用事务就报错object is not aninstance of declaring class
- jstl 基础问题
session = sessionFactory.openSession(); //从sessionFactory中得到session session.save(你要增加的对象); //执行增加 session.close(); //关闭session
}
更新记录:public List selectManager() {
session = sessionFactory.openSession(); //从sessionFactory中得到session session.update(你要更新的对象); //执行更新
session.close(); //关闭session
} 删除记录:public List selectManager() {
session = sessionFactory.openSession(); //从sessionFactory中得到session session.delete(你要删除的对象); //执行删除
session.close(); //关闭session
public class TbHibernateDao {
private static SessionFactory sessionFactory=null; //声明一个静态的 SessionFactory 初始值为null
private Session session=null; //声明一个Session 初始值为null
Transaction tx = null; //声明一个Transaction 初始值为null
static {
try {
Configuration config = new Configuration().configure(); //初始化
sessionFactory = config.buildSessionFactory(); //得到sessionFactory } catch (Exception e) {
System.out.println(e.getMessage()); //如果出现异常的话打印异常信息
}
}
public List selectManager() {
session = sessionFactory.openSession(); //从sessionFactory中得到session tx = session.beginTransaction(); //开始事物提交
String hql = "from TbUser"; //HQL语句
List list = null; //声明一个List,用来存放结果,初始值为null
try {
Query query = session.createQuery(hql); //执行HQL语句
list = query.list(); //得到返回的结果,放到list里
} catch (Exception e) {
System.out.println(e.getMessage()); //如果出现异常,打印异常信息
}
tx.commit(); //事物提交
session.close(); //关闭session
return list; //返回想要的结果
}
这个是hibernate推荐的.........
乐观锁不需要开发者手动打开或者手动关闭.........
它由hibernate自动执行.........
只要开发者在配置文档丽配置下.............
我只了解,没用过............
如果你有财务方面的项目源码你可以看下,锁机制一般和财务挂钩..