jfinal数据库操作Db.update的小BUG

ohaozy 发布于 2015/04/28 19:19
阅读 5K+
收藏 0

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

加载中
0
aqu
aqu

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

改成:

Db.update("insert into XX(id)values(seq_id.nextval)");

这样子不行么?

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

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

0
车开源
车开源

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

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

返回顶部
顶部