Jfinal动态映射数据表的问题

Hello_Ready 发布于 2016/09/08 21:22
阅读 538
收藏 0
Jfinal 如何动态创建数据表的映射关系呢?
C3p0Plugin c3p0Plugin = new C3p0Plugin(PropKit.get("jdbcUrl"), PropKit.get("user"), PropKit.get("password").trim());
me.add(c3p0Plugin);

ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin);
me.add(arp);
arp.addMapping("employee_t", Employee.class);

比如这个:employee_t是我的员工表,但是,如果我的订单表是动态的,比如:order_201606呢?是根据月份动态创建的表,该如何做映射呢??

还有就是有可能有这样的数据表:前缀_employee_t,前缀是随着系统用户的ID,比如:我的ID为openrtk,那么这个表名就是openrtk_employee_t,另外一个用户的ID为other,那么他的数据表名就是:other_employee_t,这种的表又该如何映射呢?谢谢。

加载中
0
JFinal
JFinal

    最简单的方法是使用 Db + Record 模式,此模式下,一切都是动态的,传对参数就可以了。

    还有一种方式是,动态地停止、映射、启动 ActiveRecordPlugin,假定对象名为 arp,那么,只需要写点代码,在需要的时候 arp.stop() 掉,然后 arp.addMapping(...) 重新映射,然后再 arp.start() 启动,就可以动态地建立映射关系。

Hello_Ready
Hello_Ready
貌似明白了,谢谢。看了以前做测试的代码,原来用到了Db + Record 模式
Hello_Ready
Hello_Ready
能否给个例子呢? 对java经验比较少,之前一直做C的。拜托
0
tonysb
tonysb

我的ID为openrtk,那么这个表名就是openrtk_employee_t,这句话的意思是,一个员工需要单独开一张表吗?

订单动态创建表,我觉得和Jfinal是没关系的吧,自己写好业务之后,然后对应的去映射就OK了

0
tinshen
tinshen

List<Record> data=Db.find("select ...");

这样就可以了。

支持动态表。

0
护士的小黄瓜
护士的小黄瓜
呵呵 这跟框架没什么关系啊。用javassist生成一个本地类。然后
TableMapping.me().putTable(new Table("表名,"生成的类名"))就行了;
0
Hello_Ready
Hello_Ready

引用来自“tonysb”的评论

我的ID为openrtk,那么这个表名就是openrtk_employee_t,这句话的意思是,一个员工需要单独开一张表吗?

订单动态创建表,我觉得和Jfinal是没关系的吧,自己写好业务之后,然后对应的去映射就OK了

整个系统可以给多个公司使用,每个公司有自己独立的数据,所以就这么设计了。
返回顶部
顶部