一、简介
Hiberate是对象关系映射(ORM)数据库的一种框架,实现了POJO 和数据库表之间的映射,以及SQL 的自动生成和执行。业务访问的是对象而不是数据库中的表,无需关注数据库实现。其缺点是不够灵活,对关系复杂的对象在映射过程中比较难处理。
二、简单使用
使用时主要配置hibernate.cfg.xml文件和实体映射关系文件。
1、hiberate.cfg.xml
<!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 name="foo">
<property name="connection.url">jdbc:mysql://10.10.10.129/itcast</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<!--显示生成的SQL语句 -->
<property name="show_sql">true</property>
<!-- 导入映射文件 -->
<mapping resource="cn/itcast/a_helloword/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
2、User.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="cn.itcast.a_helloword" >
<class name="User" table="t_user">
<id name="id" type="long">
<generator class="increment"/>
</id>
<property name="name" type="string"/>
</class>
</hibernate-mapping>
3、操作
private static SessionFactory sessionFactory;
static {
Configuration cfg=new Configuration();
cfg.configure("hibernate.cfg.xml");
sessionFactory=cfg.buildSessionFactory();
}
@Test
public void testsave()throws Exception{
User user=new User("tianong");
Session session=sessionFactory.openSession();
Transaction transaction=session.beginTransaction();
session.save(user);
transaction.commit();
session.close();
}
三、映射关系
实体映射关系主要包括一对多,一对一,多对一,多对多四种方式。
四、总结
Hibernate功能强大,数据库无关性好,O/R映射能力强,持久层代码简单,需要写的代码很少,开发速度很快。但对于大型且复杂项目,不够灵活且映射关系复杂。