IDEA配置Hibernate

文章目录[x]
  1. 1:前言
  2. 2:创建数据库和表
  3. 3:新建Maven项目
  4. 4:连接数据库
  5. 5:自动生成核心配置文件,实体类以及实体类映射文件
  6. 5.1:生成核心配置文件
  7. 5.2:生成实体类及实体类映射文件
  8. 5.3:完成核心配置文件
  9. 6:访问数据库
  10. 7:可能出现的错误

前言

  • 我的系统环境:

    image-20210510205253837

  • IDEA版本:

    image-20210510235600374

创建数据库和表

create database hibernate;

use hibernate;

create table User(
    Id int auto_increment primary key ,
    Name varchar(50),
    Age int,
    Address varchar(50)
);

新建Maven项目

  • 为了方便导入Hibernate的依赖jar包,直接使用Maven创建项目

    Maven是一个项目管理及自动构建工具,可以特别方便地导入我们所需要的依赖jar包

    image-20210510232958583

  • 在pom.xml中添加junit、mysql-connector和hibernate的依赖

        <dependencies>
            <!-- https://mvnrepository.com/artifact/junit/junit -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13.2</version>
                <scope>test</scope>
            </dependency>
            <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>5.4.31.Final</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.24</version>
            </dependency>
        </dependencies>
  • 点击重新加载所有Maven项目,导入依赖jar包

    image-20210510233116721

连接数据库

image-20210510212928029

image-20210510233243242

自动生成核心配置文件,实体类以及实体类映射文件

生成核心配置文件

  • 文件->项目结构->模块->添加hibernate->添加描述符

image-20210510233505175

image-20210510233603571

生成实体类及实体类映射文件

  • 左下角Persistence -> 右键MyHibernateDemo

    如果找不到可以去视图中开启

image-20210510214741303

  • 生成持久性映射 -> 通过数据库架构

    image-20210510233711128

完成核心配置文件

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
    <property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
    <property name="connection.username">root</property>
    <property name="connection.password">fhj091100</property>
    <property name="show_sql">true</property>
    <property name="format_sql">true</property>
    <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
    <property name="hibernate.hbm2ddl.auto">update</property>
      <mapping resource="UserEntity.hbm.xml"/>
      <mapping class="user.UserEntity"/>
      <!-- <property name="connection.username"/> -->
    <!-- <property name="connection.password"/> -->

    <!-- DB schema will be updated if needed -->
    <!-- <property name="hibernate.hbm2ddl.auto">update</property> -->
  </session-factory>
</hibernate-configuration>

访问数据库

  • 创建dao.Insert类

    package dao;
    
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.cfg.Configuration;
    import user.UserEntity;
    
    public class Insert {
        public static void main(String[] args) {
    
            Configuration configuration = new Configuration().configure();
    
            SessionFactory sessionFactory = configuration.buildSessionFactory();
    
            Session session = sessionFactory.openSession();
    
            org.hibernate.Transaction ts = session.beginTransaction();
    
            UserEntity userEntity = new UserEntity();
    
            userEntity.setName("youwolf");
            userEntity.setAge(21);
            userEntity.setAddress("黑龙江哈尔滨");
    
            session.save(userEntity);
    
            ts.commit();
    
            session.close();
            sessionFactory.close();
        }
    }
  • 执行方法,运行结果:

    image-20210510234229862.png

    image-20210510234119290

可能出现的错误

  • 我的电脑进行配置时并没有出现错误,这里给出两个常见问题供参考
  • 如果出现时区错误,可以在数据库url后添加?serverTimezone=Asia/Shanghai手动将时区设置为上海
  • 如果出现数据库乱码,在数据库url后添加&amp;characterEncoding=utf8,将字符集设定为utf-8
点赞

发表评论

Title - Artist
0:00