又见面啦!!!经过上一章的学习,我们大概对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. ASP.NET MVC 5 - 开始MVC5之旅

    本教程将使用Visual Studio 2013手把手教你构建一个入门的ASP.NET MVC5 Web应用程序.本教程配套的C#源码工程可通过如下网址下载:C#版本源码链接.同时,请查阅 Build ...

  2. HTTPS那些事(一)HTTPS原理(转载)

    原创地址:http://www.guokr.com/post/114121/   楔子 谣言粉碎机前些日子发布的<用公共WiFi上网会危害银行账户安全吗?>,文中介绍了在使用HTTPS进行 ...

  3. Module Zero之Nuget包

    返回<Module Zero学习目录> ABP module-zero已经发布在了nuget上了.这里是所有的包列表. Abp.Zero module zero的核心包. Abp.Zero ...

  4. VVDocumenter 使用

    函数说明文档插件下载链接 https://github.com/onevcat/VVDocumenter-Xcode 下载后,直接运行项目 升级Xcode后可能不能再次使用,需要做一些处理从Xcode ...

  5. 携程App的网络性能优化实践

    首先介绍一下携程App的网络服务架构.由于携程业务众多,开发资源导致无法全部使用Native来实现业务逻辑,因此有相当一部分频道基于Hybrid实现.网络通讯属于基础&业务框架层中基础设施的一 ...

  6. java IO流 之 其他流

    一.内存操作流(ByteArrayInputStream.ByteArrayOutputStream) (一).   public class ByteArrayInputStream extends ...

  7. JSON-fastjson

    fastjson 是alibaba的一个Json处理工具包. 1.使用  JSON.toJSONString   和  JSON.parseObject fastjson只需要掌握两个静态方法:JSO ...

  8. CRM/ERP 企业管理软件中常见的七种程序设计模式

    管理软件中的常见代码设计模式,来自于业务上的需要,有不恰当的地方欢迎批评指正. 1  RE-TRY 重试模式 场景:在连接数据库服务器时,如果SQL Server数据库没有启动或正在启动,我们需要有一 ...

  9. Python标准模块--linecache

    1.模块简介 linecache主要用于缓存文件内容,如果下次继续读取该文件,则不需要打开文件,直接在缓存中获取该文件内容. 2.模块使用 模块的基本方法有getline,clearcache,get ...

  10. 关于有默认值的字段在用EF做插入操作时的思考(续)

    问题描述 今天下午(看现在这时间,应该是昨天下午了哈),园友 choon 写了这样一篇博文<关于有默认值的字段在用EF做插入操作时的思考>. 博文内容主要记录的是 choon 使用 EF ...