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

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

这里使用MySQL作为示范。

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

如下图:

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

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

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

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

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

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

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

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

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

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

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

附图:这是代码结构图

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();
     }
 }

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

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

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

Hibernate-chapter two的更多相关文章

  1. [转]Hibernate设置时间戳的默认值和更新时间的自动更新

    原文地址:http://blog.csdn.net/sushengmiyan/article/details/50360451 Generated and default property value ...

  2. TIJ——Chapter Two:Everything Is an Object

    If we spoke a different language, we would perceive a somewhat different world. Ludwig Wittgenstein( ...

  3. Hibernate对象映射类型

    Hibernate understands both the Java and JDBC representations of application data. The ability to rea ...

  4. Chapter 7. Dependency Management Basics 依赖管理基础

    This chapter introduces some of the basics of dependency management in Gradle. 7.1. What is dependen ...

  5. Hibernate设置时间戳的默认值和更新时间的自动更新

    Generated and default property values 生成的和默认的属性值 The database sometimes generates a property value, ...

  6. Hibernate Validator 6.0.9.Final - JSR 380 Reference Implementation: Reference Guide

    Preface Validating data is a common task that occurs throughout all application layers, from the pre ...

  7. HQL: The Hibernate Query Language

    Chapter 14. HQL: The Hibernate Query Language 14.1. Case Sensitivity 14.2. The from clause 14.3. Ass ...

  8. Hibernate Persistence Contexts

    Hibernate ORM 5.2.18.Final User Guidehttps://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/ ...

  9. hibernate多对多关联映射

    关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...

  10. 解决 Springboot Unable to build Hibernate SessionFactory @Column命名不起作用

    问题: Springboot启动报错: Caused by: org.springframework.beans.factory.BeanCreationException: Error creati ...

随机推荐

  1. C#事件

    事件(event),这个词儿对于初学者来说,往往总是显得有些神秘,不易弄懂.而这些东西却往往又是编程中常用且非常重要的东西.大家都知道windows消息处理机制的重要,其实C#事件就是基于window ...

  2. rem与px的转换

    rem与px的转换 引用自http://caibaojian.com/rem-and-px.html A-A+ 前端博客•前端开发教程•rem•3702View0 rem是相对于根元素<html ...

  3. salesforce 零基础学习(四十六)动态美观显示列表中记录的审批状态

    项目中,申请者申请某些事项以后,常常需要在申请列表中查看当前申请的记录所在的审批状态,动态美观的显示状态可以使UI更符合客户要求,比如下面这样. 以Goods__c表为例,申请者申请的一些采购以前需要 ...

  4. 编译异常 Caused by: java.lang.UnsupportedClassVersionError:

    Caused by: java.lang.UnsupportedClassVersionError: com/sumingk/platform/service/impl/ServiceSysPerso ...

  5. 【hadoop2.2(yarn)】基于yarn成功执行分布式map-reduce,记录问题解决过程。

    hadoop2.x改进了hadoop1.x的架构, 具体yarn如何工作以及改进了什么可以在网上学, 这里仅记录我个人搭建的问题和理解,希望能帮助遇到困难的朋友. 在开始前,必须了解yarn版本的ma ...

  6. jQuery通过parent()和parents()方法访问父级元素

    <div class="inputGroup"> <p>2.您的最高学历是?</p> <label><input type=& ...

  7. SSISDB4:Execution

    Execution是Package或Project的Execution Instance,每次执行都会生成一个唯一的ExecutionID,并记录Execution 执行的结果.在每次Executio ...

  8. Entity Framework Code First关系映射约定

    本篇随笔目录: 1.外键列名默认约定 2.一对多关系 3.一对一关系 4.多对多关系 5.一对多自反关系 6.多对多自反关系 在关系数据库中,不同表之间往往不是全部都单独存在,而是相互存在关联的.两个 ...

  9. Caffe学习笔记2--Ubuntu 14.04 64bit 安装Caffe(GPU版本)

    0.检查配置 1. VMWare上运行的Ubuntu,并不能支持真实的GPU(除了特定版本的VMWare和特定的GPU,要求条件严格,所以我在VMWare上搭建好了Caffe环境后,又重新在Windo ...

  10. 编写简单的ramdisk(无请求队列)

    最近在研究块设备驱动的编写,看了赵磊大牛的<写一个块设备驱动>,受益匪浅,虽然能看懂里面说的,但动手写写代码还是能加深理解的,下面实现的ramdisk写的很简单,如果有错误,欢迎大牛们指正 ...