Hibernate-chapter two

时间:2022-11-12 23:39:17

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

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

这里使用MySQL作为示范。

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

如下图:

Hibernate-chapter two

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

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

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

Hibernate-chapter two

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

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

Hibernate-chapter two

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

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

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

Hibernate-chapter two

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

Hibernate-chapter two

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

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

附图:这是代码结构图

Hibernate-chapter two

1——创建Hibernate配置文件

 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE hibernate-configuration PUBLIC
         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
         "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 <hibernate-configuration>
     <session-factory>

         <!-- 配置连接数据库的基本信息 -->
         <property name="connection.username">root</property>
         <property name="connection.password">123456</property>
         <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
         <property name="connection.url">jdbc:mysql://localhost:3306/hibernateTest</property>

         <!-- 配置 hibernate 的基本信息 -->

         <!-- hibernate 所使用的数据库方言     -->
         <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>

         <!-- 执行操作时是否在控制台打印 SQL -->
         <property name="show_sql">true</property>

         <!-- 是否对 SQL 进行格式化 -->
         <property name="format_sql">true</property>

         <!-- 指定自动生成数据表的策略 -->
         <property name="hibernate.hbm2ddl.auto">update</property>

         <!-- 指定关联的 .hbm.xml 文件 -->
         <mapping resource="com/jbit/entity/User/User.hbm.xml"/>

     </session-factory>

 </hibernate-configuration>

2——创建持久化类

 package com.jbit.entity.User;
 public class User {

     private int id;
     private String name;
     private int age;

     public int getId() {
         return id;
     }
     public void setId(int id) {
         this.id = id;
     }
     public String getName() {
         return name;
     }
     public void setName(String name) {
         this.name = name;
     }
     public int getAge() {
         return age;
     }
     public void setAge(int age) {
         this.age = age;
     }
     public User() {

     }
     public User(String name, int age) {
         super();
         this.name = name;
         this.age = age;
     }
     @Override
     public String toString() {
         return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
     }

 }

3——创建关系映射文件

 <?xml version="1.0"?>
 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

 <hibernate-mapping>

     <class name="com.jbit.entity.User.User" table="USER">

         <id name="id" type="java.lang.Integer" >
             <column name="ID" />
             <!-- 指定主键的生成方式, native: 使用数据库本地方式 -->
             <generator class="native" />
         </id>

         <property name="name" type="java.lang.String">
             <column name="NAME"/>
         </property>

         <property name="age" type="java.lang.Integer">
             <column name="AGE" />
         </property>
     </class>

 </hibernate-mapping>

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

 package com.jbit.entity.User;

 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
 import org.hibernate.Transaction;
 import org.hibernate.cfg.Configuration;
 import org.hibernate.service.ServiceRegistry;
 import org.hibernate.service.ServiceRegistryBuilder;
 import org.junit.Test;

 public class HibernateTest {
     @Test
     public void test() {

         System.out.println("test...启动。。。。。。");

         //1. 创建一个 SessionFactory 对象

         SessionFactory sessionFactory = null;

         //1). 创建 Configuration 对象: 对应 hibernate 的基本配置信息和 对象关系映射信息
         Configuration configuration = new Configuration().configure();

         //4.0 之前这样创建
 //        sessionFactory = configuration.buildSessionFactory();

         //2). 创建一个 ServiceRegistry 对象: hibernate 4.x 新添加的对象
         //hibernate 的任何配置和服务都需要在该对象中注册后才能有效.
         ServiceRegistry serviceRegistry =
                 new ServiceRegistryBuilder().applySettings(configuration.getProperties())
                                             .buildServiceRegistry();

         //3).
         sessionFactory = configuration.buildSessionFactory(serviceRegistry);

         //2. 创建一个 Session 对象
         Session session = sessionFactory.openSession();

         //3. 开启事务
         Transaction transaction = session.beginTransaction();

         //4. 执行保存操作
         User users = new User("Java12345",10);

         session.save(users);

         //5. 提交事务
         transaction.commit();

         //6. 关闭 Session
         session.close();

         //7. 关闭 SessionFactory 对象
         sessionFactory.close();
     }
 }

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

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

Hibernate-chapter two

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