在java中配置hibernate,mysql时出错

Posted

技术标签:

【中文标题】在java中配置hibernate,mysql时出错【英文标题】:Getting error in configuration of hibernate , mysql in java 【发布时间】:2018-01-24 09:06:26 【问题描述】:

我是新来的休眠。 我收到了类似的错误 未找到 hibernate.properties 并拒绝用户 'root'@'localhost' 的访问(使用密码:YES)

我正在使用 mysqlWorkbench 版本 5.7.19 和休眠版本 5.2.6.Final jdk 1.8 带日食氧气

这是我的 hibernate.cfg.xml 文件

<hibernate-configuration>
<session-factory>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.password">gary@1234</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <property name="hbm2ddl.auto">update</property>
</session-factory>

这里是 pom.xml

  <dependencies>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>3.8.1</version>
  <scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.2.6.Final</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.39</version>
    </dependency>

这是我的代码

public class App 
public static void main(String[] args) 
    Alien alien = new Alien();
    alien.setAid(101);
    alien.setAname("pawan");
    alien.setColor("purple");
    Configuration con = new Configuration().configure();
    SessionFactory sf = con.buildSessionFactory();
    Session session = sf.openSession();
    Transaction tx = session.beginTransaction();
    session.save(alien);
    tx.commit();

这是 pojo 类

public class Alien 

@Id
private int aid;
private String aname;
private String color;

public int getAid() 
    return aid;


public void setAid(int aid) 
    this.aid = aid;


public String getAname() 
    return aname;


public void setAname(String aname) 
    this.aname = aname;


public String getColor() 
    return color;


public void setColor(String color) 
    this.color = color;

【问题讨论】:

您确定您的数据库用户是“root”并且您的密码是“gary@1234”吗? 是的,其他没有休眠的应用程序也可以正常工作 你把 hibernate.cfg.xml 文件放在哪里了? 我使用 hibernate 插件在 src/main/java 中创建了它 你能显示实际的错误信息吗? 【参考方案1】:

感谢大家付出宝贵的时间。 我只是通过进行更改来得到解决方案

Configuration con = new Configuration().configure("hibernate.cfg.xml").addAnnotatedClass(Alien.class);

其实并没有得到hibernate.cfg.xml和class的属性

【讨论】:

【参考方案2】:

您应将@Entity 添加到Alien,如下:

@Entity
public class Alien 

//...


【讨论】:

没关系。你可以测试我的解决方案。如果你有很多类,将@Entity添加到实体类是更好的方法。【参考方案3】:

Using password: YES,表示你输入的连接数据库的密码不正确。

【讨论】:

以上是关于在java中配置hibernate,mysql时出错的主要内容,如果未能解决你的问题,请参考以下文章

Java基础103 Hibernate技术连接MySQL数据和Oracle数据库的配置方法

Java Hibernate LazyInitializationException 仅在仅使用 JUnit 运行时出现

请问这个是啥错误,我用的是mysql,在整合hibernate时出现这个错误,我的数据库密码为空

JAVA SSH框架搭建流程

hibernate 无法自动创建表 的解决办法

Hibernate - 使用 net.ucanaccess.jdbc.UcanaccessDriver 时出现 org.hibernate.MappingException