Hibernate-chapter two

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate-chapter two相关的知识,希望对你有一定的参考价值。

又见面啦!!!经过上一章的学习,我们大概对Hibernate框架有所了解。接下来进入我们的第二阶段——实战!

======准备数据库======

这里使用mysql作为示范。

  1. 创建一个名为Hibernate_test的数据库

如下图:

技术分享

数据库的操作暂时就到这里。

Ps:没有数据库基础的朋友们,请先学习数据库基础再来学习哦!

======准备Hibernate的jar包======

 技术分享

至于你下载什么版本自己决定,这里先用4.2.4作为示范。

  1. 解压出来,找到如下jar包……

 技术分享

*其中有数据库驱动包<mysql-connector-........>,你使用什么数据库就下载什么数据库驱动包,这里是MySQL。

======新建项目======

  1. 新建java项目,随便命名,但务必规范,把刚刚Hibernate和数据库驱动的jar包复制到新建lib文件夹里面。

 技术分享

======接下来就是编码阶段======

 技术分享

步骤上图写得清清楚楚,我不做解释了,接着动手敲吧。

*******************************************************

附图:这是代码结构图

技术分享

 

1——创建Hibernate配置文件

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE hibernate-configuration PUBLIC
 3         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 4         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 5 <hibernate-configuration>
 6     <session-factory>
 7     
 8         <!-- 配置连接数据库的基本信息 -->
 9         <property name="connection.username">root</property>
10         <property name="connection.password">123456</property>
11         <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
12         <property name="connection.url">jdbc:mysql://localhost:3306/hibernateTest</property>
13         
14         <!-- 配置 hibernate 的基本信息 -->
15         
16         <!-- hibernate 所使用的数据库方言     -->    
17         <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
18         
19         <!-- 执行操作时是否在控制台打印 SQL -->
20         <property name="show_sql">true</property>
21     
22         <!-- 是否对 SQL 进行格式化 -->
23         <property name="format_sql">true</property>
24     
25         <!-- 指定自动生成数据表的策略 -->
26         <property name="hibernate.hbm2ddl.auto">update</property>
27         
28         
29         <!-- 指定关联的 .hbm.xml 文件 -->
30         <mapping resource="com/jbit/entity/User/User.hbm.xml"/>
31         
32     </session-factory>
33 
34 </hibernate-configuration>

2——创建持久化类

 1 package com.jbit.entity.User;
 2 public class User {
 3 
 4     private int id;
 5     private String name;
 6     private int age;
 7     
 8     public int getId() {
 9         return id;
10     }
11     public void setId(int id) {
12         this.id = id;
13     }
14     public String getName() {
15         return name;
16     }
17     public void setName(String name) {
18         this.name = name;
19     }
20     public int getAge() {
21         return age;
22     }
23     public void setAge(int age) {
24         this.age = age;
25     }
26     public User() {
27     
28     }
29     public User(String name, int age) {
30         super();
31         this.name = name;
32         this.age = age;
33     }
34     @Override
35     public String toString() {
36         return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
37     }
38     
39     
40     
41     
42 }

3——创建关系映射文件

 1 <?xml version="1.0"?>
 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 
 7     <class name="com.jbit.entity.User.User" table="USER">
 8         
 9         <id name="id" type="java.lang.Integer" >
10             <column name="ID" />
11             <!-- 指定主键的生成方式, native: 使用数据库本地方式 -->
12             <generator class="native" />
13         </id>
14     
15         <property name="name" type="java.lang.String">
16             <column name="NAME"/>
17         </property>
18         
19         <property name="age" type="java.lang.Integer">
20             <column name="AGE" />
21         </property>
22     </class>
23     
24 </hibernate-mapping>

4——创建通过Hibernate APL访问数据库代码

 1 package com.jbit.entity.User;
 2 
 3 import org.hibernate.Session;
 4 import org.hibernate.SessionFactory;
 5 import org.hibernate.Transaction;
 6 import org.hibernate.cfg.Configuration;
 7 import org.hibernate.service.ServiceRegistry;
 8 import org.hibernate.service.ServiceRegistryBuilder;
 9 import org.junit.Test;
10 
11 public class HibernateTest {
12     @Test
13     public void test() {
14         
15         System.out.println("test...启动。。。。。。");
16         
17         //1. 创建一个 SessionFactory 对象
18         
19         SessionFactory sessionFactory = null;
20         
21         //1). 创建 Configuration 对象: 对应 hibernate 的基本配置信息和 对象关系映射信息
22         Configuration configuration = new Configuration().configure();
23         
24         //4.0 之前这样创建
25 //        sessionFactory = configuration.buildSessionFactory();
26         
27         //2). 创建一个 ServiceRegistry 对象: hibernate 4.x 新添加的对象
28         //hibernate 的任何配置和服务都需要在该对象中注册后才能有效.
29         ServiceRegistry serviceRegistry = 
30                 new ServiceRegistryBuilder().applySettings(configuration.getProperties())
31                                             .buildServiceRegistry();
32         
33         //3).
34         sessionFactory = configuration.buildSessionFactory(serviceRegistry);
35         
36         //2. 创建一个 Session 对象
37         Session session = sessionFactory.openSession();
38         
39         //3. 开启事务
40         Transaction transaction = session.beginTransaction();
41         
42         //4. 执行保存操作
43         User users = new User("Java12345",10);
44         
45         session.save(users);
46         
47         
48         //5. 提交事务 
49         transaction.commit();
50         
51         //6. 关闭 Session
52         session.close();
53         
54         //7. 关闭 SessionFactory 对象
55         sessionFactory.close();
56     }
57 }

嗯-------------上面的敲完,理解后,接下来就是执行,看数据库是否自动为数据库添加表和列!

看我的成功了!你呢???

技术分享

 

 --------------------------------------------------------------------------------------------------------------------------------------来自尼玛星球的光军/QQ:383996901

以上是关于Hibernate-chapter two的主要内容,如果未能解决你的问题,请参考以下文章

markdown列表中的缩进

如何在 Rails 中清理 sql 片段

seata 分布式事务 -- seata-two工程完整代码

php中的全局变量引用

计算机视觉与模式识别代码合集第二版two

微信小程序代码片段