//观点一,先取出数据库中已存在ID存入内存,再进行判断
//数据太多情况,内存爆炸
DateTable dt = ExcuteSQL('SELECT ID FROM TABLE')
//List为数据集,已经去重
foreach(var item in List){
//观点二,在for循环中根据ID查询是否已存在
//for循环执行数据库?没这么干过
DateTable dt = ExcuteSQL(string.format('SELECT ID FROM TABLE WHERE ID = {0}',item.ID))
//判断是否在dt中存在
...
bool ISContain
...
//不存在
if(!ISContain){
//加入事物SQL列表
SQLList.Add('INSERT INTO ........')
}
}
//执行事物
....
1、sql语句判断数据库表是否存在:sql:select * from user_all_tables where table_name='tableName'
如果结果为空则表示不存在,如何结果不为空则表示存在;
2、java如何判断数据库表是否存在
可以利用上面的sql,执行获取结果,相应的java代码如下:
String helperName= delegator.getGroupHelperName("com.asiainfo")
SQLProcessor sqlProcessor= new SQLProcessor(helperName)
String sql = "select * from user_all_tables where table_name='"+table+"'"
ResultSet rsTables =sqlProcessor.executeQuery(sql)
if(rsTables.next()){
Debug.logWarning("table:"+table+" exists", module)
}else{
Debug.logWarning("table:"+table+" does not exist", module)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)