1.

  1 package mypack;
  2
  3 import org.hibernate.*;
  4 import org.hibernate.cfg.Configuration;
  5 import java.util.*;
  6
  7 public class BusinessService{
  8   public static SessionFactory sessionFactory;
  9
 10   /** 初始化Hibernate,创建SessionFactory实例 */
 11   static{
 12     try{
 13       // 根据默认位置的Hibernate配置文件的配置信息,创建一个Configuration实例
 14       Configuration config = new Configuration();
 15       //加载Monkey类的对象-关系映射文件
 16       config.addClass(Monkey.class);
 17       // 创建SessionFactory实例
 18       sessionFactory = config.buildSessionFactory();
 19       SessionFactory sessionFactory2 = config.buildSessionFactory();
 20       System.out.println("---------->"+(sessionFactory2==sessionFactory));
 21
 22     }catch(RuntimeException e){e.printStackTrace();throw e;}
 23   }
 24
 25   /** 查询所有的Monkey对象,然后打印Monkey对象信息 */
 26   public void findAllMonkeys(){
 27     Session session = sessionFactory.openSession(); //创建一个会话
 28     Transaction tx = null;
 29     try {
 30       tx = session.beginTransaction(); //开始一个事务
 31       Query query=session.createQuery("from Monkey as m order by m.name asc");
 32       List monkeys=query.list();
 33       for (Iterator it = monkeys.iterator(); it.hasNext();) {
 34         Monkey monkey=(Monkey) it.next();
 35         System.out.println("ID="+monkey.getId()
 36          +",姓名="+monkey.getName()
 37          +",年龄="+monkey.getAge()
 38          +",性别="+(monkey.getGender()=='M'?"公猴":"母猴"));
 39       }
 40
 41       tx.commit(); //提交事务
 42
 43     }catch (RuntimeException e) {
 44       if (tx != null) {
 45          tx.rollback();
 46       }
 47       throw e;
 48     } finally {
 49        session.close();
 50     }
 51   }
 52
 53   /** 持久化一个Monkey对象 */
 54   public void saveMonkey(Monkey monkey){
 55     Session session = sessionFactory.openSession();
 56     Transaction tx = null;
 57     try {
 58       tx = session.beginTransaction();
 59       session.save(monkey);
 60       tx.commit();
 61
 62     }catch (RuntimeException e) {
 63       if (tx != null) {
 64         tx.rollback();
 65       }
 66       throw e;
 67     } finally {
 68       session.close();
 69     }
 70   }
 71
 72   /** 按照OID加载一个Monkey对象,然后修改它的属性 */
 73   public void loadAndUpdateMonkey(Long monkey_id,int age){
 74     Session session = sessionFactory.openSession();
 75     Transaction tx = null;
 76     try {
 77       tx = session.beginTransaction();
 78
 79       Monkey m=(Monkey)session.get(Monkey.class,monkey_id);
 80       m.setAge(age);
 81       tx.commit();
 82
 83     }catch (RuntimeException e) {
 84       if (tx != null) {
 85         tx.rollback();
 86       }
 87       throw e;
 88     } finally {
 89       session.close();
 90     }
 91   }
 92
 93   /**删除Monkey对象 */
 94   public void deleteMonkey(Monkey monkey){
 95     Session session = sessionFactory.openSession();
 96     Transaction tx = null;
 97     try {
 98       tx = session.beginTransaction();
 99       session.delete(monkey);
100       tx.commit();
101
102     }catch (RuntimeException e) {
103       if (tx != null) {
104         tx.rollback();
105       }
106       throw e;
107     } finally {
108       session.close();
109     }
110   }
111
112   public void test(){
113     Monkey monkey=new Monkey();
114     monkey.setName("智多星");
115     monkey.setAge(1);
116     monkey.setGender('M');
117
118     saveMonkey(monkey);
119
120     findAllMonkeys();
121     loadAndUpdateMonkey(monkey.getId(),2);
122     findAllMonkeys();
123     deleteMonkey(monkey);
124     findAllMonkeys();
125   }
126
127   public static void main(String args[]){
128     new BusinessService().test();
129     sessionFactory.close();
130   }
131 }

2.

 1 <?xml version="1.0"?>
 2 <!DOCTYPE hibernate-mapping PUBLIC
 3         "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
 4         "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 5
 6 <hibernate-mapping>
 7   <class name="mypack.Monkey" table="MONKEYS">
 8
 9
10     <id name="id" column="ID" type="long">
11       <generator class="increment"/>
12     </id>
13     <property name="name"  column="NAME"  type="string" not-null="true" />
14     <property name="age"     column="AGE"     type="int" />
15     <property name="gender"  column="GENDER"       type="character"/>
16   </class>
17
18 </hibernate-mapping>

3.

1 hibernate.dialect=org.hibernate.dialect.MySQLDialect
2 hibernate.connection.driver_class=com.mysql.jdbc.Driver
3 hibernate.connection.url=jdbc:mysql://localhost:3306/SAMPLEDB?useUnicode=true&characterEncoding=GBK
4 hibernate.connection.username=root
5 hibernate.connection.password=1234
6 hibernate.show_sql=true

4.

转载于:https://www.cnblogs.com/shamgod/p/5296260.html

Hibernate逍遥游记-第2章-使用hibernate.properties相关推荐

  1. 《Java逍遥游记》

    <Java逍遥游记>精彩章节下载 序 转眼之间,我在Java领域从事了八年多的创作了.在这八年中,我在Java的各个领域里遨游驰骋,既要探索各种技术的宏观架构和运用技巧,又要细细品味每种技 ...

  2. java逍遥游记 下载_Hibernate逍遥游记 孙卫琴著 PDF下载

    <Java开发专家•Hibernate逍遥游记(附CD-ROM光盘1张)>Hibernate是非常流行的对象一关系映射工具.<Java开发专家•Hibernate逍遥游记(附CD-R ...

  3. hibernate mysql 外键_如何在hibernate中设置关联会在数据库中生成外键

    hibernate学习笔记(三) hibernate的一些杂记:1.sessionFactory的用法:SessionFactory是线程安全的,构造 SessionFactory 很消耗资源sess ...

  4. HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档

    Hibernate参考文档 3.1.2 目录 前言 1. 翻译说明 2. 版权声明 1.Hibernate入门 1.1.前言 1.2.第一部分-第一个Hibernate应用程序 1.2.1.第一个cl ...

  5. java hibernate详细_Java事务管理学习之Hibernate详细介绍

    hibernate是jdbc轻量级的封装,本身不具备事务管理的能力,在事物管理层面,一般是委托于底层的jdbc和jta来完成调度的.下面这篇文章主要给大家介绍了Java事务管理学习之Hibernate ...

  6. hibernate 一对多_java面试题之Hibernate

    1.为什么要使用 hibernate? hibernate 是对 jdbc 的封装,大大简化了数据访问层的繁琐的重复性代码. hibernate 是一个优秀的 ORM 实现,很多程度上简化了 DAO ...

  7. Hibernate 中配置属性详解(hibernate.properties)

    转自:https://blog.csdn.net/shudaqi2010/article/details/70324843 Hibernate能在各种不同环境下工作而设计的, 因此存在着大量的配置参数 ...

  8. hibernate正向生成数据库表以及配置——hibernate.cfg.xml

    <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC"-//Hib ...

  9. Java程序员从笨鸟到菜鸟之(五十一)细谈Hibernate(二)开发第一个hibernate基本详解...

    在上篇博客中,我们介绍了<hibernate基本概念和体系结构>,也对hibernate框架有了一个初步的了解,本文我将向大家简单介绍Hibernate的核心API调用库,并讲解一下它的基 ...

最新文章

  1. Linux drm显示系统的两种方案
  2. 前端的各种各样的面试题大全
  3. Could not obtain transaction-synchronized Session for current thread
  4. ML之FE:利用FE特征工程(单个特征及其与标签关系的可视化)对RentListingInquries(Kaggle竞赛)数据集实现房屋感兴趣程度的多分类预测
  5. 使用yml多环境配置
  6. 【ORACLE 高可用】使用GOLDENGATE 配置Oracle-MySQL的异构复制
  7. MySQL深度剖析之索引专题(2021)
  8. JS将/Date(1446704778000)/转换成string
  9. android eclipse clean 变异,Run a clean Android build from Eclipse?
  10. 计算机系统基础袁春风试题,计算机系统基础习题解答与教学指导
  11. express基本使用步骤
  12. c语言求100以内偶数和while,c语言 求1到100以内的偶数之和
  13. [初级理论]给老婆做测试培训-02
  14. 【MySQL】navicat for mysql 安装及使用
  15. python提取cad坐标_教你一个CAD坐标提取的小技巧
  16. 均值,期望,方差,标准差,协方差
  17. 设计模式初探-观察者模式
  18. 使用SOCK_PACKET编写ARP请求程序的例子
  19. 电子白板无法触摸怎么办?
  20. 1087 花括号展开

热门文章

  1. deepin中zz_如何解决R中的FizzBu​​zz问题
  2. 《成为一名机器学习工程师》_如何在2020年成为机器学习工程师
  3. 房贷是不是越多越久越好?
  4. 4bit超前进位加法器电路
  5. 变电站计算机监控系统的作用和工作原理,变电站计算机监控系统的主要功能.pdf...
  6. Linux vim 的编码格式,linux下的文件编码,vim编码
  7. 通过服务器给多台计算机装系统,怎么快速给机房多台电脑安装系统?
  8. android自定义游戏闯关图,Android自定义View(四) -- Canvas
  9. python特征工程插件_手把手教你用Python实现自动特征工程
  10. 用linq查询html中div个数,C#使用Linq to XML进行XPath查询