Hibernate有很多值得学习的地方,这里我们主要介绍Hibernate schema,包括介绍切换Schema等方面。
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比荣昌网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式荣昌网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖荣昌地区。费用合理售后完善,十年实体公司更值得信赖。
Hibernate schema
如果你在调用Hibernate的时候需要切换schema怎么办呢。
在oracle中,不同的用户,使用不同的schema.在Hibernate的POJO中,会指定了schema
- version="1.0" encoding="utf-8"?>
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
name="com.csc.poimanager.dao.Poi" table="POI" schema="P_BEIJING"> name="poiId" type="java.lang.Long"> name="POI_ID" precision="10" scale="0" /> class="increment" /> name="cnName" type="java.lang.String"> name="CN_NAME" length="1000" />
上面的代码部分,就指定了Schema.如果在操作的时候想切换Schema.操作如下:
默认的配置
上面的映射文件改为:
- version="1.0" encoding="utf-8"?>
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
name="com.csc.poimanager.dao.Poi" table="POI" > name="poiId" type="java.lang.Long"> name="POI_ID" precision="10" scale="0" /> class="increment" /> name="cnName" type="java.lang.String"> name="CN_NAME" length="1000" />
在操作的,可以用下面的方法来重新build你的SessionFactory
- public static void rebuildSessionFactoryForChangeSchema(String newSchema){
- try {
- Properties p = configuration.getProperties();
- System.out.println("---" + p);
- p.put("hibernate.default_schema", newSchema);
- sessionFactory = configuration.buildSessionFactory();
- System.out.println(" change schema successfully ......... ");
- } catch (Exception e) {
- System.err
- .println("%%%% rebuild session factory failed for changing schema %%%%");
- e.printStackTrace();
- }
- }
如果需要改变Schema,就需要在需要的时候调用此方法。
比如在SchemaAction中
- HibernateSessionFactory.rebuildSessionFactoryForChangeSchema("POI_SHANGHAI");
- System.out.println(" change successfully---");
- PoiDAO pd = new PoiDAO();
- Transaction t =pd.getSession().beginTransaction();
- pd.save(new Poi("jsfjksdf"));
- t.commit();
那么,原来,是向POI_BEIJING中插入数据的,变成了向POI_SHANGHAI中插入一条数据了。通过这种方法,可以实现在操作不同的Schema的时候实现切换。
问题:此处改变的是静态工厂。所以,会对所有的用户产生影响。如果不想对所有的用户改变,那么可以根据Schema的名称来取得自己对应的SessionFactoy就可以了。以上介绍Hibernate schema。
【编辑推荐】
当前文章:Hibernate schema简单分析
浏览路径:http://www.shufengxianlan.com/qtweb/news2/27452.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联