在Intellij中找不到/hibernate.cfg.xml

时间:2017-04-11 15:12:01

标签: hibernate intellij-idea

现在有一天,我正在使用IntelliJ学习Hibernate。所以,我创建了一个Maven项目并创建了一个Hibernate程序。但是后来我得到的错误就像这张图片中的节目一样。

Stacktrace with file not found

然后我在互联网上搜索解决方案。但我找不到任何正确的解决方案。

3 个答案:

答案 0 :(得分:2)

如果您在Intellij Idea工作,那么请创建一个名为" resources"的文件夹。在src \ main \ java下。打开项目的模块设置,选择"模块"从左边和在"来源"选项卡选择新创建的"资源"文件夹并将其标记为"资源"。enter image description here

然后这应该有用。

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

答案 1 :(得分:1)

我们去...如果有人在2020年通过IntelliJ学习Hibernate,这可能对您有帮助:)

  1. 在IntelliJ中创建JAVA项目 2)在搜索框中键入Hibernate,以在列表中找到所需的插件。 如果未选中“休眠”旁边的复选框,请选中它以启用插件。 点击确定。

  2. 添加JDBC驱动程序并测试连接
    using the common code snippet

如果运行正常,则将Hibernate Config文件添加到src目录的根目录中

术语

实体类:映射到数据库表的Java类

该Entity类应映射到实际的数据库表

ORM-对象关系映射

所以应该有一些将此类映射到db表的方法

JAVA注解-现代和首选的映射方式

step 1: Map the class to the database table

@Entity    
@Table(name="db_name")

step 2: Map fields to database columns

@Id(signify primary key)
@Column(name="column_name")

喜欢这里。

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="student")
public class Student {

@Id
@Column(name = "id")
private int id;

@Column(name = "first_name")
private String firstName;

@Column(name = "last_name")
private String lastName;

@Column(name = "email")
private String email;

public Student(){

} 


}

开发Java代码以执行数据库操作

Hibernate中的两个关键角色:

 SessionFactory: 

此人读取休眠配置文件并创建会话对象。 仅仅因为对象很重,我们只能在应用内创建一次并使用 一遍又一遍。

 Session : 

就像JDBC连接中的包装器一样,用于保存/检索 数据库中的对象。这是一个短暂的对象,已检索 来自SessionFactory。

 public static void main(String [] args){

       SessionFactory factory = new Configuration()
                                        .configure("hibernate.cfg.xml")
                                        .addAnnotatedClass(Student.class)
                                        .buildSessionFactory();

       Session session = factory.getCurrentSession();


 try{
    
   // use the session object to save/ retrieve java objects
   


  //create a test db object
   Student temoStudent = new Student("Tim","NIke","timnike@gmail.com");

   // start transaction
   session.beginTransaction();

   // save the student
   session.save(tempStudent);

   //commit the transaction
   session.getTransaction().commit();



  }finally {

    factory.close();

  }

 }

答案 2 :(得分:0)

将您的hibernate.cfg.xml文件放入" resource"文件夹中。

在main中你需要配置它像

Configuration cfg = new Configuration();
cfg.configure("hibernate.cfg.xml");