求教,第一次使用hibernate,报错Unable to create requested service

小红帽XXX 2016-03-20 02:56:18
如标题所说,第一次使用hibernate但是却报出这个错误,前前后后查找找不到原因,想死的心都有了,刚开始就栽跟头,请社区的大哥大姐帮我看看,谢谢谢谢,下面是详细信息:

报错信息:
三月 20, 2016 2:34:01 下午 org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator initiateService
WARN: HHH000342: Could not obtain connection to query metadata : The application must supply JDBC connections
Exception in thread "main" org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:244)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:208)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:189)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:217)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:189)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83)
at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418)
at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:692)
at org.fun.test.HibernateTest.main(HibernateTest.java:25)
Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:100)
at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:54)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:137)
at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:234)
... 13 more


测试程序代码:
public static void main(String[] args) {
UserBean bean = new UserBean();
bean.setId("001");
bean.setUsername("redhat");
bean.setEmail("ersdf@redhat.com");
bean.setPassword("UJRF");

Configuration cfg = new Configuration().addResource("hibernate.cfg.xml");
// *过期方法*解析Hibernate.cfg.xml 然后返回一个已经拥有配置选项的Configuration
// SessionFactory sf=cfg.configure().buildSessionFactory();
ServiceRegistry sr = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();// .getBootstrapServiceRegistry();
// SessionFactory类似数据库库的一个Connection
SessionFactory sf = cfg.buildSessionFactory(sr);
Session session = sf.openSession();
session.beginTransaction();
session.save(bean);
session.getTransaction().commit();
session.close();
sf.close();
}


配置文档信息(hibernate.cfg.xml):
<hibernate-configuration
xmlns="http://www.hibernate.org/xsd/hibernate-configuration"
xsi:schemaLocation="http://www.hibernate.org/xsd/hibernate-configuration hibernate-configuration-4.0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<session-factory>
<!-- Database connection settings -->
<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">funfamily</property>
<property name="connection.password">1</property>

<!-- JDBC connection pool (use the built-in) -->
<!-- <property name="connection.pool_size">1</property> -->

<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.Oracle10gDialect</property>

<!-- Enable Hibernate's automatic session context management -->
<!-- <property name="current_session_context_class">thread</property> -->

<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>

<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>

<property name="javax.persistence.validation.mode">none</property>

<!-- Drop and re-create the database schema on startup -->
<!-- <property name="hbm2ddl.auto">update</property> -->
<mapping resource="fun/bean/login/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>


使用的是hibernate5.1,jar包列表:
antlr-2.7.7.jar
classmate-1.3.0.jar
dom4j-1.6.1.jar
geronimo-jta_1.1_spec-1.1.1.jar
hibernate-commons-annotations-5.0.1.Final.jar
hibernate-core-5.1.0.Final.jar
hibernate-jpa-2.1-api-1.0.0.Final.jar
jandex-2.0.0.Final.jar
javassist-3.20.0-GA.jar
jboss-logging-3.3.0.Final.jar
ojdbc6.jar
classes12.jar
__________________________________________________________________________________
哪位大神还请赐教,小的万分感谢







...全文
22807 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
康小铭呀呀呀 2018-07-25
  • 打赏
  • 举报
回复
可能是你的数据库没有连接上 你试试看你的数据库还能不能连接了
人来人往_2017 2017-12-19
  • 打赏
  • 举报
回复
haha,我懂了,已解决和mybatis错误处一样
墨笙弘一 2017-12-04
  • 打赏
  • 举报
回复
我也感觉是数据库驱动没有导入进去
xfy615993275 2017-12-03
  • 打赏
  • 举报
回复
试试把这个包加进去:mysql-connector-java-5.1.37-bin.jar jar包-网盘分享:https://pan.baidu.com/s/1nuVsuEH x88h
fioudong 2017-11-18
  • 打赏
  • 举报
回复
数据库的驱动包也要导入的,有没有可能是这个问题
  • 打赏
  • 举报
回复
这个所有驱动包我都导入进去了还是有问题是为什么?
行走的小白 2017-06-25
  • 打赏
  • 举报
回复
这么久了 可能已经解决了噗哈哈 大概率是mysql驱动jar包没有导入 不知道为啥那些代码这个jar包重总要自己导入
xiaozhegaa 2017-04-05
  • 打赏
  • 举报
回复
有可能是你的数据源配置错误,dialect,driverclass,url,username,password。检查配置时候有错,我尝试把密码写错了,就会出现那种情况。看一下咯
wending-Y 2016-10-31
  • 打赏
  • 举报
回复
你试下3306端口,我也遇到了这个问题。
qq_35981218 2016-08-27
  • 打赏
  • 举报
回复
怎么没有解答????
KaloQuan 2016-06-30
  • 打赏
  • 举报
回复
顶一个!我也碰到这问题,配置Hibernate5.1的JNDI数据源导致的。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧