搭建 Hibernate 环境
step 1 : 导入hibernate的jar包
Step 2 : 创建实体类(要求实体类必须有一个属性唯一值、表也要有字段作为唯一值)
Step 3 : 配置实体类和数据库表的映射关系,也就是创建映射配置文件
1) 创建xml格式的配置文件,一般命名为xxx.hbm.xml,xxx为实体类名称
2)在配置文件引入xml约束,在hibernate引如的约束为dtd约束
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 = "cn.hauyu.entity.User" table = "t_user">
<id name="id" column="id">
<generator class="native"></generator>
</id>
<property name="name" column="name"></property>
<property name="password" column="password"></property>
<property name="age" column="age"></property>
</class>
</hibernate-mapping>
Step 4 : 配置hibernate的核心配置文件(和step 3 基本步骤是相同的)
1) 创建核心配置文件,核心配置文件的名称和位置固定,位置:src下面;名称:hibernate.cfg.xml
2) 引入约束
3)配置hibernate信息
(1)配置数据库信息(目的:加载数据库)(必须)
(2)配置hibernate信息(目的:初始化hibernate的参数,决定何种功能开启)(不必须)
(3)引入映射配置文件(目的:因为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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///hibernate_test01</property><!-- 注意数据库需要自己创建 -->
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">931210</property><!-- 注意密码为自己数据库的密码 -->
<property name="hibernate.show_sql">true</property>
<!-- 第二部分:配置Hibernate附加功能是否开启 -->
<property name="hibernate.format_sql">true</property><!-- 输出底层sql语句格式 -->
<property name="hibernate.hbm2ddl.auto">update</property><!-- 自动创建表 ,如果没有这个需要自己创建表-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!-- 允许方言 -->
<!-- 第三部分: 把映射文件放到核心配置文件中 必须的-->
<mapping resource="cn/huayu/entity/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
+++++++++++++++++++++++++++++++hibernate的环境基本熵就搭建完成了,下面就是hibernate的操作了++++++++++++++++++++++++++++++++++++++++++
示例:实现添加操作:
Step 1:加载hibernate核心配置文件
Step 2: 创建SessionFactory对象
Step 3: 使用SessionFactory创建session对象
Step 4: 开启事务
Step 5 :写具体逻辑crud操作
Step 6: 提交事务
Step 7 : 关闭资源
(事物:是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行)
代码部分:
public void testAdd(){
Configuration config = new Configuration();//Step 1
config.configure();
SessionFactory sessionFactory = cfg.builSessionFactory();//Step.2,注意:SessionFactory的创建耗费时间,一般一个项目只需要一个
Session session = sessionFactory.openSession();//Step 3
Transaction tx = session.beginTransaction();//Step 4
User user = new User();//Step5
user.setUsername("小明");
user.setPassword("123");
user.setAge("20");
session.save(user);
tx.commit();//Step 6
session.close();//Step 7
sessionFactory.close();
}
由于step 2 代码耗时,因此建立一个Utils类,优化代码如下:(注意:文档中的代码不是全部代码)
public class HibernateUtils{ private static Configuration config = null; private static SessionFactory sessionFactory= null; static{
config = new Configuration();
config.configure();
sessionFactory = config.buildSessionFactory();
}
public staic SessionFactory getSessionFactory(){
return sessionFactory;
}
}
Public class TestDemo{
public void testAdd(){
SessionFactory sessionFactroy = HibernateUtils.getSessionFactory();//Step 1、2
Session session = sessionFactory.openSession();//Step 3
Transaction tx = session.beginTransaction();//Step 4
User user = new User();//Step5
user.setUsername("小明");
user.setPassword("123");
user.setAge("20");
session.save(user);
tx.commit();//Step 6
session.close();//Step 7
sessionFactory.close();
}
完整程序地址:https://github.com/HuayuJia/Learnhibernate}