开发者社区> 问答> 正文

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

展开
收起
爱吃鱼的程序员 2020-06-14 16:26:25 491 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    Db.update("insertintoXX(id)values(?)", 'seq_id.nextval ');//使用序列

    改成:

    Db.update("insertintoXX(id)values(seq_id.nextval)");

    这样子不行么?

    行的,我在文中已经说明了。

       感谢楼主的反馈,你的建议已经添加到了备忘中,未来的版本会考虑改进。 

    对于创建触发器和过程,我采用以下办法

    http://www.oschina.net/question/245971_230247

    2020-06-14 16:26:42
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载