Closed limingwei closed 11 years ago
现在的这种方式已经很不错了吧? li我不知道 jfinal目标是像脚本语言那样写 nutz是为了更加平滑的让写惯了ssh的人过渡的阿 两者目的都不一样啊
我知道,nutz就是ssh模型,但是的确有更好的模型,干嘛不做一个这个模型的实现呢
当然是不重复造轮子的理由....喜欢那样的可以直接去用实现了那样的框架嘛.......jfinal的javabean也不需要写啥嘛
干嘛又来 重复造轮子 这句话呢 唉
干嘛又来 重复造轮子 这句话呢
慢慢来, 先把api什么的定下了, 然后实现
并不是说,完全不能重复造,只不过怎么说呢,如果没有也很简便不是么,当然了,如果真的很需要!自己搞!
ActiveRecord
在约定大于配置的情况用着才最爽,当数据库模型跟java的bean没有一一对应关系时写起来也是很麻烦的
楼上:Ar并不存在java的Bean,数据放在Map里面的,不存在属性名对应的问题。 楼上的楼上:我倒是觉得的确是是简便了很多,而这正是他的价值。
这是Demo,代码写的丑,只为说明问题 https://github.com/limingwei/li/tree/master/demo/li/people
只是一个 map 的简单封装的话 nutz 也有一个叫做Record
的类来做这个事情啊,不构建 POJO 访问数据库
所以我不太清楚你想干什么,而且给的 demo 也就是单表查询简单,关联查询的时候还是需要靠写 sql 语句来做对吧
public List<Account> list(Page page, String key) {
String sql = "SELECT a.*,r.name role_name " + "FROM t_account a " + "LEFT JOIN t_role r ON a.role_id=r.id WHERE 1=1";
if (!Verify.isEmpty(key)) {
sql += " AND(a.username LIKE '%" + key + "%' OR a.email LIKE '%" + key + "%')";
}
return super.list(page, sql);
}
并且这样靠 string 来拼接 sql 语句的话不会有SQL注入攻击
的危险么?
首先,楼上好。
第一,关于SQL注入的问题,不属于这次讨论的范畴 第二,Nutz的确有Record,但用起来还是有一些区别。
比如我需要消灭掉所有POJO,需要一个Record的子类对应一个数据表,需要把这个表相关数据访问的代码就放在这个Record类里,需要Record能够像POJO一样save和update,而不是仅仅是查询。
我那个说的重点是关联查询的时候需要靠写sql来实现而不能通过方法获得,SQL注入只是随口一说罢了
关联查询的时候需要靠写sql来实现而不能通过方法获得 的确不能,而且Ar里面根本不存在这个需求 但是,然后呢? 我怎么感觉你在说麦当劳里不卖肯德基一样。
nutz现在的record不够用吗?
在 2013年7月30日下午12:11,limingwei notifications@github.com写道:
关联查询的时候需要靠写sql来实现而不能通过方法获得 的确不能,而且Ar里面根本不存在这个需求 但是,然后呢? 我怎么感觉你在说麦当劳里不卖肯德基一样。
— Reply to this email directly or view it on GitHubhttps://github.com/nutzam/nutz/issues/496#issuecomment-21768642 .
那做个 ActiveRecord 它的需求是什么? 就仅仅是为了方便快速单表查询了?不用在乎表关联之类的这种客观存在并且会常用使用的情况了
而且在前几个的回复里面已经说了我的观点,就是我不太清楚你想干什么
,就是加上这个玩意的用处是干什么,
为了快速方便的进行单表查询,
并且还能直接用它的实例来进行有被SQL注入的危险的 create、update、delete么?
@crskyp 貌似他想说的是我这个不仅可以进行select,而且还可以直接对它的实例进行create、update、delete
再来 java 这边的 ActiveRecord 这个提法是从哪个地方冒出来的?有没有什么介绍文档么? 我倒是知道在 ruby on rails 里面这个可是个高级玩意
算了,这样聊着没意思。
1)为了消灭 POJO 而采用 Map 来封装一个对象但是需要自己手写SQL语句来实现关联检索的处理 2)为了少写甚至不写SQL语句而是用 POJO 的形式进行数据库检索
白菜萝卜各有所爱
稍微找了一圈,发现 activejdbc 这个是比较跟 ruby on rails 的ActiveRecord 功能接近的类库,不仅能直接对实例化对象进行 create、update、delete,还能直接用这个类进行select操作,并且关联检索也不需要写SQL语句就能实现,这个才用得爽
关键是要用充血还是贫血 Nutz 选了贫血, 所以不会再做充血了 我不反对充血,只是我的代码里一律是贫血模型,数据对象就是数据对象,尽量不带 IO 相关的东东 这样,我的数据对象才好用在各个地方,比如 Json 弄出一个数据对象交给 Dao ,这个就很自然了
其实我也理解不深,但谁管他那么多概念咧,价值观对了才是根本,用更爽的方式写代码!!!
下面这俩做参考吧 https://github.com/limingwei/li/blob/master/framework/li/dao https://github.com/jfinal/jfinal/tree/master/src/com/jfinal/plugin/activerecord