1. 什么是hibernate
ORM框架/持久层框架
object reference mapping
通过管理对象来改变数据库中的数据
通过管理对象来操作数据库
优势:跨数据库的无缝移植
注1:Object Relational Mapping
2. 如何在项目中添加hibernate支持(手动添加)
2.1 添加hibernate相关依赖
2.2 在resource目录下添加hibernate.cfg.xml(核心配置文件)
2.2.1 添加DTD支持
2.2.2 添加Hibernate的配置
2.2.2.1 数据库相关(connection.username|connection.password|connection.url|connection.driver_class|dialect)
2.2.2.2 调试相关(show_sql|format_sql)
2.3 在开发阶段再创建实体类和实体映射文件(*.hbm.xml)
实体必须实现Serializable接口
<!--
table:实体类所对应的表
name:实体类的全类名
-->
<class table="t_hibernate_user" name="com.zking.one.entity.User">
<!--
name:实体类的属性
type:实体类的属性类型
column:数据库表的主键列
-->
<id name="id" type="java.lang.Integer" column="id">
<generator class="increment"></generator>
</id>
<!--
id标签打头,代表配置的是数据库表主键与实体类的关系,其他的property配置的是数据库表的普通列
-->
<property name="userName" type="java.lang.String" column="user_name"></property>
<property name="userPwd" type="java.lang.String" column="user_pwd"></property>
<property name="realName" type="java.lang.String" column="real_name"></property>
<property name="sex" type="java.lang.String" column="sex"></property>
</class>
小结:hibernate.cfg.xml(1)/*.hbm.xml(N)
实体映射文件一定要加到核心配置文件
<!-- hiberna需要管理的数据库表对应的实体类映射 -->
<mapping resource="com/zking/one/entity/User.hbm.xml"/>
3. 如何使用hibernate完成CRUD操作
CRUD操作步骤
1 读取配置
2 创建SessionFactory
3 打开Session
4 开启事务
5.具体的数据库操作
6 提交事务/回滚事务
7 关闭Session
Configuration cfg = new Configuration().configure("hibernate.cfg.xml");
SessionFactory sessionFactory = cfg.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
User user = new User();
user.setUserName("小小");
user.setRealName("小空");
user.setUserPwd("123");
user.setSex("女");
user.setRemark("cccc");
session.save(user);
transaction.commit();
session.close();
4注意事项
1 hibernate默认使用的是手动事务,因此必须显示的开启和提交事务
2 删除操作时,必须先查再删
5. OID属性
与数据库主键列映射的属性
Hibernate3.3.2版本中getSession().connection()已被弃用,hibernate4中官方推荐使用Session doWork()方法进行jdbc操作
Unsupported major.minor version 52.0:当前的hibernate不支持jdk1.8