对于大中型项目三层架构的设计思想,好处不言而喻。(这是废话)下面开始正题。

我今天还是和昨天一样,继续与前天的项目。因为一个貌似小小的问题,一直纠结着我。

就是关于使用Hibernate保存数据到Oracle数据库中(单纯的Hibernate+jsp+servlet项目)。

我的问题是页面运行正常,而且正常跳转,但数据库没有数据。这对于一个新手该是多么

蛋疼的事儿啊!

下面是我的一些代码(出错的代码):

1. 我把hibernate的getSession()封装到了一个类中。如下图1:

2. 在UsersDao的实现类UsersDaoImpl中调用调用Session的save()保存数据到数据库中。如下图2:

 

 

问题思考:上午我百度时候无意间点了一个人的提问回答,发现一个关于JDBC的管理事务的问题。说的大至内容是Hibernate是一个轻量级的管理事务,Session之所以能通过调用save()从而保存数据到,是因为,JDBC把事务管理能力封装到了底层的save()接口中,底层jdbc事务有一个方法是设置JDBC的提交方式:con.setAutoCommit(Boolean boolean);默认为false,也就是不自动提交事务,在这里显式调用con.setAutoCommit(Boolean boolean);就可以了。(很模糊的概念)。

我仔细检查了一下我的代码,发现不是这个问题,不过也是这么个问题提醒了我。我们还回到刚才的那个save()上去。

大家仔细看看,那三行真的没有毛病吗 ?虽然编译通过。

我修改了一下:数据保存成功!如下图:

 

 

 

 

总结:知识理解不够透彻,问题总是有,办法总会有!