hibernate的简单介绍:
是一个底层封装了JDBC的持久层框架,也是ORM框架。
ORM框架:Object Relational Mapping是指对象,关系,映射。
对象是指Java中的对象;
关系是关系型数据库;
映射是两个映射:
1.Java对象和数据库中的表进行映射
2.Java对象的属性和数据库表的列进行映射。
hibernate开发流程
第一步:导入jar包(需要导入的有hibernate必须jar包和MySQL数据的驱动jar包)
官网下载hibernate-release-5.2.10.Final.zip
解压后打开
其中documentation文件夹里面是一些说明文档,project文件夹为一些官方示例项目的代码以及配置文件,lib文件夹为可用jar包。
打开lib文件夹
其中required文件夹里的jar包为运行hibernate框架的必须jar包,其余文件夹的jar包为根据需求可选,我们只导入required中的就足够了。
打开eclipse创建一个Java项目,新建一个lib文件夹,将需要导入的jar包复制进去,全选之后点击右键,选择build path,再点击add to build path。
成功导入jar包。
第二步:创建核心配置文件
1.配置文件命名:hibernate.cfg.xml,此配置文件为hibernate框架的执行入口。
2.配置文件位置:src根目录下
3.配置文件写法:可在刚才导入jar包时下载的hibernate-release-5.2.10.Final.zip文件中找到模板,具体位置在project----->etc----->hibernate.cfg.xml
将他复制到指定位置,并将<hibernate-configuration>下所有内容删除,然后自己重新配置。
配置<session-factory>,需要配置三大信息:数据库链接信息,全局参数,映射关系。
配置主要信息可参考project----->etc----->hibernate.properties文件中的Mysql信息。
前三行为示例可选的方言类型
后面4行分别为配置MYSQL的驱动类,URL,用户名,密码
全局参数:为配置show_sql为true,则显示系统执行的sql语句,默认为false;配置format_sql为true,则显示的sql为经过格式化的sql语句,看起来更加简明清晰,默认为false。
映射关系:为指定映射文件的地址。(再完成映射文件的配置后,完善此过程)
核心配置文件内容:
<!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下需要配置三大信息:
1.数据库连接信息
2.全局参数
3.mapping映射关系
-->
<session-factory>
<!-- 数据库连接信息 -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/java</property>
<property name="hibernate.connection.username">wby</property>
<property name="hibernate.connection.password">wby</property>
<!-- 全局参数 -->
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="current_session_context_class">thread</property>
<!-- mapping映射关系,此处为指定映射文件的存放地址 -->
<mapping resource="com/hibernate/entity/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
注意:<mapping>要写在最后一个<property>后面。
第三步:创建映射文件
1.映射文件命名习惯:实体类名+hbm.xml
2.位置习惯:entity包下
3.写法规范:还是可在下载的官方文件夹里找到模板
映射文件内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!-- 配置实体类和数据库中的表之间的映射关系 -->
<class name="com.hibernate.entity.User" table="t_user">
<id name="id" column="id" type="java.lang.Integer">
<!-- 指定主键生成策略的方式为和MySQL一致 -->
<generator class="native"></generator>
</id>
<property name="name" column="name" type="java.lang.String"></property>
<property name="age" column="age" type="java.lang.Integer"></property>
<property name="phone" column="phone" type="java.lang.String"></property>
</class>
</hibernate-mapping>
第四步:测试
package com.hibernate.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.hibernate.entity.User;
public class Test {
public static void main(String[] args) {
//1.加载配置文件
//Configuration是用于加载配置信息的工具类,创建类对象,
//调用configure()方法,返回一个加载过核心配置文件的cfg对象。
//configure()此方法在默认位置,找默认文件 src/hibernate.cfg.xml
//若核心配置文件存放位置不是默认地址,则需调用configure(String resource)有参方法,指定位置。
Configuration cfg = new Configuration().configure();
//2.创建session-factory
SessionFactory sf = cfg.buildSessionFactory();
//3.创建session,在此使用getCurrentSession()方法创建session对象
Session session = sf.getCurrentSession();
//4.getCurrentSession()方式获取的session,增删改查操作都需要事务控制
Transaction tx = session.beginTransaction();//开启事务
//5.测试增删改查
/*User u1 = new User(null,"zhangsan",18,"123123");
User u2 = new User(null,"lisi",19,"222222");
User u3 = new User(null,"wangwu",20,"333333");*/
/*
session.save(u1);
session.save(u2);
session.save(u3);*/
/*User user1 = new User(2,"lisi",19,"444444");
session.update(user1);*/
/*User user2 = session.get(User.class, 3);
session.delete(user2);*/
//6.提交事物
tx.commit();
System.out.println("操作完成!!");
}
}