一、Hibernate的简介
1.什么是Hibernate?
Hibernate是持久化(和数据库有关的操作)框架,也是ROM框架(Object/Relation/Mapping 对象关系映射),Hibernate核心内容是ORM(关系对象模型)。可以将对象自动的生成数据库中的信息,使得开发更加的面向对象。这样作为程序员就可以使用面向对象的思想来操作数据库,而不用关心繁琐的JDBC。所以,Hibernate处于三层架构中的D层(持久层)。
二、为什么Hibernate?
1、Hibernate可以使用在Java的任何项目中,不一定非要使用在Java web项目中。
2、与JDBC相比较,代码更简介,开发效率更高。
3、与MyBatis想比较而言; Hibernate是成熟稳定的优秀框架,全封装式,运行速度慢,开发效率高。MyBatis没有Hibernate
那么稳定,处于半封装式,运行速度快,但是开发效率慢。
三、在哪里用Hibernate?
任何和数据库操作有关的都可以使用Hibernate
二、在Eclipse搭建Hibernate框架
1、安装Hibernate插件(推荐使用在线安装插件的方式(原因:快,不容易出错))
第一步:去市场下载
第二步:搜索hibernate
第三步: 寻找Jboos 下载安装
第四步:测试(ctrl+n 输入hibernate关键字,如果出现以下图片中的信息就成功了,默认没有插件是没有的。)
二、使用maven创建项目并导入hibernate核心jar包
①pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Hibernate01</groupId>
<artifactId>Hibernate01</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>Hibernate01 Maven Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<argLine>-Dfile.encoding=UTF-8</argLine>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- servelet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- 加入hibernate依赖 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.10.Final</version>
</dependency>
<!-- Mysql依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.43</version>
</dependency>
</dependencies>
<build>
<finalName>Hibernate01</finalName>
</build>
</project>
②数据库
③核心配置
④实体类:
package com.sun.entity;
public class Student {
private int sid;
private String sname;
private int sage;
public Student() {
}
public Student(int sid, String sname, int sage) {
super();
this.sid = sid;
this.sname = sname;
this.sage = sage;
}
public Student(int sid) {
super();
this.sid = sid;
}
public Student(String sname, int sage) {
super();
this.sname = sname;
this.sage = sage;
}
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 int getSage() {
return sage;
}
public void setSage(int sage) {
this.sage = sage;
}
}
⑤实体类映射文件(Student.hbm.xml) 导入插件后可以在点击一下包。然后Ctrl+n 输入hibernate 选择第四个映射文件,选择你要映射的实体类,然后会自动将你映射好。没有插件的必须自己手写,或者copy。
<?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-21 20:09:40 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
<class name="com.sun.entity.Student" table="STUDENT">
<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="sage" type="int">
<column name="SAGE" />
</property>
</class>
</hibernate-mapping>
⑥核心配置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.username">root</property>
<property name="connection.password">tiger</property>
<property name="connection.url">jdbc:mysql://localhost:3306/mysql</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 显示SQL语句 -->
<!-- <property name="show_sql">true</property> -->
<!--配置映射信息-->
<mapping resource="com/sun/entity/Student.hbm.xml"/>
</session-factory>
</hibernate-configuration>
三、测试Hibernate的增删改查 使用hibernate八步骤
① 加载Hibernate配置文件
Configuration configuration=new Configuration().configure();
②创建SessionFactory
SessionFactory sessionFactory = configuration.buildSessionFactory();
③创建Session
Session session = sessionFactory.openSession();
④开启事务
Transaction transaction = session.beginTransaction();
⑤执行数据库操作
增
Student student=new Student("雷一鸟", 18);
session.save(student);
删
Student stu=new Student(1); //id=1
session.delete(stu);
改
Student student=new Student(1,"雷一鸟", 18);
session.update(stu);
查(查询全部)
List<Student> list=session.createCriteria(Student.class).list();
//遍历
for (Student student : list) {
System.out.println(student.getSid()+" "+student.getSname()+" "+student.getSage());
}
⑥提交事务
transaction.commit();
⑦关闭Session
session.close();
⑧关闭SessionFactory
sessionFactory.close();