hibernate一个实体类映射多张表
来源:互联网 发布:opencv3.0 sift算法 编辑:程序博客网 时间:2024/04/29 23:58
最近一个项目中需要有自动生成表的功能进行数据转储,因为ORM用的是hibernate,因为我决定用hibernate实现,不仅操作方便而且易于查询。现将代码贴到此供大家学习交流。
后台的实体类映射基本都是基于注解的,但是动态生成的话还是应该选择配置文件,因为配置文件灵活易操作。
1、首先定义一个模板文件,文本的就行,配置通用属性。
<?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 package="cn.sevenlevel.demo.User"><!--注意entity-name,如果没有此属性的话会报重复映射异常--><class name="HistoryAuditInfo" table=":tableName" entity-name=":tableName"><id name="id" column="ID" length="32"><generator class="uuid.hex" /></id><property name="name" column="C_001" /><property name="age" column="C_002" /></class></hibernate-mapping>
2、生成具体的hbm.xml配置文件
然后就是生成配置文件了,比如我要生成一张叫d_001的表,可以使用FileUtils.read()方法读取到内容后然后replaceAll(":tableName","d_001")后write到任意位置。
3、生成表和操作数据
这一步需要借助Hibernate的Configuration类完成,如果集成了Spring了的话可使用context.getBean("&sessionFactory")获取。
ApplicationContext ac = new ClassPathXmlApplicationContext(new String[] { "classpath:**\\spring\\session_factory.xml" });LocalSessionFactoryBean lsf = (LocalSessionFactoryBean) ac.getBean("&sessionFactory");Configuration cfg = lsf.getConfiguration();cfg.setProperty(Environment.FORMAT_SQL, "true").addResource("cn/sevenlevel/test/dynamic.hbm.xml");new SchemaUpdate(cfg).execute(true, true);SessionFactory sf = cfg.buildSessionFactory();Session s = sf.openSession();User user=new User("张三",20);s.save("d_001",user);org.hibernate.Transaction tx = s.beginTransaction();tx.commit();s.close();
齐活!
作者邮箱:wangxiaomu@foxmail.com
- hibernate一个实体类映射多张表
- hibernate实体类映射
- hibernate 映射实体类并操作数据库!
- HIBERNATE 将实体类 映射成数据库表
- SQLServer映射hibernate到实体类
- Hibernate映射实体类自动导入方法
- Hibernate--实体类与表映射01
- hibernate实体类映射不到的问题
- 记录Hibernate映射实体类@注解
- hibernate实体映射
- Hibernate实体映射浅谈
- Hibernate实体映射浅谈
- Hibernate实体映射浅谈
- Hibernate实体映射
- hibernate search 实体映射
- Hibernate实体映射
- hibernate实体映射
- hibernate 实体映射
- Struts2 + Ajax 乱码问题
- C++中的闭包
- RPM命令常用选项
- 06.IOS学习笔记之第一个类
- 扩充string类
- hibernate一个实体类映射多张表
- mysql插入中文乱码问题解决1
- 毕业设计之错误集锦(八)
- 浅谈快件清关与邮关的区别
- 2013.5.07总结和计划
- Thinking in Java :类型信息
- UART RS232 与 RS485
- 2013蓝桥杯C初赛求带分数(涉及全排列问题)
- javascript101之类型