改造iBatis,使其支持自动生成sql语句(2)
改造iBatis,使其支持自动生成sql语句(2)
上篇讲到基本思路和代码修改的切入点。这篇继续讲实现的细节的demo。
在生成iql语句时,generate前面和后面的iql语句给予保留,充分保留最大的灵活性。
在生成iql语句时候后,在调用insert和update时,转入的parametarObject必须是parametermap规定的Object,在select和delete时,如果parameter只有1个,则会把iql变量替换成#value#。
?sql-map 代码
- ??select:
- ??select?*?from?( ??
- ????select?name?as?name,?fid?as?fid,?status?as?status,?notes?as?notes,?created?as?created,?id?as?id?from?sort?where?id?=?#value# ??
- ????)?a?order?by?id?desc?limit?1 ??
- ?? ??
- inesrt:???????
- ????insert?into?sort?(name,?fid,?status,?notes,?created)?values?(#name:VC#,?#fid:INTEGER#,?#status:INTEGER#,?#notes:VC#,?#created:TIMESTAMP#) ??
- ?? ??
- update:
- ????update?sort?set?name?=?#name:VC#,?fid?=?#fid:INTEGER#,?notes?=?#notes:VC#,?id?=?#id:INTEGER#?where?id?=?#id:INTEGER# ??
- delete
- ????delete?from?sort?where?id?=?#value#??
?原创文章,如果要转载请注明出处、原始地址和作者信息。?
1 楼 abx01 2007-12-10 支持,强捍的试验田 2 楼 bukebushuo 2007-12-20 想法和创意不错!