JFinal在操作Oracle数据库时如何查询别的用户的表

_Dream_M 发布于 2014/11/14 11:06
阅读 401
收藏 0

@JFinal 你好,想跟你请教个问题:

在JFinal里配置的数据源是根据a用户登录的,但是要查询的数据在b用户的表,a有读写权限。

在PL/SQL里应该是select * from b.t1 ,有用户前缀的,在JFinal应该怎么设置呢?

加载中
0
JFinal
JFinal
问题再具体点,没秒懂
_
_Dream_M
这个是对于Oracle数据库的
_
_Dream_M
假设Blog这个Model对应的表是 b 用户的,而程序配置的是 a 用户的帐号密码去连接数据库,当用findAll的时候sql打印的是select * from blog,但实际上这样会报表或视图不存在的错误,因为blog表是 b 用户的,应该用 select * from b.blog 才能正确查询,那么问题来了,怎么把加 “b.”这个前缀呢?
0
JFinal
JFinal
        使用 JFinal 的多数据源映射即可,每一个 table 对应一个 Model,不同的 table 属于不同的用户,而每一个用户都建一个数据源。详情请见 JFinal 手册有关多数据源使用章节。
JFinal
JFinal
回复 @梦续 : 最简单办法就是手动传入 sql,在 sql 中包含用户前缀,例如 YourModel.me.find("select * from A.tableName .....
_
_Dream_M
配数据源的方法我知道,但是有没有更好的方法呢?例如给一个表对应的Model设置所属用户,在拼接sql的时候就可以自动追加用户前缀。当然,这是针对Oracle的。
0
Marson幂次
Marson幂次
   也可以用Oracle DB Link
返回顶部
顶部