Hibernate
orm思想(Object Relational Mapping)
javaBean == 实体类
使用orm思想进行crud操作:对象关系映射
使用配置文件完成
- 实体类和数据库表建立一一对应关系
- 实体类属性和表字段一一对应
操作实体类属性,而不是数据库
环境搭建
1. jar包导入
2. 创建实体类
实体类包含唯一属性
hibernate自动建表
3. 配置实体类和数据库表的映射关系
(1) 映射配置文件
映射配置文件一般在实体类对应的包里面创建,命名规则为:实体类名称.hbm.xml
其中包含三个部分:
- 引入xml约束(dtd, schema...)
- 位于hibernate-core-5.2.11.Final.jar的org.hibernate下hibernate-mapping-3.0.dtd
- 配置约束关系
<?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.eto.entity.User" table="t_user">
<!--实体类中的唯一一个属性值,table中的唯一值的字段-->
<id name="uid" column="uid">
<!--数据库表id增长策略,native:表的id值是主键且自增长-->
<generator class="native"></generator>
</id>
<!--实体类中的其他属性-->
<property name="username" column="username"></property>
<property name="password" column="password"></property>
<property name="address" column="address"></property>
</class>
</hibernate-mapping>
(2) hibernate核心配置文件
必须建立在src下,名称为: hibernate.cfg.xml,包含以下部分:
- 引入xml约束
位于hibernate-core-5.2.11.Final.jar的org.hibernate下hibernate-configuration-3.0.dtd - 配置数据库信息
- hibernate信息,映射文件
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>
<!--/// 表示localhost-->
<property name="hibernate.connection.url">jdbc:mysql:///user</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<!--hibernate信息-->
<!--输出底层的SQL语句-->
<property name="hibernate.show_sql">true</property>
<!--输出底层的SQL语句格式化-->
<property name="hibernate.format_sql">true</property>
<!--表示hibernate会帮忙创建表
update: 如果有表,更新,如果无表,创建-->
<property name="hibernate.hbm2ddl.auto">update</property>
<!--配置数据库方言,识别特有的语句:
mysql分页: limit
Oracle分页:rownum
-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!--映射文件放到配置文件中-->
<mapping resource="com/eto/entity/User.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>
实现添加操作
- 加载hibernate配置文件
- 创建sessionFactory对象
- 使用sessionFactory创建session对象
- 开启事务
- 写具体逻辑的crud操作
- 提交事务
- 关闭资源
网友评论