基于IDEA使用maven创建hibernate项目

1、创建maven项目

基于IDEA使用maven创建hibernate项目_第1张图片

 2、导入hibernate需要的jar包

基于IDEA使用maven创建hibernate项目_第2张图片

        
        
            org.hibernate
            hibernate-core
            5.4.1.Final
        

        
        
            mysql
            mysql-connector-java
            8.0.26
        

 3、新建所需的文件夹,如果有就不用添加

resources文件夹

基于IDEA使用maven创建hibernate项目_第3张图片

 基于IDEA使用maven创建hibernate项目_第4张图片

 hibernate文件

基于IDEA使用maven创建hibernate项目_第5张图片

基于IDEA使用maven创建hibernate项目_第6张图片

基于IDEA使用maven创建hibernate项目_第7张图片

 基于IDEA使用maven创建hibernate项目_第8张图片

 基于IDEA使用maven创建hibernate项目_第9张图片

 基于IDEA使用maven创建hibernate项目_第10张图片

 基于IDEA使用maven创建hibernate项目_第11张图片

 4、完整的结构如下

 基于IDEA使用maven创建hibernate项目_第12张图片

 5、对hibernate的文件进行设置




    
        
        org.hibernate.dialect.MySQL5Dialect
        com.mysql.cj.jdbc.Driver

        
        数据库用户名
        数据库密码
        com.mysql.cj.jdbc.Driver
        数据库连接地址

        
        
        org.hibernate.dialect.MySQLInnoDBDialect

        
        
        true

        
        
        true

        
        
        
        validate

        
        2

        
        true

        
        10
        5
        2

        2000
        2000

        10

        
        100

        
        30

        

        
        
        

    

 6、连接数据库

前提是已经新建好数据库,使用IDEA连接数据库

 基于IDEA使用maven创建hibernate项目_第13张图片

填写数据库名,用户名,密码,然后测试,测试成功后点击ok

基于IDEA使用maven创建hibernate项目_第14张图片

 7、将需要的表与类完成数据映射的关系

7.1、使用hbm.xml来实现映射

新建好了数据库后,若没有建表,可以写了 “类名.hbm.xml” 文件后,有hibernate 自动建表。

如果使用 “类名.hbm.xml” 来实现映射的话,可以在表对应的实体类的包下,新建 “类名.hbm.xml” 文件来实现映射。

示例:


    实体类映射成表 表名默认为User
        映射表的主键为实体的id属性
            主键按uuid方式生成
        
        实体的其它属性映射表的一般字段
        
        
        
    

7.2、使用注解来实现映射

如果已经提前建好数据库和表,这里可以使用idea的工具自动生成。

基于IDEA使用maven创建hibernate项目_第15张图片

 

基于IDEA使用maven创建hibernate项目_第16张图片

 基于IDEA使用maven创建hibernate项目_第17张图片

 基于IDEA使用maven创建hibernate项目_第18张图片

自动在指定的包下生成了实体类,自行添加有参和无参构造方法等其他方法。

基于IDEA使用maven创建hibernate项目_第19张图片

 在 hibernate.cfg.xml 里修改映射类

基于IDEA使用maven创建hibernate项目_第20张图片

 8、测试

8.1、在持久层的类中书写某个持久层的方法

 public String findByName(String userName) {
        Session session = HibernateUtil.openSession();
        try {
            String hql = "from User where userName = :name";

            User user = session.createQuery(hql, User.class).setParameter("name", userName).uniqueResult();

            if (user != null) {
                return user.getUserName();
            } else {
                return null;
            }

        } finally {
            // 确保session被关闭
            if (session != null && session.isOpen()) {
                session.close();
            }
        }
    }

8.2、测试方法

 @Test
    public void findByName() {
        System.out.println(FileDao.findByName("jj"));
    }

9、相关工具类

HibernateUtil

public class HibernateUtil {
    private static final SessionFactory sessionFactory = buildSessionFactory();

    private static SessionFactory buildSessionFactory() {
        try {
            // 使用hibernate.cfg.xml创建SessionFactory
            StandardServiceRegistry standardRegistry = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml").build();
            Metadata metadata = new MetadataSources(standardRegistry).getMetadataBuilder().build();
            return metadata.getSessionFactoryBuilder().build();
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("SessionFactory creation failed!");
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    public static Session openSession() {
        return sessionFactory.openSession();
    }

    public static void closeSession(Session session) {
        if (session != null && session.isOpen()) {
            session.close();
        }
    }
}

你可能感兴趣的:(hibernate,intellij-idea,maven,spring,boot)