guo-184

四面八方搜集来的资料整合在一起

前置工作:

1.下载MySQL连接的jar包:

Connector/J 8.0.20(用于与MySQL8.0连接) 下载地址:https://dev.mysql.com/downloads/connector/j/

 

 

 创建数据库:

1 create database test;
2 
3 CREATE TABLE `customer` (
4  `id` int(11) NOT NULL,
5  `name` varchar(255) DEFAULT NULL,
6  PRIMARY KEY (`id`)
7 ) ENGINE=InnoDB DEFAULT CHARSET=utf8

 

1.先建立一个项目,勾选hibernate,同时勾选Create default hibernate configuration and main class并导入library,next,finish。

 

 

 2.导入MySQL-connect的jar包

File——>Project Structure——>Modules——>最右边点+号——>JARs or directories——>选中刚刚下载并解压出来的jar包——>Apply——>ok

 

 

 

 

 

       

 3.与MySQL数据库建立连接

Database——>new——>MySQL——>选择驱动——>输入用户名密码——>测试是否连接成功

  

 

 

    

 

 

 

4.创建对象关系映射文件

可以通过以下方式自动生成,但我的总是出错,所有选则手动创建

 

 手动:

 

 

 1 package com.xiaojin;
 2 
 3 public class Customer {
 4     private int id;
 5     private String name;
 6 
 7     public Customer() {
 8     }
 9 
10     public int getId() {
11         return id;
12     }
13 
14     public void setId(int id) {
15         this.id = id;
16     }
17 
18     public String getName() {
19         return name;
20     }
21 
22     public void setName(String name) {
23         this.name = name;
24     }
25 
26     @Override
27     public String toString() {
28         return "Customer{" +
29                 "id=" + id +
30                 ", name=\'" + name + \'\\'\' +
31                 \'}\';
32     }
33 }
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 3         "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 4 
 5 <hibernate-mapping>
 6     <!--name:实体类名,table:对应数据库表名-->
 7     <class name="com.xiaojin.Customer" table="customer">
 8         <!-- 配置主键映射 -->
 9         <!--name:实体类的属性名,column:数据库表的字段名,type:数据类型-->
10         <id name="id" type="java.lang.Integer">
11             <column name="id"></column>
12             <!-- 设置主键生成方式 -->
13             <generator class="assigned"></generator>
14         </id>
15 
16         <!-- 配置其他属性 -->
17         <!--name:实体类的属性名,column:数据库表的字段名,type:数据类型-->
18         <property name="name" type="java.lang.String">
19             <column name="name"></column>
20         </property>
21 
22 
23     </class>
24 </hibernate-mapping>

如果需要设置主键id为自增长模式,则需要设置主键的生成方式为identity(要确认已经在数据库设计时设置了自增长,具体方法可以使用navicat右键表选中设计表,选中主键id勾选自增长)

1 <id name="id" type="java.lang.Integer">
2              <column name="id"></column>
3              <!-- 设置主键生成方式 -->
4              <generator class="identity"></generator>
5          </id>

 

5.修改hibernate配置文件(hibernate.cfg.xml)

 

 1 <!--
 2   ~ Hibernate, Relational Persistence for Idiomatic Java
 3   ~
 4   ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
 5   ~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
 6   -->
 7 <!DOCTYPE hibernate-configuration PUBLIC
 8         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 9         "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
10 <hibernate-configuration>
11     <session-factory>
12         <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
13         <!--设置时区。MySQL8.0会出现的问题,应在jdbc:mysql://localhost:3306/[数据库名]加上?useSSL=false&amp;serverTimezone=UTC  -->
14         <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test?useSSL=false&amp;serverTimezone=UTC</property>
15         <!--账号-->
16         <property name="hibernate.connection.username">root</property>
17         <!--密码-->
18         <property name="hibernate.connection.password">root</property>
19         <!-- 设置方言 MySql8.0-->
20         <property name="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</property>
21 
22 
23         <!-- 注册当前session上下文:保证同一线程中获得的session是同一个session
24         <property name="hibernate.current_session_context_class">thread</property>
25         -->
26 
27         <!-- 自动建表 -->
28         <property name="hibernate.hbm2ddl.auto">update</property>
29 
30         <!-- 显示SQL -->
31         <property name="hibernate.show_sql">true</property>
32 
33         <!-- 格式化SQL -->
34         <property name="hibernate.format_sql">true</property>
35 
36 
37         <!--指定关联的 。hbm。xml文件 -->
38         <mapping resource="com/xiaojin/Customer.hbm.xml"></mapping>
39         <mapping class="com.xiaojin.Customer"/>
40         <mapping resource="com/xiaojin/Customer.hbm.xml"/>
41     </session-factory>
42 </hibernate-configuration>

6.创建测试类

 

 

 

 1 package com.test;
 2 import com.xiaojin.Customer;
 3 import org.hibernate.Session;
 4 import org.hibernate.SessionFactory;
 5 import org.hibernate.Transaction;
 6 import org.hibernate.cfg.Configuration;
 7 
 8 
 9 public class Test {
10 
11     public static void main(String[] args) {
12         Configuration conf=new Configuration();
13         conf.configure("hibernate.cfg.xml");
14         SessionFactory sessionFactory=conf.buildSessionFactory();
15         Session session=sessionFactory.openSession();//创建Session
16         Transaction tx=session.beginTransaction();//开启事务
17         //上面这个是固定的必要的
18 
19         Customer c=new Customer();
20         c.setName("aa");
21         c.setId(5);
22 
23         session.save(c);//执行保存
24         tx.commit();//提交事务
25 
26         //关闭
27         session.close();
28         sessionFactory.close();
29 
30     }
31 }

最后运行Test.java就会发现customer表中成功添加了信息

 

 

 

分类:

技术点:

相关文章:

  • 2022-01-12
  • 2021-05-25
  • 2021-07-05
  • 2021-11-08
  • 2021-11-20
  • 2021-05-04
猜你喜欢
  • 2022-12-23
  • 2021-09-24
  • 2021-04-15
  • 2021-11-20
  • 2022-12-23
  • 2021-11-25
相关资源
相似解决方案