Hibernate入门——基础详解
来源:互联网 发布:世界各地社交软件 编辑:程序博客网 时间:2024/06/14 18:51
什么是ORM?
ORM全名是Object Relational Mapping(对象关系映射),用来把对象模型表示的对象映射到基于S Q L 的关系模型数据库结构中去。
它的方法论基于三个核心原则:
- 简单:以最基本的形式建模数据。
- 传达性:数据库结构被任何人都能理解的语言文档化。
- 精确性:基于数据模型创建正确标准化的结构。
什么是Hibernate?
Hibernate是一个开源的ORM框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的ORM框架,Hibernate可以自动生成SQL语句,自动执行。
搭建Hibernate环境步骤
安装JBoss Tools插件
JBoss Tools它是一个综合开发工具插件,该插件简化ORM框架Hibernate,JBoss Seam,EJB3等的开发工作。
安装请参考我的上一篇文章 Eclipse安装以及集成Java开发环境插件的安装。
下载相关jar包
- Hibernate官网:http://hibernate.org/orm/
我是用的是hibernate-release-5.2.10这个版本
解压我们下载好的hibernate-release-5.2.10.Final.zip,打开\lib\required文件,如下图所示(即所需的最小jar包):
- Mysql的jdbc驱动
Mysql官网:https://dev.mysql.com/downloads/connector/j/
接下我们下载好的mysql-connector-java-5.1.43.tar,打开这个文件夹,如下:
创建Java Project项目导入Hibernate的所需的jar包
添加Junit单元测试的jar包:
右键我们的项目—>Build Path—>Add Library—>JUnit—Finish。
添加Hibernate所需的jar包以及Mysql的jdbc驱动jar包
创建并完善相关配置文件
创建配置hibernate.cfg.xml文件
右键src目录,New—>Other选择Hibernate文件中的选项如下:
下一步创建完成(默认选项)。
编写hibernate.cfg.xml文件如下:
<?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.driver_class">com.mysql.jdbc.Driver</property> <property name="connection.url">jdbc:mysql:///test</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <!-- SQL 方言 --> <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property> <!-- 在控制台输出sql语句 --> <property name="show_sql">true</property> <property name="format_sql">true</property> <!-- 生成策略 常用的create update --> <property name="hbm2ddl.auto">create</property> <!-- Enable Hibernate's automatic session context management --> <property name="current_session_context_class">thread</property> <!-- 注册实体映射文件 --> <mapping resource="com/demo/bean/Students.hbm.xml"/> </session-factory></hibernate-configuration>
创建持久化类
创建学生类,代码如下:
package com.demo.bean;import java.util.Date;/** * 学生类 * * @author JackHu * */public class Students { private int sid; private String sname; private String gender; private Date birthday; private String address; public Students() { super(); // TODO Auto-generated constructor stub } public Students(int sid, String sname, String gender, Date birthday, String address) { super(); this.sid = sid; this.sname = sname; this.gender = gender; this.birthday = birthday; this.address = address; } public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; }}
创建对象-关系映射文件
在我们的实体类包下点击右键—>New—>Other,如下:
点击Next,创建完成。
生成对象关系映射配置文档:
<?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-8-25 17:25:25 by Hibernate Tools 3.5.0.Final --><hibernate-mapping> <class name="com.demo.bean.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>
创建数据库(test)
在我们的Mysql中创建test数据库:
使用Junit进行单元测试
Junit常用的注解标签:
- @Test:测试方法
- @Before:初始化
- @After:释放走远
新建测试类StudentsTest.java:
package com.demo.test;import java.util.Date;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;import org.hibernate.boot.MetadataSources;import org.hibernate.boot.registry.StandardServiceRegistry;import org.hibernate.boot.registry.StandardServiceRegistryBuilder;import org.junit.After;import org.junit.Before;import org.junit.Test;import com.demo.bean.Students;/** * 学生测试类 * @author JackHu * */public class StudentsTest { //创建类型安全的准服务注册类 private StandardServiceRegistry registry; //创建会话工厂对象 private SessionFactory sessionFactory; //创建会话 private Session session; //事物 private Transaction tx; @Before public void init() { registry=new StandardServiceRegistryBuilder() .configure() .build(); try { sessionFactory = new MetadataSources(registry) .buildMetadata() .buildSessionFactory(); } catch (Exception e) { StandardServiceRegistryBuilder.destroy(registry); } session=sessionFactory.openSession(); //开启事物 tx=session.beginTransaction(); } @After public void destory() { //提交事物 tx.commit(); //释放资源 session.close(); sessionFactory.close(); } @Test public void testSaveStudent() { Students s=new Students(1,"hjw","男",new Date(),"北京"); session.save(s); }}
执行testSaveStudent()方法,添加数据成功:
打开我们的数据库,查看,如下图:
总结
Hibernate帮我们自动创建表结构,并且把我们的学生对象保存的我们的数据库中。
欢迎小伙伴们学习!!!
阅读全文
0 0
- Hibernate入门——基础详解
- hibernate入门——基础
- Hibernate框架基础——Hibernate入门
- Struts2入门——基础详解
- Spring入门——基础详解
- MySQL基础入门—SELECT语句详解
- 【02】框架学习—Hibernate第一个入门案例详解
- Hibernate入门 - 基础配置
- Hibernate入门 - 基础配置
- Hibernate入门 - 基础配置
- Hibernate入门 - 基础配置
- Hibernate入门 - 基础配置
- Hibernate入门 - 基础配置
- Hibernate入门 - 基础配置
- Hibernate入门 - 基础配置
- 一、Hibernate基础入门
- Hibernate入门基础
- Hibernate入门 - 基础配置
- FrameLayout(帧布局)
- HotPatch-EMC
- [C#] 检索数据库并用DataGridView 控件显示数据.
- 二叉树的遍历
- C#开发学习笔记:GridView设置满足条件的单元格变色
- Hibernate入门——基础详解
- 面试题:字符串倒序输出
- 【LeetCode】563. Binary Tree Tilt
- jQuery源码学习笔记(06)
- web缓存
- mybatis模糊查询
- 代理技术简介
- 如何解决8080端口被占用
- Jquery实现的省市区三级联动