Db.update(sql)里面的sql语句是Oracle的创建表的语句

Db.update(sql)里面的sql语句是Oracle的创建表的语句,返回值是多少说明创建成功呢?

评论区

JFinal

2020-03-23 14:39

不同数据库行为可能不同,需要你自己试用一下

去冰正常甜

2020-03-23 14:56

我看他返回的是0 数据库表是已经创建的了 有没有可能是1 或者其它情况呢

JFinal

2020-03-23 15:33

@去冰正常甜 建表语句,如果不抛出异常,你可以认为是成功了

而且建表语句是不能使用事务功能的,也就是说建表用的 sql 与其它数据库操作无法在同一个事务中回滚,这个是数据库的决定的

去冰正常甜

2020-03-23 15:47

@JFinal 明白了 谢谢波总

JFinal

2020-03-23 16:05

@去冰正常甜 对于建表语句, Db.update(...) 的返回值是不可靠的,不要依赖于这个值

JFinal

2020-03-23 16:08

@去冰正常甜 如果你要做得更严格点,可以在 Db.update(...) 执行建表语句以后,再使用 Db.find(...) 来验证:
try {
Db.update( 建表 sql );
Db.find("select * from " + tableName + " limit 1");
}
catch(Exception e) {
建表失败
}

Db.find 去尝试刚刚建的表是否存在,如果不存在则肯定报 table 不存在的异常出来

将上面的代码封装在一个工具类中更好

去冰正常甜

2020-03-23 16:34

@JFinal 确实可以 优秀

热门反馈

扫码入社