菜鸟求教《hibernate》 The user must supply a JDBC connection问题

问题描述

今天刚学hibernate,测试一个程序,结果出现了这个问题,希望有大神帮我看看万分感激。结构图main函数图:hibernate.cfg.xml配置图:

解决方案

解决方案二:
我的hibernate配置文件<hibernate-configuration><session-factory><propertyname="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property><propertyname="hibernate.connection.url">jdbc:mysql://localhost:3306/sampledb</property><propertyname="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><propertyname="hibernate.connection.username">root</property><propertyname="hibernate.connection.password">root</property><propertyname="hibernate.show_sql">true</property></session-factory></hibernate-configuration>

应该是hibernate.connection.driver_class而非connection.driver_class吧加上hibernate.试试看
解决方案三:
引用1楼magi1201的回复:

我的hibernate配置文件<hibernate-configuration><session-factory><propertyname="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property><propertyname="hibernate.connection.url">jdbc:mysql://localhost:3306/sampledb</property><propertyname="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><propertyname="hibernate.connection.username">root</property><propertyname="hibernate.connection.password">root</property><propertyname="hibernate.show_sql">true</property></session-factory></hibernate-configuration>

应该是hibernate.connection.driver_class而非connection.driver_class吧加上hibernate.试试看

还是不行.谢谢你的回复
解决方案四:
LZ把完整的错误信息粘贴出来吧
解决方案五:
端口号呢?jdbc:mysql://localhost:3306/你的db
解决方案六:
connection.url数据库端口没有写
解决方案七:
端口没写啊大哥
解决方案八:
3306端口号加上试试!
解决方案九:
数据库连接问题,看看是不是你的端口问题
解决方案十:
引用3楼qustbit的回复:

LZ把完整的错误信息粘贴出来吧

Exceptioninthread"main"java.lang.UnsupportedOperationException:TheusermustsupplyaJDBCconnectionatorg.hibernate.connection.UserSuppliedConnectionProvider.getConnection(UserSuppliedConnectionProvider.java:54)atorg.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)atorg.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)atorg.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)atorg.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)atorg.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1354)atStudentTest.main(StudentTest.java:16)主类是这个语句报错:session.beginTransaction();
解决方案十一:
看看你的驱动jar包存在不,数据库的连接jar包。断点跟踪一下,看看connection是否获取到了。
解决方案十二:
引用9楼StefaniGaga的回复:

Quote: 引用3楼qustbit的回复:
LZ把完整的错误信息粘贴出来吧

Exceptioninthread"main"java.lang.UnsupportedOperationException:TheusermustsupplyaJDBCconnectionatorg.hibernate.connection.UserSuppliedConnectionProvider.getConnection(UserSuppliedConnectionProvider.java:54)atorg.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)atorg.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)atorg.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)atorg.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)atorg.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1354)atStudentTest.main(StudentTest.java:16)主类是这个语句报错:session.beginTransaction();

配置文件中数据库url后面没有端口号呀
解决方案十三:
引用11楼qustbit的回复:

Quote: 引用9楼StefaniGaga的回复:
Quote: 引用3楼qustbit的回复:
LZ把完整的错误信息粘贴出来吧

Exceptioninthread"main"java.lang.UnsupportedOperationException:TheusermustsupplyaJDBCconnectionatorg.hibernate.connection.UserSuppliedConnectionProvider.getConnection(UserSuppliedConnectionProvider.java:54)atorg.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)atorg.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)atorg.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)atorg.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)atorg.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1354)atStudentTest.main(StudentTest.java:16)主类是这个语句报错:session.beginTransaction();

配置文件中数据库url后面没有端口号呀

引用11楼qustbit的回复:

Quote: 引用9楼StefaniGaga的回复:
Quote: 引用3楼qustbit的回复:
LZ把完整的错误信息粘贴出来吧

Exceptioninthread"main"java.lang.UnsupportedOperationException:TheusermustsupplyaJDBCconnectionatorg.hibernate.connection.UserSuppliedConnectionProvider.getConnection(UserSuppliedConnectionProvider.java:54)atorg.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)atorg.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)atorg.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)atorg.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)atorg.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1354)atStudentTest.main(StudentTest.java:16)主类是这个语句报错:session.beginTransaction();

配置文件中数据库url后面没有端口号呀

我加上去了。引用10楼xmt1139057136的回复:

看看你的驱动jar包存在不,数据库的连接jar包。断点跟踪一下,看看connection是否获取到了。

我试试。
解决方案十四:
引用10楼xmt1139057136的回复:

看看你的驱动jar包存在不,数据库的连接jar包。断点跟踪一下,看看connection是否获取到了。

是不是jdbc驱动包坏了?资源加进去也没用?
解决方案十五:
不是你这个事没有源码文件,这个不是jdbc驱动包坏了。
解决方案:
<hibernate-configuration><session-factory><propertyname="dialect">org.hibernate.dialect.Oracle9iDialect</property><propertyname="connection.driver_class">oracle.jdbc.driver.OracleDriver</property><propertyname="connection.url">jdbc:oracle:thin:@XX.XX.XXX.XX:1521:XXX</property><mappingresource="hibernate/TblScheduleTemplate.hbm.xml"/></session-factory></hibernate-configuration>

正确的配置
解决方案:
引用15楼xmt1139057136的回复:

<hibernate-configuration><session-factory><propertyname="dialect">org.hibernate.dialect.Oracle9iDialect</property><propertyname="connection.driver_class">oracle.jdbc.driver.OracleDriver</property><propertyname="connection.url">jdbc:oracle:thin:@XX.XX.XXX.XX:1521:XXX</property><mappingresource="hibernate/TblScheduleTemplate.hbm.xml"/></session-factory></hibernate-configuration>

正确的配置

我是用mysql配置文件是我从文档copy改的能给个没有mysql的对比一起么?
解决方案:
引用13楼StefaniGaga的回复:

Quote: 引用10楼xmt1139057136的回复:
看看你的驱动jar包存在不,数据库的连接jar包。断点跟踪一下,看看connection是否获取到了。

是不是jdbc驱动包坏了?资源加进去也没用?

楼至,我刚才试了一下你的程序,问题应该是出在第一句了。newConfiguration直接去调用了setProperty去设置了方言,但是没有调用configure方法,导致了配置文件中的配置信息无法加载,获取不到连接的相关信息。将第一句修改为如下形式:Configurationcfg=newConfiguration().configure();cfg.setProperty("hibernate.dialect","org.hibernate.dialect.MySQLDialect");这样应该就可以了。
解决方案:
1.首先数据库名是自己的吧,即自己拥有的数据库。2.端口没错吧3.localhost去掉,或者换成自己电脑的ip。
解决方案:
<!--数据库连接--><propertyname="ibernate.connection.url">jdbc:mysql:///hibernate_test</property>中间有问题jdbc:mysql://localhost:3306/hibernate_test其中localhost是数据库所在主机的IP地址,本机就是localhost,3306是默认端口号hibernate_test是你对应的数据库名,你本机上的数据库服务启动了没有?或者再重新启动下再检查下你的用户名以及密码,按照你的写法是数据库装在你自己的机器上并且有个数据库的名称是hibernate_test
解决方案:
引用19楼xmt1139057136的回复:

<!--数据库连接--><propertyname="ibernate.connection.url">jdbc:mysql:///hibernate_test</property>中间有问题jdbc:mysql://localhost:3306/hibernate_test其中localhost是数据库所在主机的IP地址,本机就是localhost,3306是默认端口号hibernate_test是你对应的数据库名,你本机上的数据库服务启动了没有?或者再重新启动下再检查下你的用户名以及密码,按照你的写法是数据库装在你自己的机器上并且有个数据库的名称是hibernate_test

引用19楼xmt1139057136的回复:

<!--数据库连接--><propertyname="ibernate.connection.url">jdbc:mysql:///hibernate_test</property>中间有问题jdbc:mysql://localhost:3306/hibernate_test其中localhost是数据库所在主机的IP地址,本机就是localhost,3306是默认端口号hibernate_test是你对应的数据库名,你本机上的数据库服务启动了没有?或者再重新启动下再检查下你的用户名以及密码,按照你的写法是数据库装在你自己的机器上并且有个数据库的名称是hibernate_test

你说的我都试了查了一遍。另外控制台提示的是session.beginTransaction();这条语句出错。
解决方案:
将第一句修改为如下形式:Configurationcfg=newConfiguration().configure();cfg.setProperty("hibernate.dialect","org.hibernate.dialect.MySQLDialect");这个试试
解决方案:
引用21楼qustbit的回复:

将第一句修改为如下形式:Configurationcfg=newConfiguration().configure();cfg.setProperty("hibernate.dialect","org.hibernate.dialect.MySQLDialect");这个试试

Exceptioninthread"main"org.hibernate.InvalidMappingException:Couldnotparsemappingdocumentfromresourcecom/web/hibernate/model/Student.hbm.xmlatorg.hibernate.cfg.Configuration.addResource(Configuration.java:616)atorg.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1635)atorg.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1603)atorg.hibernate.cfg.Configuration.doConfigure(Configuration.java:1582)atorg.hibernate.cfg.Configuration.doConfigure(Configuration.java:1556)atorg.hibernate.cfg.Configuration.configure(Configuration.java:1476)atorg.hibernate.cfg.Configuration.configure(Configuration.java:1462)atStudentTest.main(StudentTest.java:11)Causedby:org.hibernate.MappingException:classcom.web。hibernate.model.Studentnotfoundwhilelookingforproperty:idatorg.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:232)atorg.hibernate.mapping.SimpleValue.setTypeUsingReflection(SimpleValue.java:302)atorg.hibernate.cfg.HbmBinder.bindSimpleId(HbmBinder.java:423)atorg.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:356)atorg.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:295)atorg.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:166)atorg.hibernate.cfg.Configuration.add(Configuration.java:716)atorg.hibernate.cfg.Configuration.addInputStream(Configuration.java:551)atorg.hibernate.cfg.Configuration.addResource(Configuration.java:613)...7moreCausedby:java.lang.ClassNotFoundException:com.web。hibernate.model.Studentatjava.net.URLClassLoader$1.run(URLClassLoader.java:200)atjava.security.AccessController.doPrivileged(NativeMethod)atjava.net.URLClassLoader.findClass(URLClassLoader.java:188)atjava.lang.ClassLoader.loadClass(ClassLoader.java:307)atsun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)atjava.lang.ClassLoader.loadClass(ClassLoader.java:252)atjava.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)atjava.lang.Class.forName0(NativeMethod)atjava.lang.Class.forName(Class.java:169)atorg.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:192)atorg.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:228)...15more
解决方案:
Causedby:java.lang.ClassNotFoundException:com.web。hibernate.model.Student????确认一下Student.java,提示是找不到
解决方案:
引用23楼qustbit的回复:

Causedby:java.lang.ClassNotFoundException:com.web。hibernate.model.Student????确认一下Student.java,提示是找不到

web后面怎么是一个句号呢?
解决方案:
引用24楼qustbit的回复:

Quote: 引用23楼qustbit的回复:
Causedby:java.lang.ClassNotFoundException:com.web。hibernate.model.Student????确认一下Student.java,提示是找不到

web后面怎么是一个句号呢?

+10086
解决方案:
引用24楼qustbit的回复:

Quote: 引用23楼qustbit的回复:
Causedby:java.lang.ClassNotFoundException:com.web。hibernate.model.Student????确认一下Student.java,提示是找不到

web后面怎么是一个句号呢?

这个好逗
解决方案:
引用24楼qustbit的回复:

Quote: 引用23楼qustbit的回复:
Causedby:java.lang.ClassNotFoundException:com.web。hibernate.model.Student????确认一下Student.java,提示是找不到

web后面怎么是一个句号呢?

引用24楼qustbit的回复:

Quote: 引用23楼qustbit的回复:
Causedby:java.lang.ClassNotFoundException:com.web。hibernate.model.Student????确认一下Student.java,提示是找不到

web后面怎么是一个句号呢?

这个我在myeclipse没显示句号可能是论坛回复的问题出现乱码了吧、
解决方案:
引用26楼csucaicai的回复:

Quote: 引用24楼qustbit的回复:
Quote: 引用23楼qustbit的回复:
Causedby:java.lang.ClassNotFoundException:com.web。hibernate.model.Student????确认一下Student.java,提示是找不到

web后面怎么是一个句号呢?

这个好逗

是配置出了问题,lz把Student.hbm.xml和Student.java贴出来看看。
解决方案:
引用28楼qustbit的回复:

Quote: 引用26楼csucaicai的回复:
Quote: 引用24楼qustbit的回复:
Quote: 引用23楼qustbit的回复:
Causedby:java.lang.ClassNotFoundException:com.web。hibernate.model.Student????确认一下Student.java,提示是找不到

web后面怎么是一个句号呢?

这个好逗

是配置出了问题,lz把Student.hbm.xml和Student.java贴出来看看。

<?xmlversion="1.0"?><!DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mappingpackage="com.web。hibernate.model"><classname="Student"><idname="id"></id><propertyname="name"></property><propertyname="age"></property></class></hibernate-mapping>packagecom.web.hibernate.model;publicclassStudent{privateintid;privateStringname;privateintage;publicStudent(){}publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicintgetId(){returnid;}publicvoidsetId(intid){this.id=id;}}
解决方案:
LZ,我把你贴的代码和配置文件在我本机跑了一遍,在Student.hbm.xml中配置的package=“com.web。hibernate.model”如果web后面是英文的点,整个程序没有问题,如果web后面是中文的句号,就会报你在22楼所贴出来的错误,还是检查一下配置文件吧,是不是不小心敲错了,将点敲成了中文的句号。

时间: 2024-11-17 12:15:48

菜鸟求教《hibernate》 The user must supply a JDBC connection问题的相关文章

hibernate-菜鸟求教Hibernate之 User is not mapped

问题描述 菜鸟求教Hibernate之 User is not mapped 映射是有的 实体类的注解: 使用session.createCriteria(User.class);是没有任何问题的 使用session.createQuery("from User")就报错User is not mapped 求教!! 解决方案 http://blog.sina.com.cn/s/blog_4553489c01010ja7.html 解决方案二: session.createQuery(

数据-菜鸟求教!C#大文本处理如何提速?

问题描述 菜鸟求教!C#大文本处理如何提速? 有个几百兆的文件,里面全是数据,每一行都要处理,如: GOTO / 8.39900, -4.61009, 115.00000 要转换成 LIN {E6POS: X 8.39900, Y -8.37946, 115.00000, A 0.000, B 0.000, C 0.000, E1 0.000} C_VEL 现在是小文件可以,数据量大了速度就非常慢,1M的都要7分钟才能处理完 解决方案 难怪代码慢,你还用了字符串相加. 你应该用 StringBu

php上传excel导出pdf~菜鸟求教,大神指点

问题描述 php上传excel导出pdf~菜鸟求教,大神指点 烦了我三个星期的需求:在线excel转pdf. 需求是把excel上传后经过php转为pdf,我开是利用了phpexcel,上传后再用tcpdf生成,但是phpexcel无法,或者说找不到获取列宽和行高的函数.然后就直接用phpexcel调用tcpdf的类库输出,但是就生成乱码 - -. 目前使用的环境是PHP5.4+linux+tengine 现在有几个问题,想请教各路大神: 1.phpexcel如何获取列宽和行高 2.如何生成pd

极光推送这几个参数什么意思?菜鸟求教大神。

问题描述 极光推送这几个参数什么意思?菜鸟求教大神. static String appId = "b03c5cfef65ed30108f0a3fd82c3f6b4"; static String appkey = "110000"; static String master = "a02a76119b20d4e31620d7597a3b4f35"; static String CID = "873ffc4fec7bfd43d47056

unity3d 仿真-大三菜鸟求教unity3d程序

问题描述 大三菜鸟求教unity3d程序 我在做一个unity3d小游戏的互动,希望我的player在挥剑的时候面前的cube消失并且伴随特效和音效,想问用编程怎么实现! 解决方案 你去蛮牛网站看看吧,那个里面有unity3d资源. 如果有帮助,记得点采纳. 解决方案二: 可以去 宣雨松的博客 或者 泰课在线,上面有很多优秀的Unity教程

c语言-菜鸟求教,为什么会显示找不到,感激不尽

问题描述 菜鸟求教,为什么会显示找不到,感激不尽 #include #include #include char *mystrstr(char *string,char *findstring ) { if (string == NULL || findstring == NULL) { return NULL; } int flag = 1; while (*string != '') { char *p=string; char *px = string; char *now = finds

c语言-菜鸟求教:int Main(WORD *parameter1)的数据类型问题。

问题描述 菜鸟求教:int Main(WORD *parameter1)的数据类型问题. 问一下main函数的输入量是指向word类型变量的地址?main函数返回的值为int型? 解决方案 这个一般是用于传递参数,为什么用word不清楚,按理说应该是char[]或者char *才行,传别的,操作系统不支持,如果main是作为入口的话. 解决方案二: 入参是一个 WORD * 指针变量,你要说是指向 WORD 变量的地址也没错,返回值是 int 没错.

java-highchartsX轴的问题,菜鸟求教啊

问题描述 highchartsX轴的问题,菜鸟求教啊 一组数9条数据,9个时间,我想要线上的每一个点跟X轴上的时间对应起来,也就是曲线上的一个点,下面X轴就要有一个对应的时间,而且时间中间有个跳跃,11:30-13:00是没有的,我想要X轴11:30的下一个时间就是13:30,这是最重要的.另一组数据只有两条,也要对应X轴 解决方案 http://blog.csdn.net/apollokk/article/details/8025853 解决方案二: 楼主 xAxis: 是如何设置的 解决方案

菜鸟求教:用vs2010编译vtk install重新生成时出错

问题描述 菜鸟求教:用vs2010编译vtk install重新生成时出错 1>C:Program Files (x86)MSBuildMicrosoft.Cppv4.0Microsoft.CppCommon.targets(113,5): error MSB3073: 命令"setlocal 1>C:Program Files (x86)MSBuildMicrosoft.Cppv4.0Microsoft.CppCommon.targets(113,5): error MSB3073