189 8069 5689

Hibernate schema简单分析

Hibernate有很多值得学习的地方,这里我们主要介绍Hibernate schema,包括介绍切换Schema等方面。

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比荣昌网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式荣昌网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖荣昌地区。费用合理售后完善,十年实体公司更值得信赖。

Hibernate schema

如果你在调用Hibernate的时候需要切换schema怎么办呢。

在oracle中,不同的用户,使用不同的schema.在Hibernate的POJO中,会指定了schema

 
 
 
  1.  version="1.0" encoding="utf-8"?> 
  2. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
  3.  
  4.  
  5.  name="com.csc.poimanager.dao.Poi" table="POI" schema="P_BEIJING"> 
  6.  name="poiId" type="java.lang.Long"> 
  7.  name="POI_ID" precision="10" scale="0" /> 
  8.  class="increment" /> 
  9.  
  10.  name="cnName" type="java.lang.String"> 
  11.  name="CN_NAME" length="1000" /> 
  12.  
  13.  
  14.  

上面的代码部分,就指定了Schema.如果在操作的时候想切换Schema.操作如下:

默认的配置POI_BEIJING

上面的映射文件改为:

 
 
 
  1.  version="1.0" encoding="utf-8"?> 
  2. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
  3.  
  4.  
  5.  name="com.csc.poimanager.dao.Poi" table="POI" > 
  6.  name="poiId" type="java.lang.Long"> 
  7.  name="POI_ID" precision="10" scale="0" /> 
  8.  class="increment" /> 
  9.  
  10.  name="cnName" type="java.lang.String"> 
  11.  name="CN_NAME" length="1000" /> 
  12.  
  13.  
  14.  

在操作的,可以用下面的方法来重新build你的SessionFactory

 
 
 
  1. public static void rebuildSessionFactoryForChangeSchema(String newSchema){  
  2. try {  
  3.  
  4. Properties p = configuration.getProperties();  
  5. System.out.println("---" + p);  
  6. p.put("hibernate.default_schema", newSchema);  
  7. sessionFactory = configuration.buildSessionFactory();  
  8. System.out.println(" change schema successfully ......... ");  
  9. } catch (Exception e) {  
  10. System.err  
  11. .println("%%%% rebuild session factory failed for changing schema %%%%");  
  12. e.printStackTrace();  
  13. }  

如果需要改变Schema,就需要在需要的时候调用此方法。

比如在SchemaAction中

 
 
 
  1. HibernateSessionFactory.rebuildSessionFactoryForChangeSchema("POI_SHANGHAI");  
  2.  
  3. System.out.println(" change successfully---");  
  4.  
  5. PoiDAO pd = new PoiDAO();  
  6. Transaction t =pd.getSession().beginTransaction();  
  7.  
  8. pd.save(new Poi("jsfjksdf"));  
  9. t.commit(); 

那么,原来,是向POI_BEIJING中插入数据的,变成了向POI_SHANGHAI中插入一条数据了。通过这种方法,可以实现在操作不同的Schema的时候实现切换。

问题:此处改变的是静态工厂。所以,会对所有的用户产生影响。如果不想对所有的用户改变,那么可以根据Schema的名称来取得自己对应的SessionFactoy就可以了。以上介绍Hibernate schema。

【编辑推荐】

  1. 浅析Hibernate orm框架
  2. Hibernate Callback简单概括
  3. 概述Hibernate dbcp连接池使用方法
  4. Hibernate Shard三种策略剖析
  5. 讨论Hibernate和模型对象

分享名称:Hibernate schema简单分析
网站路径:http://cdxtjz.cn/article/cosgogi.html

联系我们

您好HELLO!
感谢您来到成都网站建设公司,若您有合作意向,请您为我们留言或使用以下方式联系我们, 我们将尽快给你回复,并为您提供真诚的设计服务,谢谢。
  • 电话:028- 86922220 18980695689
  • 商务合作邮箱:631063699@qq.com
  • 合作QQ: 532337155
  • 成都网站设计地址:成都市青羊区锣锅巷31号五金站写字楼6楼

小谭建站工作室

成都小谭网站建设公司拥有多年以上互联网从业经验的团队,始终保持务实的风格,以"帮助客户成功"为已任,专注于提供对客户有价值的服务。 我们已为众企业及上市公司提供专业的网站建设服务。我们不只是一家网站建设的网络公司;我们对营销、技术、管理都有自己独特见解,小谭建站采取“创意+综合+营销”一体化的方式为您提供更专业的服务!

小谭观点

相对传统的成都网站建设公司而言,小谭是互联网中的网站品牌策划,我们精于企业品牌与互联网相结合的整体战略服务。
我们始终认为,网站必须注入企业基因,真正使网站成为企业vi的一部分,让整个网站品牌策划体系变的深入而持久。