Hibernate_01_初体验
2024-08-25 09:24:23
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--自动生成类的配置文件:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2017-5-23 0:24:09 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
<class name="com.imooc.hibernate.Students" table="STUDENTS">
<id name="sid" type="int">
<column name="SID" />
<generator class="assigned" />
</id>
<property name="sname" type="java.lang.String">
<column name="SNAME" />
</property>
<property name="gender" type="java.lang.String">
<column name="GENDER" />
</property>
<property name="birthday" type="java.util.Date">
<column name="BIRTHDAY" />
</property>
<property name="address" type="java.lang.String">
<column name="ADDRESS" />
</property>
</class>
</hibernate-mapping>
生成hibernate配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate?useUnicode=true&characterEncoding=UTF-8</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 是否将sql语句打印到控制台,编码阶段便于测试,建议设为true -->
<property name="show_sql">true</property>
<!-- 是否将sql语句进行排版,建议设为true -->
<property name="format_sql">true</property>
<!-- 生成表结构的策略。create是如果之前有表结构,先删除表结构再重建;
update:原有的基础上更新;
create-drop:先删除表结构再重建
validate:与原表进行验证,如果和原表表结构不同,则不进行创建。
一般使用create和update
-->
<property name="hbm2ddl.auto">create</property> <mapping resource="com/imooc/hibernate/Students.hbm.xml"/>
</session-factory>
</hibernate-configuration>
写StudentsTest.java文件:
package com.icoom.test;
import static org.junit.Assert.fail; import java.util.Date; 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.After;
import org.junit.Before;
import org.junit.Test; import com.imooc.hibernate.Students; public class StudentsTest { private SessionFactory sessionFactory;
private Session session;
private Transaction transaction; @Before
public void init() {
// 1.创建配置对象
Configuration config = new Configuration().configure();
// 2.创建服务注册对象
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
// 3.创建会话工厂对象
sessionFactory = config.buildSessionFactory(serviceRegistry);
// 会话对象
session = sessionFactory.openSession();
// 开启事务
transaction = session.beginTransaction();
}
@After
public void destory() {
transaction.commit();
session.close();
sessionFactory.close();
}
@Test
public void testSaveStudents() {
// 生成学生对象
Students s = new Students(1, "老张", "男", new Date(), "山东");
session.save(s);//保存对象进入数据库
} }
使用Junit执行,然后在数据库中就会看到新建的表结构和插入的数据。
hibernate.cfg.xml文件中的<property name="hbm2ddl.auto">create</property>指定由hibernate新建表。
-------------------------------------
以上是对hibernate的配置文件元素的作用和hibernate的用法做一个简单的了解,一开始学习新技术要保持不求甚解,先快速入门以避免从入门到放弃。等达到一定熟练度再深入了解其原理。因此强烈推荐慕课网的教程,先快速了解再深入学习。
最新文章
- Django【基础篇】
- C++ exe调用dll文件
- JAVA学习中Swing部分JDialog对话框窗体的简单学习
- JavaScript创建命名空间、类及类成员
- android 滚动视图(ScrollView)
- linux查看文件大小df-du
- js防堵塞载入
- Ubuntu里字符编码设置
- git 修改commit日期为之前的日期
- react 体验 react与vue的比较
- MYSQL问题解决方案:Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password:YES)
- MySQL无法存储emoji表情方案
- linux下编译protobuf(可以编译成pb.go)
- Eclipse (indigo) 中安装jdk包并执行Maven
- PHP: Browser, Operating System (OS), Device, and Language Detect
- 以黄门镇黄湾村某一扶贫文档为例——将Excel数据填入到已存在的Word模板
- SpringSecurity入门例子及遇到的问题解决
- 再遇ibatisNet
- Java 基础笔记
- 2018.07.22 洛谷P3047附近的牛(树形dp)
热门文章
- 我理解的数据结构(一)—— 数组(Array)
- dubbo服务telnet命令的使用
- GeoTrust 企业(OV)型 增强版(EV) SSL证书
- POJ 3252 Round Numbers 组合数学
- Java web如何定位工程路径
- MVC.Net:MVC.Net与WebAPI的IOC实现
- Android 开源框架Universal-Image-Loader全然解析(一)--- 基本介绍及使用
- Criteria——Hibernate的面向对象查询
- 安装Office Web Apps Server 2013 &ndash; KB2592525安装失败
- CAS 4.0 配置开发手冊