线程“main"中的异常org.hibernate.exception.GenericJDBCException:无法使用 mySQL 打开连接 [英] Exception in thread "main" org.hibernate.exception.GenericJDBCException: Cannot open connection using mySQL

查看:39
本文介绍了线程“main"中的异常org.hibernate.exception.GenericJDBCException:无法使用 mySQL 打开连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试运行一个简单的 java 项目来查看 hibernate 的工作,但是当我执行我的代码时,它给出了一个 hibernate 异常,我使用的是 mysql 5.6 和 eclipse neon,我什至检查了授权访问,一切似乎没事,请帮忙这是代码:

I am trying to run a simple java project to see the working of hibernate but when i am executing my code it gives a hibernate exception, i am using mysql 5.6 and eclipse neon,i even checked for grant access and everything seems to be fine, please help Here is the code:

ma​​in.java

    package com.demo;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class Main {

 public static void main(String[] args) {
    // TODO Auto-generated method stub

    Session session = null;
    SessionFactory sessionFactory= null;

    //create sessionFactory

    sessionFactory= new  Configuration().configure().buildSessionFactory();


    // create Session
    session=sessionFactory.openSession();
    // create and begin transaction 

    Transaction t = session.beginTransaction();

    //create contact object and set values to the object 

    Contact contact = new Contact();

    contact.setId(101);
    contact.setFirstName("Dina");
    contact.setLastName("adams");
    contact.setEmailID("dina.adams@gmail.com");

    // insert record by saving session

    session.save(contact);

    session.flush();

    // commit transaction

    t.commit();

    //close the session

    session.close();




  }

}

contact.java

package com.demo;

public class Contact {
//properties

private String firstName;
private String lastName;
private String emailID;
private int id;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
 }
 public String getLastName() {
 return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getEmailID() {
return emailID;
} 
public void setEmailID(String emailID) {
this.emailID = emailID;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
 }


 }

hibernate.cfg.xml

  <?xml version='1.0' encoding='utf-8'?>
   <!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class"> com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/emp</property>
<property name="hibernate.connection.usename">rajesh</property>  
<property name="hibernate.connection.password">Nepal123</property>
<property name="hibernate.connection.poolsize">10</property>
<property name="show_sql">true</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.hbm2ddl.auto">update</property>

<!-- Mapping file  -->
<mapping resource="Contact.hbm.xml"/>

</session-factory>

</hibernate-configuration>

contact.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
<class name = "com.demo.Contact" table="Contact">
<id column= "ID" name="id" type= "int" >
<generator class = "assigned"></generator>
</id>

<property name = "firstName">
<column name="FIRST NAME"></column>
</property>
<property name="lastName">
<column name="LAST NAME"></column>
</property>
<property name="emailID">
<column name ="EMAIL ID"></column>

</property> 
</class>
</hibernate-mapping>

错误信息:-

  Exception in thread "main" org.hibernate.exception.GenericJDBCException: Cannot open connection
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)
at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119)
at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)
at com.demo.Main.main(Main.java:25)
Caused by: java.sql.SQLException: Access denied for user ''@'localhost' (using password: YES)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:963)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3966)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3902)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:875)
at com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO.java:1712)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1228)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2253)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2284)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2083)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:806)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
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:404)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:410)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:328)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:110)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
... 5 more

推荐答案

查看此标签:

<property name="hibernate.connection.usename">rajesh</property>

名称应该是 hibernate.connection.username 而不是 hibernate.connection.usename.

the name should be hibernate.connection.username instead of hibernate.connection.usename.

这篇关于线程“main"中的异常org.hibernate.exception.GenericJDBCException:无法使用 mySQL 打开连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆