测试用数据库表设计和SessionFactory
2024-10-19 13:38:42
本篇为struts-2.5.2和spring-3.2.0以及hibernate-4.2.21的整合开篇。
一、测试的数据库表。
用户、角色和权限关系表。数据库是Mysql5.6。为了考虑到一些特殊数据类型处理,用户表(类)中加入日期(birthday-Date)和枚举(gender-Gender)类型。
用户、权限和角色的数据库设计,使用用户、角色和权限,多表查询的设计(关系如上图)。如果多对多的关系应该可以设计如下。(用户和角色)
1、User.hbm.xml
User.java中有一个Set<Role> roles
2、Role.hbm.xml
Role.java中有一个Set<User> users
3、生成的表
会生成中间表(user_role),有两个键user_id,role_id,且为联合主键。
二、SessionFactoryUtil(工具类)
要使用Session来操作数据库,需要通过SessionFactory来建立了。
hibernate 3 通过buildSessionFactory来创建的,但在4已经不推荐了。
大致如下:
Configuration configuration = new Configuration();
configuration.configure(configFile);
sessionFactory = configuration.buildSessionFactory();
hibernate 4 推荐用到ServiceRegistry来建立。
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory(); private static SessionFactory buildSessionFactory() {
try {
// Create the SessionFactory from hibernate.cfg.xml
Configuration configuration = new Configuration().configure(); //要注意这里要再configure(),即默认配置的cfg.xml。也可以指定
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry(); return configuration.buildSessionFactory(serviceRegistry); } catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
} public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
最新文章
- android——数据库版本升/降级问题
- ssl_error_rx_record_too_long
- JS 中 this上下文对象的使用方式
- 开源的Android开发框架-------PowerFramework使用心得(二)图片异步加载ImageTask
- 【HDOJ】1244 Max Sum Plus Plus Plus
- ANDROID对文件的操作
- #DP# ----- OpenJudge最大子矩阵
- JS完成页面跳转并传参的方法|附加:循环遍历对象
- js华氏度转为摄氏度
- OPENSHIFT V3 免费部署 Java-Web
- (转载)SVM-基础(二)
- 面向对象(this的问题一)
- 还在用NuGet吗?大哥FuGet了解一下
- redis -hash(哈希.对象)
- 用深信服AC控制方位话机注册链路的开、关
- vue项目使用echarts按需引入实现地图动态显示效果时,报错:TypeError: Cannot read property &#39;dataToPoint&#39; of undefined
- laravel中db获取某个数据的具体字段值:
- 团队C++作业1
- brendangregg
- Java设计模式—状态模式