mysql8.0.18+hibernate5.4.10 的配置入门详细教程


------------------------------------------------------摸索了许久,写个教程记录一下,以后忘了也好重新上手------------------------------------------------------------
------------------------------------------------------已经安装了MySQL的朋友可以直接看后面的 Hibernate配置 --------------------------------------------------------

运行环境:Windows10-64位操作系统

搭载配置:mysql8.0.18+hibernate5.4.10

MySQL官网:MySQL.COM

Windows10-32位:mysql8.0.18

Windows10-64位:mysql8.0.18

Hibernate下载地址:hibernate5.4.10


点击 mysql-32位   mysql-64位 下载链接的如图所示直接下载

其他版本自行官网下载:MySQL.COM


MySQL-8.0.18安装教程
可视化操作工具 Navicat12 下载及安装教程

到这里,MySQL的安装及可视化总算完成了。你可能几分钟就看到这里了,我足足排版了几个小时,哈哈,让自己也看得舒服同时让有缘的看到不至于眼花缭乱


-----------------------------------------------------进行了一系列安装与配置后,下面进行 Hibernate配置----------------------------------------------------------------



整个测试项目包如下所示,分5步讲解:

目录 --->>>可点击直达

1. 为项目导进 hibernate5.4.10 jar 包

2. 创建数据库 iphone_product 及实体类 Product.java

3. 创建映射配置文件 Product.hbm.xml

4. 创建Hibernate核心配置文件 hibernate.cfg.xml

5. 创建测试项目 TestHibernate.java




1.1、下载并解压 hibernate5.4.10 -> lib文件夹 -> required文件夹下的所有jar包 -> 导进项目根目录

1.2、导进jar包:右键项目 -> properties -> Java Build Path -> Add External JARS

2.1、打开 Nivacat 创建数据库 iphone_product:



2.2、创建 Product.java实体类:

实体类的 getter()和 setter()方法一定要遵循--->>>JavaBean规则<<<--- 否则会报错!!!

上面的文章是我公众号上写的一篇,具体学习JavaBean请自行百度,因为我也是一脸懵逼,我做项目的时候没有遵守这个规则,愣是差点被搞垮了,后来上网找了半天才查到了原因。顺便记录了一下这个—>>>JavaBean规则<<<—


package entity;

public class Product {

	public int id;
	public String name;
	public float price;
	
	public void setId(int id) {
		this.id = id;
	}

	public int getId() {
		return id;
	}
	
	public void setName(String name) {
		this.name = name;
	}

	public String getName() {
		return name;
	}
	
	public void setPrice(float price) {
		this.price = price;
	}

	public float getPrice() {
		return price;
	}
}


在实体类目录下新建一个配置文件:右键entity -> New -> Other -> General -> File -> Next -> 文件命名:Product.hbm.xml:P一定要大写,要和实体类 Product 保持一致

<?xml version = "1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
          "-//Hibernate/Hibernate Mapping DTD 3.0//EM"
          "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
          
<!-- 实体类包名,我的是entity,输入自己的项目实体包名即可 -->
<hibernate-mapping package="entity">
    <!-- 实体类名及数据库表名 -->
    <class name = "Product" table = "product">
          <!-- 实体类属性id映射数据库表里的id -->
          <id name = "id" column = "id">
              <!-- <generator class="native"> 意味着id的自增长方式采用数据库的本地方式 -->
              <generator class = "native"/>
          </id>
          <property name="name" column="name"></property>
          <property name="price" column="price"></property>
    </class>
</hibernate-mapping>

4.1 、在src类目录下新建一个配置文件:右键src -> New -> Other -> General -> File -> Next -> 文件命名:hibernate.cfg.xml

4.2、配置 hibernate.cfg.xml
<?xml version = "1.0" encoding = "UTF-8"?>

<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
       <session-factory>
       <!-- Database connection setting -->
            <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
            <!-- 由于采用的是mysql8,在url配置上要加入属性信息 ?useSSL=false&amp;serverTimezone=Asia/Shanghai -->
            <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/iphone_product?useSSL=false&amp;serverTimezone=GMT</property>
            <property name="hibernate.connection.username">root</property>
            <property name="hibernate.connection.password">xxx替换自己的数据库密码xxx</property>
            <!-- SQL dialect -->
            <!--方言的配置要使用MySQL8Dialect,如果是MySQLDialect就无法自动创建表 -->
            <property name="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</property>
            <property name="current_session_context_class">thread</property>
            <!-- 这表示是否在控制台显示执行的SQL语句 -->
            <property name="hibernate.show_sql">true</property>
            <property name="hibernate.format_sql">true</property>
            
            <!-- 自动更新表结构,没有表也会自动创建 -->
            <property name="hibernate.hbm2ddl.auto">update</property>       
            <mapping resource="entity/Product.hbm.xml"/>
       </session-factory>
</hibernate-configuration>


5.1 、Hibernate测试
package test;

import org.hibernate.Session;

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

import entity.Product;

public class TestHibernate {
	
	public static void main(String[] args) {
		//1、加载Hibernate的核心配置文件:hibernate.cfg.xml
		Configuration configuration = new Configuration().configure();
		//2、创建一个SessionFactory对象:类似于JDBC中的连接池
		SessionFactory sessionFactory = configuration.buildSessionFactory();
		//3、通过SessionFactory获取Session对象:类似JDBC中的Connection
		Session session = sessionFactory.openSession();
		//4、手动开启事务
		Transaction transaction = session.beginTransaction();
		//5、编写代码
		
		for (int i = 1; i <=10; i++) {
			Product p = new Product();
			p.setName("iphone"+i);
			p.setPrice(1000*i);
			session.save(p);
		}
		//6、事务提交
		transaction.commit();
		//7、资源释放
		session.close();
		sessionFactory.close();
	}
	

}

测试成功
在这里插入图片描述

在这里插入图片描述

发布了4 篇原创文章 · 获赞 6 · 访问量 364

猜你喜欢

转载自blog.csdn.net/weixin_44174530/article/details/103905630