文档库 最新最全的文档下载
当前位置:文档库 › Hibernate有很多值得学习的地方

Hibernate有很多值得学习的地方

Hibernate有很多值得学习的地方
Hibernate有很多值得学习的地方

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

Hibernate schema

如果你在调用Hibernate的时候需要切换schema怎么办呢。在oracle中,不同的用户,使用不同的schema.在Hibernate 的POJO中,会指定了schema

1.

2.

/Hibernate/Hibernate Mapping DTD 3.0//E

N"

3."

rnate-mapping-3.0.dtd">

4.

7.

8.

9.

>

10.

11.

12.

13.

14.

15.

16.

17.

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

默认的配置

name="Hibernate.default_schema">POI_BEIJING

上面的映射文件改为:

1.

2.

3.0//E N"

3."

rnate-mapping-3.0.dtd">

4.

7.

8.

9.

>

10.

11.

12.

13.

14.

15.

16.

17.

在操作的,可以用下面的方法来重新build你的SessionFactory 1.public static void rebuildSessionFacto ryForChangeSchema(String newSchema){

2.try {

3.

4.Properties p = configuration.getProper

ties();

5.System.out.println("---" + p);

6.p.put("hibernate.default_schema", newS

chema);

7.sessionFactory = configuration.buildSe

ssionFactory();

8.System.out.println(" change schema suc

cessfully ......... ");

9.} catch (Exception e) {

10.System.err

11..println("%%%% rebuild session fa

ctory failed for changing schema %%%%") ;

12. e.printStackTrace();

13.}

14.}

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

1.HibernateSessionFactory.rebuildSession

FactoryForChangeSchema("POI_SHANGHAI");

2.

3.System.out.println(" change successful

ly---");

4.

5.PoiDAO pd = new PoiDAO();

6.Transaction t =pd.getSession().beginTr

ansaction();

7.

8.pd.save(new Poi("jsfjksdf"));

https://www.wendangku.net/doc/9215674419.html,mit();

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

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

相关文档