Hibernate—(搭建、简单使用)
一、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();