Hibernate 实体关联关系映射----总结
2017-02-08 17:36
417 查看
Hibernate关联关系映射目录
│
├─单向关联
│ ├─
一对一外键单向关联
│ ├─
一对一主键单向关联
│ ├─
一对一连接表单向关联
│ ├─
一对多外键单向关联
│ ├─
一对多连接表单向关联
│ ├─
多对一外键单向关联
│ ├─
多对一连接表单向关联
│ └─
多对多单向关联
└─双向关联
├─
一对一外键双向关联
├─
一对一主键双向关联
├─
一对一连接表双向关联
├─
一对多外键双向关联
├─
一对多连接表双向关联
└─
多对多双向关联
系列实例中所用的Hibernate配置文件如下:
<?xml version='1.0' encoding='gb2312'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!--指定连接数据库驱动-->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!--指定连接数据库的url,hibernate连接的数据库名-->
<property name="connection.url">jdbc:mysql://localhost:3306/hbstudy</property>
<!--指定连接数据库的用户名-->
<property name="connection.username">root</property>
<!--指定连接数据库的用户密码-->
<property name="connection.password">leizhimin</property>
<!--指定连接池的大小-->
<property name="connection.pool_size">5</property>
<!--指定数据库的方言-->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!--根据需要自动创建数据库,测试环境用-->
<property name="hbm2ddl.auto">create</property>
<!--在控制台显示执行的SQL语句-->
<property name="show_sql">true</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!--映射文件列表-->
<!--单向关联-->
<mapping resource="com/lavasoft/dx/_n_1_fk/Addressn1fk.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_n_1_fk/Personn1fk.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_n_1_tab/Addressn1tab.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_n_1_tab/Personn1tab.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_1_fk/Address11fk.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_1_fk/Person11fk.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_1_tab/Address11tab.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_1_tab/Person11tab.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_1_pk/Address11pk.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_1_pk/Person11pk.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_n_fk/Address1nfk.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_n_fk/Person1nfk.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_n_tab/Address1ntab.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_n_tab/Person1ntab.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_n_n/Addressnn.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_n_n/Personnn.hbm.xml"/>
<!--双向关联-->
<mapping resource="com/lavasoft/sx/_1_n_fk/Address1nfk_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_1_n_fk/Person1nfk_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_1_n_tab/Address1ntab_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_1_n_tab/Person1ntab_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_n_n/Addressnn_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_n_n/Personnn_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_1_1_fk/Address11fk_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_1_1_fk/Person11fk_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_1_1_pk/Address11pk_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_1_1_pk/Person11pk_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_1_1_tab/Address11tab_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_1_1_tab/Person11tab_sx.hbm.xml"/>
</session-factory>
</hibernate-configuration>
系列实例中所用到Session工厂是:
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
// Create the SessionFactory from hibernate.cfg.xml
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("初始化SessionFactory失败!" + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static final ThreadLocal session = new ThreadLocal();
public static Session getCurrentSession() throws HibernateException {
Session s = (Session) session.get();
//当原Session为空或已关闭时,打开一个新的Session
if (s == null || !s.isOpen()) {
s = sessionFactory.openSession();
session.set(s);
}
return s;
}
public static void closeSession() throws HibernateException {
Session s = (Session) session.get();
session.set(null);
if (s != null) {
s.close();
}
}
}
│
├─单向关联
│ ├─
一对一外键单向关联
│ ├─
一对一主键单向关联
│ ├─
一对一连接表单向关联
│ ├─
一对多外键单向关联
│ ├─
一对多连接表单向关联
│ ├─
多对一外键单向关联
│ ├─
多对一连接表单向关联
│ └─
多对多单向关联
└─双向关联
├─
一对一外键双向关联
├─
一对一主键双向关联
├─
一对一连接表双向关联
├─
一对多外键双向关联
├─
一对多连接表双向关联
└─
多对多双向关联
系列实例中所用的Hibernate配置文件如下:
<?xml version='1.0' encoding='gb2312'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!--指定连接数据库驱动-->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!--指定连接数据库的url,hibernate连接的数据库名-->
<property name="connection.url">jdbc:mysql://localhost:3306/hbstudy</property>
<!--指定连接数据库的用户名-->
<property name="connection.username">root</property>
<!--指定连接数据库的用户密码-->
<property name="connection.password">leizhimin</property>
<!--指定连接池的大小-->
<property name="connection.pool_size">5</property>
<!--指定数据库的方言-->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!--根据需要自动创建数据库,测试环境用-->
<property name="hbm2ddl.auto">create</property>
<!--在控制台显示执行的SQL语句-->
<property name="show_sql">true</property>
<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>
<!--映射文件列表-->
<!--单向关联-->
<mapping resource="com/lavasoft/dx/_n_1_fk/Addressn1fk.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_n_1_fk/Personn1fk.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_n_1_tab/Addressn1tab.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_n_1_tab/Personn1tab.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_1_fk/Address11fk.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_1_fk/Person11fk.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_1_tab/Address11tab.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_1_tab/Person11tab.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_1_pk/Address11pk.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_1_pk/Person11pk.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_n_fk/Address1nfk.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_n_fk/Person1nfk.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_n_tab/Address1ntab.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_1_n_tab/Person1ntab.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_n_n/Addressnn.hbm.xml"/>
<mapping resource="com/lavasoft/dx/_n_n/Personnn.hbm.xml"/>
<!--双向关联-->
<mapping resource="com/lavasoft/sx/_1_n_fk/Address1nfk_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_1_n_fk/Person1nfk_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_1_n_tab/Address1ntab_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_1_n_tab/Person1ntab_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_n_n/Addressnn_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_n_n/Personnn_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_1_1_fk/Address11fk_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_1_1_fk/Person11fk_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_1_1_pk/Address11pk_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_1_1_pk/Person11pk_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_1_1_tab/Address11tab_sx.hbm.xml"/>
<mapping resource="com/lavasoft/sx/_1_1_tab/Person11tab_sx.hbm.xml"/>
</session-factory>
</hibernate-configuration>
系列实例中所用到Session工厂是:
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
// Create the SessionFactory from hibernate.cfg.xml
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("初始化SessionFactory失败!" + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static final ThreadLocal session = new ThreadLocal();
public static Session getCurrentSession() throws HibernateException {
Session s = (Session) session.get();
//当原Session为空或已关闭时,打开一个新的Session
if (s == null || !s.isOpen()) {
s = sessionFactory.openSession();
session.set(s);
}
return s;
}
public static void closeSession() throws HibernateException {
Session s = (Session) session.get();
session.set(null);
if (s != null) {
s.close();
}
}
}
相关文章推荐
- Hibernate第三章知识点总结——第三章--实体关联关系映射
- Hibernate 实体关联关系映射----总结
- Hibernate 实体关联关系映射----总结
- Hibernate 实体关联关系映射----总结
- Hibernate 实体关联关系映射----总结
- Hibernate 实体关联关系映射----总结
- Hibernate 实体关联关系映射----总结
- Hibernate 实体关联关系映射----总结
- Hibernate 实体关联关系映射----总结
- SSH——Hibernate实体关联映射总结(一)
- 映射实体Bean的关联关系 -Hibernate Annotations
- hibernate映射总结详解: 映射多对一单向关联关系
- Hibernate 映射实体关联关系(一)
- 【Hibernate — 映射实体关联关系】
- 流程总结:Hibernate实体映射
- Hibernate 3.2 学习笔记 映射实体关联关系
- Hibernate 实体关联关系映射
- Hibernate 实体关联关系映射(转载)
- hibernate映射总结详解: 按主键映射一对一关联关系
- Hibernate 映射实体关联关系(二)