java web hibernate java.lang.NullPointerException问题

有一个程序调用数据库总是出现java.lang.NullPointerException问题代码如下hibernate.cfg.xml<!DOCTYPEhibernate... 有一个程序 调用数据库总是出现java.lang.NullPointerException问题 代码如下
hibernate.cfg.xml

<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 数据库URL -->
<property name="connection.url">
jdbc:oracle:thin:@127.0.0.1:1521:house
</property>
<!-- 数据库用户 -->
<property name="connection.username">sa</property>
<!-- 数据库用户 密码-->
<property name="connection.password">mfblove12g</property>
<!-- 数据库JDBC驱动-->
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<!-- 每个数据库都有其对应的Dialect以匹配其平台特性-->
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<!-- 指定当前session范围和上下文-->
<property name="current_session_context_class">thread</property>
<!-- 是否将运行期生成的SQL输出到日志以供调试-->
<!-- 参数为true,则程序运行时在控制台输出SQL语句-->
<property name="show_sql">true</property>
<!-- <mapping resource="org/hibernate/test/legacy/Simple.hbm.xml"/>
<class-cache
class="org.hibernate.test.legacy.Simple"
region="Simple"
usage="read-write"/>-->
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<!--映射文件配置,注意配置文件名必须包含其相对于classpath的全路径-->
<mapping resource="cn/jbit/houserent/bean/userDB.hbm.xml"/>
</session-factory>
</hibernate-configuration>

text.java

package cn.jdit.houserent.bean;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import cn.jdit.houserent.bean.*;
public class text {
public static void main (String[]args)
{
userDB user = new userDB();
user.setName("liwei");
user.setPassword("123");
Configuration conf=null;
SessionFactory sessionFactory = null;
Session session=null;
Transaction tx=null;
try{
conf=new Configuration().configure();
sessionFactory=conf.buildSessionFactory();
session=sessionFactory.openSession();
tx=session.beginTransaction();
session.save(user);
tx.commit();
}
catch(HibernateException e)
{
tx.rollback();
e.printStackTrace();
}finally
{session.clear();
sessionFactory.close();}
}
}

结果显示
Exception in thread "main" java.lang.NullPointerException
at cn.jdit.houserent.bean.text.main(text.java:35)
如果使用java单独操作数据库是没有问题的
展开
 我来答
我是鸡腿兽
2013-01-17
知道答主
回答量:11
采纳率:0%
帮助的人:6.5万
展开全部
try中出现问题被catch中捕获,事物rollback了,所以导致你的try{}中的sessionFactory没有被初始化,而finally中却实行了sessionFactory.close();所以出现NullPointerException
来自太阳de外星人
2013-01-17 · TA获得超过297个赞
知道小有建树答主
回答量:650
采纳率:80%
帮助的人:186万
展开全部
session=sessionFactory.openSession();
这catch的时候初始化 但如果出现异常 就初始化失败
而finally依然执行 这时
sessionFactory.close()
sessionFactory 并没有初始化 所以会出现空指针
session 一样道理
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Oo酷酷哦哦oO
2013-01-17 · 超过11用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:27.8万
展开全部
Configuration conf=null;
SessionFactory sessionFactory = null;
Session session=null;
Transaction tx=null;
你这初始化不报空指针就怪了- -......实例化一个对象
追问
谢谢回答 但是我在下面的语句已经进行实例化了呀
conf=new Configuration().configure();
sessionFactory=conf.buildSessionFactory();
session=sessionFactory.openSession();
tx=session.beginTransaction();
追答
是哈,刚才没细看,那就是这块出错了
userDB user = new userDB();
user.setName("liwei");
user.setPassword("123");
你是先设置你的实体参数后开启的事物,发现这个没?
tx=session.beginTransaction();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
虎才义
2013-01-18
知道答主
回答量:9
采纳率:0%
帮助的人:1.3万
展开全部
配置文件是自己写的吗?好像是配置错了,你自动生成下嘛
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
414296451
2013-01-17
知道答主
回答量:3
采纳率:0%
帮助的人:4478
展开全部
空指针,看看35行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式