最近发现HIBERNATE可以动态更换表名,真不简单,下面把原代码贴出来供参考:
public class ReportDBApi {
private SessionFactory sessionFactory = null;
public ReportDBApi(){
createSession();
}
public void createSession(){
Date date = new Date();
SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyyMMdd");
String now_time = simpledateformat.format(date);
String tablename = "TBL_REPORT_STATUS_20050707";
tablename = "TBL_REPORT_STATUS_" + now_time;
try {
Configuration cfg = new Configuration().addClass(cn.sports.vas.sms.unicom.TblReportStatus.class).configure();
Table table = cfg.getClassMapping(TblReportStatus.class).getTable();
table.setName(tablename);
cfg.getClassMapping(TblReportStatus.class).setTable(table);
sessionFactory = cfg.buildSessionFactory();
}
catch (MappingException ex) {
ex.printStackTrace();
}catch (HibernateException ex) {
ex.printStackTrace();
}
}
public void insertPO(TblReportStatus po) throws HibernateException {
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
session.save(po);
tx.commit();
session.close();
}
public void closeSession() throws HibernateException {
sessionFactory.close();
}
}
这个类是每天新建一张表,并往里写数据。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jljf_hh/archive/2005/07/14/424510.aspx
分享到:
相关推荐
Spring Hibernate 实现动态替换表名(分表)的方法 随着数据库的发展,分表操作变得越来越重要。今天,我们将讨论如何使用 Spring Hibernate 实现动态替换表名(分表)。 概述 ---- 在实现动态替换表名时,我们...
例如,使用`org.hibernate.boot.model.naming.PhysicalNamingStrategy`接口来自定义表名生成策略,或者利用`Session.createSQLQuery()`方法直接执行原生SQL。 2. **多数据库支持**:为了适应不同的数据库,如MySQL...
Hibernate 参数设置一览表 属性名 用途 详细解读hibernate配置时的参数定义
【标题】:“Hibernate动态建表” 在Java世界中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者将数据库操作与Java对象模型相结合,简化了数据库编程。"Hibernate动态建表"指的是在应用运行时...
### Hibernate 实现动态表查询的多种解决方案 #### 一、前言 在使用Hibernate进行数据库操作时,我们经常需要根据不同的需求对不同的表进行查询。特别是在处理多表、多库等复杂场景时,如何实现动态表查询就显得尤...
例如,使用@Table注解指定对应的表名,@Column注解定义列属性。 3. 主键(Primary Key):每个实体都应有一个唯一的标识符,通常由@Id注解定义。Hibernate支持多种主键策略,如自动生成(GenerationType.AUTO)、...
3. 动态查询:使用Criteria API或HQL构建动态查询,灵活适应业务需求。 总之,Hibernate中文文档和相关jar包提供了学习和使用Hibernate的强大支持。结合实际项目实践,开发者能够熟练掌握ORM技术,提高开发效率,...
例如,`@Entity`标记一个类作为数据库表的映射,`@Table`指定对应的表名,`@Id`标识主键字段,`@GeneratedValue`定义主键生成策略等。 7. **操作流程**:在学习这个例子时,开发者通常会经历以下步骤:加载配置、...
* `class`:定义类名和对应的数据库表名 * `id`:定义类的主键信息 * `property`:定义类的属性信息 * `set`:定义一对多关联关系 这些配置项是 Hibernate 建立对象关系映射所需的基本信息。 Hibernate 配置文件是...
2. **动态表名生成**:当插入或查询数据时,插件需要根据分表策略动态生成目标表的名称。这通常涉及对实体类的元数据处理,以及与策略相关的计算。 3. **SQL构造**:由于数据分布在多个表中,原有的SQL语句需要修改...
Hibernate通过@Entity注解标记Java类为数据库表的映射,@Table定义表名,@Id指定主键,@GeneratedValue管理主键生成策略。其他如@Column、@OneToMany、@ManyToOne等注解则用于定义字段映射关系。 四、缓存机制 ...
5. **Criteria API**: 除了HQL,Hibernate还提供了Criteria API进行动态查询,这种方式更加面向对象,使得构建复杂的查询条件更为直观。 6. **第二级缓存**: Hibernate支持第二级缓存,通过缓存中间结果,提高...
XML配置文件通常包含实体类的信息,包括表名、字段名以及它们对应的数据库类型。而注解方式则允许直接在类和属性上添加元数据,使代码更加整洁。 此外,Hibernate支持多种查询方式。HQL(Hibernate Query Language...
- 注解驱动:在Hibernate 3.3中,注解成为了一种主流的元数据声明方式,开发者可以使用Java类的注解来定义实体类及其与数据库表的映射关系,如`@Entity`表示实体类,`@Table`定义表名,`@Id`标识主键等。...
hibernate.default_schema 参数用于在生成的 SQL 中,给定的 schema/tablespace 附加于非全限定名的表名上。其取值为 SCHEMA_NAME。 5. hibernate.default_catalog hibernate.default_catalog 参数用于在生成的 ...
2. ** Criteria API增强**:Hibernate 4.4.1进一步增强了Criteria API,这是一个动态查询构建工具,允许开发者用面向对象的方式来构建SQL查询。这比传统的HQL更加灵活,且易于理解和维护。 3. **Second-Level Cache...
`@Table`注解用于指定对应的数据库表名,而属性上的`@Column`注解则对应表中的列。 4. **对象关系映射(ORM)**:Hibernate支持多种映射方式,如一对一、一对多、多对一和多对多关系。这些关系通过使用`@OneToOne`,...
### Hibernate Tools 使用文档知识点概述 #### 一、下载与安装Hibernate Tools - **JBoss Eclipse IDE**:在使用JBoss Eclipse IDE的情况下,可以利用插件管理器直接安装Hibernate Tools插件。 - **Eclipse IDE**...
7. **Criteria 查询**:除了HQL,Hibernate还提供了Criteria API,它允许动态构建查询,提供了更加面向对象的查询方式。 8. **事务管理**:Hibernate支持JTA(Java Transaction API)和JDBC事务管理,确保数据的...