ActiveRecord可以接管Oracle数据库两个用户的Model吗?

@JFinal

情景:Oracle数据库orcl实例下有两个用户 DB1 DB2,目前连接的是DB1。

jdbcUrl=jdbc:oracle:thin:@localhost:1521:orcl
user=DB1
password=DB1

波总,Oracle数据库可以跨用户操作,可以创建两个用户的Model并且由ActiveRecord管理两个用户Model吗?

可以的话,怎么实现呢?谢谢。


评论区

JFinal

2020-04-13 10:24

当成是多数据源来使用就可以了,每个用户一个数据源:
https://jfinal.com/doc/5-14

如果是多用户要共享相同的 model , 那么可以用拦截器切换数据源,大至如下:
Connection conn = DbKit.use(configName).getDataSource().getConnection();
DbKit.setThreadLocalConnection(conn);
try {
inv.invoke();
}
finally {
DbKit.removeThreadLocalConnection();
}

注意上面的 DbKit.use(configName) , 这个 configName 参数就对应了不同的数据源,你要想办法动态获取这个值,不同用户登录你是能获取它的账号的,通过账号与数据源建立关联即可

xiuj

2020-04-13 13:51

多数据源。

风满楼

2020-04-13 14:06

@xiuj 嗯嗯 谢谢 多数据源可以的 我想的复杂了 Oracle可以当前连接的用户查询别的用户下的表 我以为不用多数据源也可以 类似SELECT * FROM USER.USERTABLE管理Model

热门反馈

扫码入社