Hibernate_01_初体验
hibernate开发的基本步骤:
- 编写配置文档hibernate.cfg.xml;
- 编写实体类;
- 生成对应实体类的映射文件并添加到配置文档中;
- 调用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&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的用法做一个简单的了解,一开始学习新技术要保持不求甚解,先快速入门以避免从入门到放弃。等达到一定熟练度再深入了解其原理。因此强烈推荐慕课网的教程,先快速了解再深入学习。
转载于:https://www.cnblogs.com/tzzt01/p/6906429.html
Hibernate_01_初体验相关推荐
- 苹果电脑安装python3密码_mac系统安装Python3初体验
前沿 对于iOS开发不要随便拆卸系统自带的Python,因为有很多 library 还是使用 Python2.7. 1 安装Xcode 1.1 App Store 搜索Xcode 并安装 1.2 安装 ...
- MapReduce编程初体验
需求:在给定的文本文件中统计输出每一个单词出现的总次数 第一步: 准备一个aaa.txt文本文档 第二步: 在文本文档中随便写入一些测试数据,这里我写入的是 hello,world,hadoop he ...
- 小程序 缩放_缩放流星应用程序的初体验
小程序 缩放 by Elie Steinbock 埃莉·斯坦博克(Elie Steinbock) 缩放流星应用程序的初体验 (First Experiences Scaling a Meteor Ap ...
- wxWidgets刚開始学习的人导引(3)——wxWidgets应用程序初体验
wxWidgets刚開始学习的人导引全文件夹 PDF版及附件下载 1 前言 2 下载.安装wxWidgets 3 wxWidgets应用程序初体验 4 wxWidgets学习资料及利用方法指导 5 ...
- 用鸿蒙跑了个 “hello world”!鸿蒙开发初体验
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源 | https://my.oschina.net/u ...
- Windows Embedded Standard开发初体验(二)
支持Silverlight的Windows Embedded Standard 好了,完成安装之后,我们就可以来做Windows Embedded Standard的第一个操作系统镜像了.在开始菜单中 ...
- 深度探索Hyperledger技术与应用之超级账本初体验(附部署代码)
2019独角兽企业重金招聘Python工程师标准>>> 本章零基础地介绍了如何快速体验超级账本搭建的区块链网络,我们先绕过了比较复杂的初始化配置,用官方提供的fabric-sampl ...
- Spring环境搭建,IoC容器初体验~
由于最近的任务是关于IoC配置文件格式的转换,所以需要从Spring的IoC容器开始学起,今天根据网上的介绍搭建了Spring环境,并对其IoC容器进行了初体验.文章中涉及到的软件以及推荐的一本关于S ...
- 来自新手Banana Pi香蕉派初体验
2019独角兽企业重金招聘Python工程师标准>>> 一.前言 一段时间来对有强大的技术支持和完善的社区的Raspberry Pi很感兴趣,本想入一片学习学习,但转念一想Raspb ...
- 《深入理解Spark:核心思想与源码分析》——1.2节Spark初体验
本节书摘来自华章社区<深入理解Spark:核心思想与源码分析>一书中的第1章,第1.2节Spark初体验,作者耿嘉安,更多章节内容可以访问云栖社区"华章社区"公众号查看 ...
最新文章
- 微信小程序之购物车功能
- C语言 | 函数指针、指针函数、数组指针、指针数组
- netty web 容器_Netty 实战:如何编写一个麻小俱全的 web 框架
- php中绘制图像的手册,推荐功能超级强大的PHP画图库JpGraph
- ue4蓝图运行顺序_学习UE4,先学蓝图还是c++_资源库
- 博客营销之博客平台的选择和优化
- 23种设计模式的深入浅出(更新中)
- 小米 MIUI 主题制作
- MySQL 数据库索引优化项目实战
- 如何使用自訂 Segue 實現視圖轉場動畫
- 下载地址部落冲突(Clash Of Clans)免费获取宝石
- Fabric CA 配置与应用
- Smbus host controller not enabled Assuming drive cache : write through
- QQ邮箱邮件被拦截该怎么办?邮件被拦截的三种解决办法
- linux安装activeMQ 5.16 以及集群环境
- 怎样用matlab做复数运算,MATLAB面向复数运算的设计.doc
- Python 卡尔曼滤波器实现
- ViewPager控件之PagerAdapter适配器
- 穷查理宝典-----第一章 (查理芒格传略、歌颂长者:芒格论晚年、忆念:晚辈谈芒格)
- 引入字体—web网页里面嵌入想要的字体文件