hibernate动态创建数据库表名几种方式
2014-07-19 21:56
465 查看
数据库中数据量很大, 但又不可以删除时同时又要优化程序检索数据时间。 答:方式有很多比如 创建数据库表分区,创建索引, 存储过程等; 我这里采用动态创建数据库表的方式。 完全可以在不创建表分区情况下实行分表管理 例如 日志记录表 将日期(yyyy-MM)作为默认表后缀动态追加, 例如 文章发布表 将用户名作为后缀名进行动态追加 ; 动态创建数据库表的方式要具体问题具体分析, 比如JDBC中直接使用create table 表名_dynamicStr(...); 还可以使用hibernate的sql查询,不使用hql就不用走.hbm.xml文件了. 文章发布系统 dynamicStr 可以用已注册登陆的用户名, 日志记录表 dynamicStr 可以采用 'log_'+new SimpleDateFormat("yyyyMM").format(new Date()); 下面例子是使用hibernate动态创建数据库表的例子,缺点是每次都要创建sessionFactory对象如果不同用户在同一时间段内不停的发布信息那是相当好系统资源的事情不可取,用在局域网系统还算靠谱 如果有兴趣可以将下面的代码抽取成动态创建表的Utils. 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(); } }
相关文章推荐
- 对于SQL Server 对象名 XXX 无效 的多种有效处理方式(hibernate自动创建、数据库移植)
- Hibernate动态建表,通过hbm.xml配置文件创建数据表,进行数据库操作, 动态模型
- 在Hibernate里面动态切换SChema实现访问不同的数据库的几种方法
- 在Hibernate里面动态切换SChema实现访问不同的数据库的几种方法
- Hibernate动态建表,通过hbm.xml配置文件创建数据表,进行数据库操作, 动态模型
- mysql 通过事件定时为数据库创建动态表名
- 在Hibernate里面动态切换SChema实现访问不同的数据库的几种方法
- hibernate访问数据库的几种方式
- Hibernate访问数据库的几种方式
- JS面向对象的几种创建方式:工厂模式、构造函数模式、原型模式、混合模式、动态原型模式
- spring配置文件applicationContext.xml配置hibernate的连接数据库信息及sessionFactory创建方式
- 在Hibernate里面动态切换SChema实现访问不同的数据库的几种方法
- Hibernate创建数据库的四种方式
- 在VB程序中用ADO对象动态创建数据库和表
- Hibernate中的两种数据库连接方式
- 几种 ADO.net 中的数据库连接方式
- 使用反射实现根据名称动态创建窗体的几种方法
- .net下PDA连数据库连接的几种方式
- Castle ActiveRecord 使用动态填写参数方式配置数据库连接
- Hibernate对boolean判断方式在不同数据库(Postgres和Sql Server2000)下的表现