Hibernate配置
1.创建实体类
**
对于表 可以不需手动创建,框架会自动创建,当然也可以手动
**
2.配置实体类和数据库的一一对应关系
(1)创建xml配置文件
-映射配置文件名称和位置没有固定要求-名称一般为 **实体类名称.hbm.xml** 不做固定要求
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!-- 1 配置类和表对应
class标签
name属性:实体类全路径 com.oop.User
table: 数据库表名
-->
<class name="com.oop.User" table="t_user">
<!--2 配置实体类id和表中id对应-->
<id name="uId" column="uid">
<!--设置数据库表id的增长策略-->
<!--native:生成表id 自增-->
<generator class="native"></generator>
</id>
<!--3 对应其他字段-->
<property name="uName"></property>
<property name="passWord"></property>
</class>
</hibernate-mapping>
3.Hibernate核心配置文件
(1)核心配置文件格式xml,其文件名称和位置是固定的
-位置:必须在src下面-名称:必须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.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/exam?characterEncoding=UTF-8</property>
<property name="connection.characterEncoding">utf-8</property>
<property name="connection.username">root</property>
<property name="connection.password">1234</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>
<!--配置数据库方言-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!--第三部分:把映射文件放到核心配置文件中 **必选-->
<mapping resource="com/oop/User.hbm.xml" />
</session-factory>
</hibernate-configuration>
4.实现添加操作
(1)加载hibernate核心配置文件
Configuration cfg = new Configuration() ;
cfg.configure();
(2)创建SessionFactory对象
SessionFactory sessionFactory = cfg.buildSessionFactory();
(3)使用SessionFactory创建session对象
Session session = sessionFactory.openSession();
(4)开启事务
Transaction tx = session.beginTransaction();
(5)crud操作
User user = new User();
user.setuName("王老吉");
user.setPassWord("红罐");
session.save(user);
(6)提交事务
tx.commit();
(7)关闭资源
session.close();
sessionFactory.close();
// 第一步 加载hibernate核心配置文件
// 到src下面找到名称是hibernate.cfg.xml ,封装对象
Configuration cfg = new Configuration() ;
cfg.configure();
// 第二步 创建SessionFactory对象
// 读取hibernate核心配置文件内容,创建sessionFactorym
// 在其中,根据映射关系在数据库中创建表
SessionFactory sessionFactory = cfg.buildSessionFactory();
// 第三步 使用SessionFactory创建session对象
Session session = sessionFactory.openSession();
// 第四步开启事务
Transaction tx = session.beginTransaction();
// 第五步 crud操作
User user = new User();
user.setuName("王老吉");
user.setPassWord("红罐");
session.save(user);
// 第六步 提交事务
tx.commit();
// 第七步 关闭连接
session.close();
sessionFactory.close();
同时1-3步可整合为
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
备注*(映射配置文件)
(1)映射配置文件名称和位置没有固定要求
(2) id和property标签中,column属性可以省略
不写值和name一样
备注*(核心配置文件)
(1)核心文件名称和位置固定的
位置:src下
名称:hibernate.cfg.xml