什么是hibernatet
**1.ORM框架/持久层框架
object reference mapping
通过管理对象来改变数据库中的数据
通过管理对象来操作数据库
2.Hibernate是一款ORM框架,Object Relation Mapping 对象关系映射。
3.可以将DB映射成Object,这样程序只要对Object对象进行操作就能完成对数据库的操作。
**
使用hibernate优势 :跨数据库的无缝移植
1.如何在项目中添加hibernate支持(手动添加)
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 1. 数据库相关 -->
<property name="connection.username">ou</property>
<property name="connection.password">123</property>
<property name="connection.url">jdbc:mysql://localhost:3306/db_book?useUnicode=true&characterEncoding=UTF-8</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property> -->
<!-- 配置本地事务(No CurrentSessionContext configured!) -->
<property name="hibernate.current_session_context_class">thread</property>
<!-- 2. 调试相关 -->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!-- 3. 添加实体映射文件 -->
<mapping resource="com/zking/one/entity/User.hbm.xml"/>
<!-- 讲解主键生成策略 -->
<mapping resource="com/zking/two/entity/Student.hbm.xml"/>
<mapping resource="com/zking/two/entity/Woker.hbm.xml"/>
</session-factory>
</hibernate-configuration>
2.配置实体映射文件
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-mapping>
<!--
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-mapping>
解析xml进行数据增加
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.zking.one.entity.User;
public class Demo1 {
/**
* 1.读取hibernate.cfg.xml文件
* 2.通过xml建模得到sessionfactory工厂
* 3.获取数据库操作的当前会话(session)
* 4.开启事务
* 5.具体的数据库操作
* 6.提交事务
* 7.将会话(session)关闭
*/
/*1.读取hibernate.cfg.xml文件*/
Configuration cfg=new Configuration().configure("hibernate.cfg.xml");
/*通过xml建模得到sessionfactory工厂*/
SessionFactory sessionFactory = cfg.buildSessionFactory();
/*获取数据库操作的当前会话(session)*/
Session ssession = sessionFactory.openSession();
/*开启事务*/
Transaction transaction = ssession.beginTransaction();
//具体的数据库操作
User user=new User();
user.setUserName("好好");
user.setUserPwd("123");
user.setRealName("简介");
user.setSex("男");
user.setRemark("xxxx");
ssession.save(user);
/*提交事务*/
transaction.commit();
/*将会话(session)关闭*/
ssession.close();
}
}