zoukankan      html  css  js  c++  java
  • Hibernate之Hibernate环境搭建

    Hibernate之Hibernate环境搭建

    一、Hibernate环境搭建的步骤

    1.添加Hibernate && SQLServer 的Jar
      antlr-2.7.7.jar
      dom4j-1.6.1.jar
      hibernate-commons-annotations-4.0.5.Final.jar
      hibernate-core-4.3.11.Final.jar
      hibernate-jpa-2.1-api-1.0.0.Final.jar
      jandex-1.1.0.Final.jar
      javassist-3.18.1-GA.jar
      jboss-logging-3.1.3.GA.jar
      jboss-logging-annotations-1.2.0.Beta1.jar
      jboss-transaction-api_1.2_spec-1.0.0.Final.jar


      sqljdbc4.jar

    2.创建JavaBean类:User.java

     1 package cn.com.zfc.hibernate.entities;
     2 
     3 /**
     4 * 
     5 * @title User
     6 * @describe Hibernate 的 POJO
     7 * @author 张富昌
     8 * @date 2017年4月7日下午10:47:27
     9 */
    10 public class User {
    11   private Integer id;
    12   private String userName;
    13   private String userDesc;
    14 
    15   public User() {
    16     super();
    17   }
    18 
    19   public User(String userName, String userDesc) {
    20     super();
    21     this.userName = userName;
    22     this.userDesc = userDesc;
    23   }
    24 
    25   public Integer getId() {
    26     return id;
    27   }
    28 
    29   public void setId(Integer id) {
    30     this.id = id;
    31   }
    32 
    33   public String getUserName() {
    34     return userName;
    35   }
    36 
    37   public void setUserName(String userName) {
    38     this.userName = userName;
    39   }
    40 
    41   public String getUserDesc() {
    42     return userDesc;
    43   }
    44 
    45   public void setUserDesc(String userDesc) {
    46     this.userDesc = userDesc;
    47   }
    48 
    49   @Override
    50   public String toString() {
    51     return "User [id=" + id + ", userName=" + userName + ", userDesc=" + userDesc + "]";
    52   }
    53 }

    3.使用Xxx.hbm.xml 映射文件映射JavaBean属性到数据库表之间的映射关系:User.hbm.xml

     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 <!-- Generated 2017-3-19 13:53:52 by Hibernate Tools 3.5.0.Final -->
     5 <!-- 一般写 package,简化全类名 -->
     6 <hibernate-mapping package="cn.com.zfc.hibernate.entities">
     7   <class name="User" table="USERS">
     8     <!-- 映射主键,id:属性,column:字段 -->
     9     <id name="id" type="java.lang.Integer">
    10       <column name="ID" />
    11       <!-- 主键生成策略 -->
    12       <generator class="native" />
    13     </id>
    14     <!-- 映射普通字段,property:属性,column:字段 -->
    15     <property name="userName" type="java.lang.String">
    16       <column name="USER_NAME" />
    17     </property>
    18 
    19     <property name="userDesc" type="java.lang.String">
    20       <column name="USER_DESC" />
    21     </property>
    22   </class>
    23 </hibernate-mapping>

    4.在hibernate.cfg.xml Hibernate配置文件中配置Hibernate 数据源及相关属性:在hibernate.cfg.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE hibernate-configuration PUBLIC
     3 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
     4 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
     5 
     6 <hibernate-configuration>
     7   <session-factory>
     8     <!-- Hibernate 的基本配置 -->
     9 
    10     <!-- 数据源信息配置 -->
    11     <!-- 数据库用户名 -->
    12     <property name="hibernate.connection.username">sa</property>
    13     <!-- 数据库密码 -->
    14     <property name="hibernate.connection.password">123456</property>
    15     <!-- 数据库驱动宝 -->
    16     <property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
    17     <!-- 不指定数据库名称,可以在映射文件中指定数据库名称 -->
    18     <property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433;DatabaseName=hibernate-01</property>
    19 
    20     <!-- 指定在控制台输出 SQL 语句,便于调试 -->
    21     <property name="show_sql">true</property>
    22     <!-- 格式化 SQL 语句 -->
    23     <property name="format_sql">true</property>
    24     <!-- 指定数据库生成策略 -->
    25     <property name="hbm2ddl.auto">update</property>
    26     <!-- 配置数据库方言 -->
    27     <property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
    28 
    29     <!-- 注册 Hibernate 映射文件 -->
    30     <mapping resource="cn/com/zfc/hibernate/entities/User.hbm.xml" />
    31   </session-factory>
    32 </hibernate-configuration>

    5.使用Hibernate ORM框架完成对JavaBean对象的操作

      ①创建Configuration对象
        Configuration configuration = new Configuration().configure();
      ②创建SessionFactory 工厂类
        ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
        SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
      ③创建Session对象
        Session session = sessionFactory.openSession();
      ④开启事物 Transaction(查询不需要事务)
        Transaction transaction = session.beginTransaction();
      ⑤执行业务******
        CRUD操作
      ⑥提交事物
        transaction.commit();
      ⑦关闭会话
        session.close();
      ⑧关闭 SessionFactory
        sessionFactory.close();

     6.数据库:hibernate-01

    数据表:users

    二、JUNIT 单元测试初识

    1.单元测试的基本概念

    2.使用Junit 搭建Hibernate 测试环境

    3.@Test @Before @After

    4.Hibernate 环境的测试:TestHibernate.java

     1 package cn.com.zfc.hibernate.test;
     2 
     3 import org.hibernate.Session;
     4 import org.hibernate.SessionFactory;
     5 import org.hibernate.Transaction;
     6 import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
     7 import org.hibernate.cfg.Configuration;
     8 import org.hibernate.service.ServiceRegistry;
     9 import org.junit.After;
    10 import org.junit.Before;
    11 import org.junit.Test;
    12 
    13 import cn.com.zfc.hibernate.entities.User;
    14 
    15 /**
    16 * 
    17 * @title TestHibernate
    18 * @describe 测试 Hibernate 的环境
    19 * @author 张富昌
    20 * @date 2017年4月7日下午10:47:05
    21 */
    22 public class TestHibernate {
    23 
    24   private Configuration configuration = null;
    25   private SessionFactory sessionFactory = null;
    26   private Session session = null;
    27   private Transaction transaction;
    28 
    29   @Before
    30   public void init() {
    31     configuration = new Configuration().configure();
    32     ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
    33     sessionFactory = configuration.buildSessionFactory(serviceRegistry);
    34     session = sessionFactory.openSession();
    35     transaction = session.beginTransaction();
    36   }
    37 
    38   @After
    39   public void destory() {
    40     transaction.commit();
    41     session.close();
    42     sessionFactory.close();
    43   }
    44 
    45   // 添加
    46   @Test
    47   public void testSave() {
    48     User user = new User("UU-1", "爱生活,爱编程");
    49     session.save(user);
    50   }
    51 
    52   // 立即加载
    53   @Test
    54   public void testGet() {
    55     User user = (User) session.get(User.class, 1);
    56     System.out.println("user:" + user);
    57   }
    58 
    59   // 延迟加载:当数据真正使用时在开始加载
    60   @Test
    61   public void testLoad() {
    62     User user = (User) session.load(User.class, 1);
    63     System.out.println("user:" + user);
    64   }
    65 
    66   // 删除
    67   @Test
    68   public void testDelete() {
    69     User user = (User) session.load(User.class, 4);
    70     session.delete(user);
    71   }
    72 
    73   // 修改
    74   @Test
    75   public void testUpdate() {
    76     User user = (User) session.load(User.class, 1);
    77     user.setUserDesc("我是修改过的东西");
    78     session.update(user);
    79   }
    80 
    81   @Test
    82   public void dataSource() {
    83   }
    84 
    85 }
  • 相关阅读:
    oracle数据库数据导出
    oracle 数据连接方式
    plsql 建表空间
    java Excel 导入数据库
    python爬虫学习数据分析(连载中)
    python之pip库管理工具pip安装
    数据结构之看病排队系统
    数据结构之顺序串
    数据结构之链队
    数据结构之环形队列
  • 原文地址:https://www.cnblogs.com/zfc-java/p/6680413.html
Copyright © 2011-2022 走看看