请问jfinal里一个model是否可以映射多个数据库表?

发布于 2021-11-29 12:50:07 字数 220 浏览 938 评论 10

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

请问jfinal里一个model是否可以映射多个数据库表? 比如我有多个相似的表格,添加查询什么的方法都一模一样,可不可以避免写太多重复的代码,在一个package里通过参数来进行分配具体操作哪一个表格。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

韬韬不绝 2021-12-03 21:57:44

引用来自“如梦技术”的评论

可以使用 sharding-jdbc :
http://www.oschina.net/news/71243/sharding-jdbc-1-0-1 分库分表非常不错,我已经试过了,博客待写,可能需要修改2行JFinal源码或者自己重写model和db的save, 因为他还不支持
getGeneratedKeys,@JFinal 是否可以考虑加个参数控制这个getGeneratedKeys,分库了之后主键一般是先生成好的。

南冥有猫 2021-12-03 20:52:37

让 getGenereatedKeys() 自行生成主键? 不依赖于数据库?

瑾夏年华 2021-12-03 18:49:30

回复
getGenereatedKeys()主要是获取已经生成的主键,大部分分库的都是实现将主键生成好的,就是主键已知了,不过感觉得好好考虑下,不知道mybatis那种SELECT LAST_INSERT_ID()支持不,这个没测试过。

柳絮泡泡 2021-12-03 15:52:14

回复
getGeneratedKeys() 就是获取已生成的主键的,难道不是一个意思?

屌丝范 2021-12-03 15:37:47

可以使用 sharding-jdbc :
http://www.oschina.net/news/71243/sharding-jdbc-1-0-1 分库分表非常不错,我已经试过了,博客待写,可能需要修改2行JFinal源码或者自己重写model和db的save, 因为他还不支持
getGeneratedKeys,@JFinal 是否可以考虑加个参数控制这个getGeneratedKeys,分库了之后主键一般是先生成好的。

眼眸 2021-12-03 09:13:41

那如果查询呢?怎么发SQL语句? 我试了一下 Model m = Model.me.use(“otherDb”); List list=m.find("sql"); 这样报空指针异常。

海之角 2021-12-03 06:41:37

回复
报错前两句是这样的:at com.jfinal.plugin.activerecord.Model.find(Model.java:529) at com.jfinal.plugin.activerecord.Model.find(Model.java:546)

浅沫记忆 2021-12-02 14:28:27

回复
me是全局共享的,不建议使用它的 use 方法,否则其它地方使用的时候仍然保持着上次使用的configName,建议使用新创建出来的model使用use方法,例如 new User().use(...),也可以是从数据库刚刚查询出来的model使用use,总之注意一下线程安全问题

背叛残局 2021-12-02 01:35:32

回复
谢谢您,我是把me.find(sql)改成Db.find(sql)解决的。

裸钻 2021-11-30 01:24:30

   在映射方面,一个 Model 只能映射到一个数据源,也即:一个 Model 只能调用一次 arp.addMapping(...) 来映射。但可以使用 Model.use(configName) 这个方法临时切换到其它数据源,极度好使用,你可以试试,这样用:

User.dao.findById(123).use(otherDs).save();

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文