2017-04-19 10:45
@ihss23 可以这样理解,随着使用时间的推移,理解会更深入,我前面讲的是基本区别,还有其它一些以后慢慢体会,例如 Model 中可以写与本 model 逻辑有关的一些代码,而 Record 是固定的一个类文件,不能在里面添加东西
2017-04-18 17:19
一、Model
1:model 采用的是 active record 模式,该模式的核心是一个 model 对象唯一对应一条数据表记录,对应的机制是采用主键
2:由于 model 对象与数据表记录通过主键建立了唯一对应的关系,所以可以提供 model.update()、model.delete() 这种操作方式
3:model 内部可以创建额外的方法完成一定的逻辑,还可以用生成器生成 getter、setter 方法,对于属性的读写提供了便利
二、Db + Record
1:Record 对象并没有与某个数据表建立关联,而是在使用的时候,使用参数临时与某个表建立联系,例如: Db.save("user", new Record().set("userName", "james");
2:由于某个 Model 对象与条记录建立了关联,所以对于需要批量更新数据表数据的操作不太方便,例如更新 account 表中的 cash 字段,让每条记录全是增长 10 块钱的用法:
Db.update("update account set cash = cash + 10")
在大部分情况下尽量使用 Model 可以搞定需求,当 Model 搞不定时,例如需要批量更新、删除时,用一下 Db + Record 模式作为补充
2017-04-16 20:21
@Irin.Chan @cknote @sruz @elber25977 @Jammy 俱乐部已发布内测版,玩得正 high
2017-04-13 18:44
configEngine(Engine engine) 这个方法内不建议配置 engine.setBaseTemplatePath(...),因为这个配置是留给独立使用 template engine 的场景用的
而 web 项目的场景让其直接就是 webroot 是最佳的,如果你设置成为 webroot + "/themes",那么希望再访问 webroot 之下的模板或者 webroot 之下其它非 "themes" 之下的模板就无法实现
对于你的应用场景,在 configRoute(Routes routes) 中使用 routes.setBaseViewPath("/themes") 才是最好的实践方式,这里的配置指定的路径是相对于 webroot 的,非常易于使用
不仅如此, Routes 还可以针对不同的模块独立配置,具体配置方式详细 jfinal club 项目源代码,极其好用
2017-04-13 15:43
@要输就输给追求 微信买单成功后会向手机微信推送消息,你可以在电脑上用 android 模拟器运行一个微信客户端,拿到这个推送的消息就可以做相关业务了
脑子要多转转