请问在使用Hibernate连接oracle数据库时为什么会报空指针错误? 10
Configurationconfiguration=newConfiguration();configuration.configure();ServiceRegist...
Configuration configuration = new Configuration();
configuration.configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
此处最后一行报错,意思是空指针:
Exception in thread "main" java.lang.NullPointerException
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:207)
at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:71)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2273)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2269)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1738)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1778)
同样的配置在连接MySQL时没有问题,我的hibernate.cfg.xml内容如下:
<!--
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
-->
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:MYORCL</property>
<property name="connection.username">scott</property>
<property name="connection.password">tiger</property>
<property name="dialect">org.hibernate.dialect.OracleDialect</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
其中关于MySQL的部分被注释掉了,只要切换成MySQL就没有问题,数据库方面我直接用jdbc连接过,没有任何问题,所用配置就是这个xml里面的配置,在线等高手,谢谢!!!!!我是新手,请不要笑。 展开
configuration.configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
此处最后一行报错,意思是空指针:
Exception in thread "main" java.lang.NullPointerException
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:207)
at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:71)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2273)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2269)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1738)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1778)
同样的配置在连接MySQL时没有问题,我的hibernate.cfg.xml内容如下:
<!--
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
-->
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:MYORCL</property>
<property name="connection.username">scott</property>
<property name="connection.password">tiger</property>
<property name="dialect">org.hibernate.dialect.OracleDialect</property>
<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>
其中关于MySQL的部分被注释掉了,只要切换成MySQL就没有问题,数据库方面我直接用jdbc连接过,没有任何问题,所用配置就是这个xml里面的配置,在线等高手,谢谢!!!!!我是新手,请不要笑。 展开
6个回答
展开全部
数据库名不一样
oracle 里面的数据库名字 要与 mySQL 的一样就OK了 ! 貌似你 MySQL 的 数据库是 hibernate
oracle 里面的数据库名字 要与 mySQL 的一样就OK了 ! 貌似你 MySQL 的 数据库是 hibernate
更多追问追答
追问
我的hibernate设置是createcreate
追答
看看图片 jdbc:mysql://localhost:3306/hibernate
这一行 你连接的是 Mysql 的 名叫 hibernate 的数据库。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<property name="hibernate.temp.use_jdbc_metadata_defaults">false</property>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
<property name="connection.username">scott</property>
<property name="connection.password">tiger</property>
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
<property name="connection.username">scott</property>
<property name="connection.password">tiger</property>
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哥们,我也是这个问题,我的是11g的,换了个jar包就行了
追问
你是说换了oracle的驱动jar包么?还是hibernate的包?我电脑用的是oracle9i的
追答
是换个oraclejar包
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我看看你main();是咋写的。
更多追问追答
追问
前面那段就是一个方法,名字叫beforeClass,实际运行的时候也就运行了这个方法
main方法是运行前面这个方法
beforeClass();
追答
那你就要看看传的参数有没有值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询