jfinal中的Db.update()很好用,直接调用insert,update,delete,create等操作及其方便,然而在使用中也存在一些BUG,这里提一下,希望波波可以考虑改进:
使用数据自带的函数或特性将报无效数字,如:
Db.update("insert into XX(id)values(?)",'seq_id.nextval');//使用序列
Db.update("insert into XX(id)values(?)","to_date('"+sdf.format(beginDt)+"','yyyy-mm-dd hh24:mi:ss')");//使用数据库自带函数
目前只有直接拼接sql语句才能避免报错。
创建oracle触发器如果包含:new,或:old将报索引中丢失 IN 或 OUT 参数:: 1:
Db.update("create trigger......(:NEW.ID,:OLD.NAME)");
这个的解决方法是直接使用原生executeUpdate方法
Connection conn = null;
Statement stm =null;
try {
conn=DbKit.getConfig(sourceDb).getConnection();
stm = conn.createStatement();
stm.executeUpdate(sql);
}catch(Exception e){
...............
}
以上的操作在JAVA处理数据库中也算常用,如果能解决无法使用问题,相信JFINAL更完美。
Db.update("insertintoXX(id)values(?)", 'seq_id.nextval ');//使用序列
改成:
Db.update("insertintoXX(id)values(seq_id.nextval)");
这样子不行么?
行的,我在文中已经说明了。感谢楼主的反馈,你的建议已经添加到了备忘中,未来的版本会考虑改进。
对于创建触发器和过程,我采用以下办法
http://www.oschina.net/question/245971_230247
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。