首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
Db.update(sql)里面的sql语句是Oracle的创建表的语句
去冰正常甜
2020-03-23 14:29
Db.update(sql)里面的sql语句是Oracle的创建表的语句,返回值是多少说明创建成功呢?
项目:
JFinal
评论区
JFinal
2020-03-23 14:39
不同数据库行为可能不同,需要你自己试用一下
回复
去冰正常甜
2020-03-23 14:56
我看他返回的是0 数据库表是已经创建的了 有没有可能是1 或者其它情况呢
回复
去冰正常甜
2020-03-23 14:56
@JFinal
回复
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
确实可以 优秀
回复
发送
我要反馈
热门反馈
扫码入社