开发者社区 问答 正文

jfinal数据库操作Db.update的小BUG:配置报错 

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更完美。

展开
收起
kun坤 2020-06-02 17:34:02 737 分享 版权
1 条回答
写回答
取消 提交回答
  • Db.update("insert into XX(id)values(?)",'seq_id.nextval');//使用序列
    改成:
    Db.update("insert into XX(id)values(seq_id.nextval)");

    这样子不行么? ######行的,我在文中已经说明了。######       感谢楼主的反馈,你的建议已经添加到了备忘中,未来的版本会考虑改进。  ###### 对于创建触发器和过程,我采用以下办法
    http://www.oschina.net/question/245971_230247

    2020-06-02 17:34:09
    赞同 展开评论