3
回答
JFinal在操作Oracle数据库时如何查询别的用户的表
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

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

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

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

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