Hibernate_01_初体验

hibernate开发的基本步骤:

  1. 编写配置文档hibernate.cfg.xml;
  2. 编写实体类;
  3. 生成对应实体类的映射文件并添加到配置文档中;
  4. 调用hibernate API进行测试。

Hibernate的一个小例子(慕课网教程整理的代码):

首先在eclipse--help--Eclipse MarketPlace中搜索“jboss Tool”

导入hibernate核心jar包、Junit包。

创建一个java类:

 1 package com.imooc.hibernate;2 3 import java.util.Date;4 5 public class Students {6 7     private int sid;8     private String sname;9     private String gender;
10     private Date birthday;
11     private String address;
12
13     public Students(int sid, String sname, String gender, Date birthday, String address) {
14         super();
15         this.sid = sid;
16         this.sname = sname;
17         this.gender = gender;
18         this.birthday = birthday;
19         this.address = address;
20     }
21
22     @Override
23     public String toString() {
24         return "Students [sid=" + sid + ", sname=" + sname + ", gender=" + gender + ", birthday=" + birthday
25                 + ", address=" + address + "]";
26     }
27
28     public int getSid() {
29         return sid;
30     }
31
32     public void setSid(int sid) {
33         this.sid = sid;
34     }
35
36     public String getSname() {
37         return sname;
38     }
39
40     public void setSname(String sname) {
41         this.sname = sname;
42     }
43
44     public String getGender() {
45         return gender;
46     }
47
48     public void setGender(String gender) {
49         this.gender = gender;
50     }
51
52     public Date getBirthday() {
53         return birthday;
54     }
55
56     public void setBirthday(Date birthday) {
57         this.birthday = birthday;
58     }
59
60     public String getAddress() {
61         return address;
62     }
63
64     public void setAddress(String address) {
65         this.address = address;
66     }
67 }

点击项目名,右键new--other--自动生成类的配置文件:

 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-5-23 0:24:09 by Hibernate Tools 3.5.0.Final -->
 5 <hibernate-mapping>
 6     <class name="com.imooc.hibernate.Students" table="STUDENTS">
 7         <id name="sid" type="int">
 8             <column name="SID" />
 9             <generator class="assigned" />
10         </id>
11         <property name="sname" type="java.lang.String">
12             <column name="SNAME" />
13         </property>
14         <property name="gender" type="java.lang.String">
15             <column name="GENDER" />
16         </property>
17         <property name="birthday" type="java.util.Date">
18             <column name="BIRTHDAY" />
19         </property>
20         <property name="address" type="java.lang.String">
21             <column name="ADDRESS" />
22         </property>
23     </class>
24 </hibernate-mapping>

生成hibernate配置文件:

 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 <hibernate-configuration>
 6     <session-factory>
 7         <property name="connection.username">root</property>
 8         <property name="connection.password">root</property>
 9         <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
10         <property name="connection.url">jdbc:mysql://localhost:3306/hibernate?useUnicode=true&amp;characterEncoding=UTF-8</property>
11         <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
12         <!-- 是否将sql语句打印到控制台,编码阶段便于测试,建议设为true -->
13         <property name="show_sql">true</property>
14         <!-- 是否将sql语句进行排版,建议设为true -->
15         <property name="format_sql">true</property>
16         <!-- 生成表结构的策略。create是如果之前有表结构,先删除表结构再重建;
17             update:原有的基础上更新;
18             create-drop:先删除表结构再重建
19             validate:与原表进行验证,如果和原表表结构不同,则不进行创建。
20             一般使用create和update
21          -->
22         <property name="hbm2ddl.auto">create</property>
23
24         <mapping resource="com/imooc/hibernate/Students.hbm.xml"/>
25     </session-factory>
26 </hibernate-configuration>

写StudentsTest.java文件:

 1 package com.icoom.test;
 2 import static org.junit.Assert.fail;
 3
 4 import java.util.Date;
 5
 6 import org.hibernate.Session;
 7 import org.hibernate.SessionFactory;
 8 import org.hibernate.Transaction;
 9 import org.hibernate.cfg.Configuration;
10 import org.hibernate.service.ServiceRegistry;
11 import org.hibernate.service.ServiceRegistryBuilder;
12 import org.junit.After;
13 import org.junit.Before;
14 import org.junit.Test;
15
16 import com.imooc.hibernate.Students;
17
18 public class StudentsTest {
19
20     private SessionFactory sessionFactory;
21     private Session session;
22     private Transaction transaction;
23
24     @Before
25     public void init() {
26         // 1.创建配置对象
27         Configuration config = new Configuration().configure();
28         // 2.创建服务注册对象
29         ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
30         // 3.创建会话工厂对象
31         sessionFactory = config.buildSessionFactory(serviceRegistry);
32         // 会话对象
33         session = sessionFactory.openSession();
34         // 开启事务
35         transaction = session.beginTransaction();
36     }
37     @After
38     public void destory() {
39         transaction.commit();
40         session.close();
41         sessionFactory.close();
42     }
43     @Test
44     public void testSaveStudents() {
45         // 生成学生对象
46         Students s = new Students(1, "老张", "男", new Date(), "山东");
47         session.save(s);//保存对象进入数据库
48     }
49
50 }

使用Junit执行,然后在数据库中就会看到新建的表结构和插入的数据。

hibernate.cfg.xml文件中的<property name="hbm2ddl.auto">create</property>指定由hibernate新建表。

-------------------------------------

以上是对hibernate的配置文件元素的作用和hibernate的用法做一个简单的了解,一开始学习新技术要保持不求甚解,先快速入门以避免从入门到放弃。等达到一定熟练度再深入了解其原理。因此强烈推荐慕课网的教程,先快速了解再深入学习。

posted on 2017-05-25 23:16 tzzt01 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/tzzt01/p/6906429.html

Hibernate_01_初体验相关推荐

  1. 苹果电脑安装python3密码_mac系统安装Python3初体验

    前沿 对于iOS开发不要随便拆卸系统自带的Python,因为有很多 library 还是使用 Python2.7. 1 安装Xcode 1.1 App Store 搜索Xcode 并安装 1.2 安装 ...

  2. MapReduce编程初体验

    需求:在给定的文本文件中统计输出每一个单词出现的总次数 第一步: 准备一个aaa.txt文本文档 第二步: 在文本文档中随便写入一些测试数据,这里我写入的是 hello,world,hadoop he ...

  3. 小程序 缩放_缩放流星应用程序的初体验

    小程序 缩放 by Elie Steinbock 埃莉·斯坦博克(Elie Steinbock) 缩放流星应用程序的初体验 (First Experiences Scaling a Meteor Ap ...

  4. wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验

    wxWidgets刚開始学习的人导引全文件夹   PDF版及附件下载 1 前言 2 下载.安装wxWidgets 3 wxWidgets应用程序初体验 4 wxWidgets学习资料及利用方法指导 5 ...

  5. 用鸿蒙跑了个 “hello world”!鸿蒙开发初体验

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源 | https://my.oschina.net/u ...

  6. Windows Embedded Standard开发初体验(二)

    支持Silverlight的Windows Embedded Standard 好了,完成安装之后,我们就可以来做Windows Embedded Standard的第一个操作系统镜像了.在开始菜单中 ...

  7. 深度探索Hyperledger技术与应用之超级账本初体验(附部署代码)

    2019独角兽企业重金招聘Python工程师标准>>> 本章零基础地介绍了如何快速体验超级账本搭建的区块链网络,我们先绕过了比较复杂的初始化配置,用官方提供的fabric-sampl ...

  8. Spring环境搭建,IoC容器初体验~

    由于最近的任务是关于IoC配置文件格式的转换,所以需要从Spring的IoC容器开始学起,今天根据网上的介绍搭建了Spring环境,并对其IoC容器进行了初体验.文章中涉及到的软件以及推荐的一本关于S ...

  9. 来自新手Banana Pi香蕉派初体验

    2019独角兽企业重金招聘Python工程师标准>>> 一.前言 一段时间来对有强大的技术支持和完善的社区的Raspberry Pi很感兴趣,本想入一片学习学习,但转念一想Raspb ...

  10. 《深入理解Spark:核心思想与源码分析》——1.2节Spark初体验

    本节书摘来自华章社区<深入理解Spark:核心思想与源码分析>一书中的第1章,第1.2节Spark初体验,作者耿嘉安,更多章节内容可以访问云栖社区"华章社区"公众号查看 ...

最新文章

  1. 微信小程序之购物车功能
  2. C语言 | 函数指针、指针函数、数组指针、指针数组
  3. netty web 容器_Netty 实战:如何编写一个麻小俱全的 web 框架
  4. php中绘制图像的手册,推荐功能超级强大的PHP画图库JpGraph
  5. ue4蓝图运行顺序_学习UE4,先学蓝图还是c++_资源库
  6. 博客营销之博客平台的选择和优化
  7. 23种设计模式的深入浅出(更新中)
  8. 小米 MIUI 主题制作
  9. MySQL 数据库索引优化项目实战
  10. 如何使用自訂 Segue 實現視圖轉場動畫
  11. 下载地址部落冲突(Clash Of Clans)免费获取宝石
  12. Fabric CA 配置与应用
  13. Smbus host controller not enabled Assuming drive cache : write through
  14. QQ邮箱邮件被拦截该怎么办?邮件被拦截的三种解决办法
  15. linux安装activeMQ 5.16 以及集群环境
  16. 怎样用matlab做复数运算,MATLAB面向复数运算的设计.doc
  17. Python 卡尔曼滤波器实现
  18. ViewPager控件之PagerAdapter适配器
  19. 穷查理宝典-----第一章 (查理芒格传略、歌颂长者:芒格论晚年、忆念:晚辈谈芒格)
  20. 引入字体—web网页里面嵌入想要的字体文件

热门文章

  1. java版本号分段比较_java实现的版本号比较
  2. edger多组差异性分析_edgeR基因表达差异分析
  3. linux系统关闭指定服务的方式
  4. Sybase数据库故障的修复方法
  5. 物联网发展 制定技术标准才能更好监管
  6. java(6) ArrayList源码
  7. Gartner:全球晶圆代工市场排行榜?台积电保持第一、联电退居第三
  8. Officescan如何藉由修改用戶端機碼以開啟常用功能
  9. python-pycharm使用方法
  10. 能大大提升工作效率和时间效率的9个重要习惯