昨天开发中遇到一个问题,Hibernate连接MySql时报错为:
写道
org.hibernate.exception.GenericJDBCException: Cannot open connection
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)
at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1354)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:342)
at $Proxy15.beginTransaction(Unknown Source)
at com.bjsxt.hibernate.HibernateIDTest.testStudentSave(HibernateIDTest.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)
at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1354)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:342)
at $Proxy15.beginTransaction(Unknown Source)
at com.bjsxt.hibernate.HibernateIDTest.testStudentSave(HibernateIDTest.java:35)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:911)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3953)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1276)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2048)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:723)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
... 35 more
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:911)
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3953)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1276)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2048)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:723)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
... 35 more
网上找了半天也没找到原因,最后发现原来是Mysql驱动包出问题了。
首先:报 Cannot open connection 肯定是加载驱动的问题,这时你要仔细看看用户名,密码等信息是否正确。
其次: 报 Access denied for user 'root'@'localhost' (using password: YES)看看你的密码是否正确,试试用客户端连接MySql能否连接上,如果正确连接,肯定是程序的问题。
最后:仔细查看你的Jar包,我找到半天原来发现时jar包出问题了,重新换一个就好。
在这里我想给大家说,出问题了不要怕,报错误或异常一定是有原因的,根据异常信息慢慢找一定会解决的。
相关推荐
本文将详细介绍如何使用Hibernate连接MySQL、Oracle、SQL Server以及Access数据库,包括所需的包和具体的方法。 首先,让我们来看看连接MySQL数据库所需的配置和步骤: 1. **添加依赖**:在你的项目中,你需要包含...
【标题】"Hibernate+MySQL包"所涉及的知识点...综上,"Hibernate+MySQL包"的使用涵盖了Java编程、数据库设计、ORM概念、JDBC连接、面向对象查询以及事务和缓存管理等多个重要知识点,是Java Web开发中常见的技术组合。
Hibernate的核心配置文件(hibernate.cfg.xml)包含了数据库连接信息,实体类映射到的数据表等信息。使用Hibernate,开发者可以避免编写大量的SQL代码,提高开发效率。 **MySQL数据库**: MySQL是一个流行的关系型...
Struts2、Hibernate和MySQL是三个在Web开发中广泛应用的技术,它们共同构成了一个强大的后端框架,用于构建高效、可维护的Web应用程序。本项目利用这些技术实现了用户登录功能,以下将详细介绍每个部分的关键知识点...
如有错误,检查配置文件、数据库连接、实体映射等是否正确。 通过深入理解并实践这个Demo,开发者能够熟练掌握Hibernate5与MySQL的集成应用,提升数据库操作的效率和代码的可维护性。同时,这也是一个良好的起点,...
Struts、Hibernate和MySQL是Java Web开发中常用的三个技术组件,它们共同构成了一个强大的后端数据处理系统。在这个“struts+Hibernate+MySQL简单的增删改查例子”中,我们将探讨如何利用这些技术来实现一个基本的...
- 配置文件:如Struts的配置文件(struts-config.xml)、Hibernate的配置文件(hibernate.cfg.xml)以及数据库连接的属性文件。 - 数据库脚本:创建用户表的SQL语句。 - JSP视图:用户界面,包括登录和注册页面。 ...
2. 创建Hibernate的配置文件(hibernate.cfg.xml),设置数据库连接信息。 3. 设计学生实体类(Student.java),并创建对应的映射文件(Student.hbm.xml)。 4. 编写DAO(Data Access Object)层,封装对数据库的...
MySQL驱动是Java应用程序连接到MySQL数据库的关键组件,特别是在使用Hibernate和JPA这样的对象关系映射(ORM)框架时。这两个框架极大地简化了数据库操作,但它们依赖于合适的数据库驱动来建立连接。本篇文章将深入...
为了与Hibernate配合,我们需要确保MySQL服务器支持JDBC连接,并在Hibernate配置文件中正确填写相关参数。 4. Hibernate与MySQL交互 Hibernate使用Criteria、Query或HQL(Hibernate Query Language)进行数据查询...
**Hibernate 5是一个强大的对象关系映射(ORM)框架,用于简化Java开发中的数据库操作...以上就是使用Hibernate 5连接MySQL数据库所需的关键知识点。理解并熟练掌握这些内容,将有助于高效地进行Java数据库应用的开发。
在本系统中,Spring被用来管理各种组件的生命周期,例如数据库连接、事务管理以及与Struts和Hibernate的集成。 Struts是MVC(Model-View-Controller)设计模式的一个实现,主要用于控制应用程序的流程。在简易教学...
在本学生信息管理系统中,Hibernate起到了桥梁的作用,它连接了Java应用程序和MySQL数据库。通过配置Hibernate的映射文件(.hbm.xml),可以将Java对象(如Student类)与数据库中的表(如student表)对应起来。当...
6. 配置文件:包括Struts2的struts.xml,Spring的applicationContext.xml,以及Hibernate的hibernate.cfg.xml,定义框架配置和数据库连接信息。 学习这个项目,你可以了解到如何集成SSH框架,如何设计数据库模型,...
在使用Hibernate框架进行Java应用程序开发的过程中,尤其是在连接MySQL数据库时,经常会遇到中文显示乱码的问题。这一问题通常发生在从数据库读取或向数据库写入中文数据时。中文乱码不仅影响用户体验,还可能导致...
3. 集成Hibernate:配置hibernate.cfg.xml文件,定义数据库连接信息,创建实体类和映射文件(.hbm.xml)。 4. 数据库设计:在MySQL中创建用户表,包含必要的字段(如username和password)。 5. 编写业务逻辑:实现...
这将帮助我们理解如何配置和使用Hibernate连接MySQL数据库,以及执行常见的数据库操作,如CRUD(创建、读取、更新和删除)。 标签“hibernate mysql”进一步确认了我们的讨论焦点是关于这两个技术的结合使用。 在...
`hibernate.cfg.xml`配置了Hibernate与MySQL的连接信息及实体类的映射。 4. **数据库表**:在MySQL中创建一个用户表,如`users`,存储用户信息。 5. **视图层**:JSP或HTML页面用于展示登录表单,接收用户输入,显示...
在本项目中,我们探索的是一个使用Spring Boot、Hibernate、Gradle和MySQL构建的简单示例。这个组合是现代Java Web开发中常见的技术栈,它提供了便捷的开发环境和强大的功能。 首先,让我们来深入了解每个组件的...
在本项目中,Hibernate用于映射Java类到数据库表,处理CRUD(创建、读取、更新、删除)操作,并管理数据库连接。 **JSP** 是一种服务器端的脚本语言,用于动态生成HTML页面。在博客系统中,JSP文件负责展示博客文章...