oracle批量添加数据
来源:互联网 发布:国际空间站直播软件 编辑:程序博客网 时间:2024/06/14 00:58
很久没有做数据库的批量处理,最近恰好遇到这个任务,原本想用基础的addBatch,但是发现有点复杂,临时要用的话不方便,所以简单写了一个批处理的demo,关于一些特殊类型的转换,自行在接口中做修改,后期会陆续添加update,select以及delete等批处理demo,不足之处还请给出高见,谢谢。
/**
* Do insert with a list.
*
* @param tableName
* 表名
* @param cols
* 添加数据的列名
* @param data
* 对应cols的参数集(必须与cols里面的字段对应)
* @return a boolean whose success return true then return false.
*/
public static boolean saveData(String tableName, List<String> cols, List<List<String>> data) {
if (null == data || 0 == data.size() || null == cols || 0 == cols.size() || data.get(0).size() != cols.size()) {
logger.error("Input paras have problems, plz check.");
return false;
}
StringBuffer sb = new StringBuffer("insert into ");
sb.append(tableName + "(");
for (String col : cols)
sb.append(col + ",");
sb.replace(sb.length() - 1, sb.length(), ")");
int preLen = sb.length();
// insert multiple data once
for (List<String> item : data) {
if (sb.length() == preLen)
sb.append(" select ");
else
sb.append(" union select ");
for (String tt : item) {
if (tt != null)
sb.append("'" + tt + "'" + ",");
else
sb.append(tt + ",");
}
sb.replace(sb.length() - 1, sb.length(), " from dual");
}
String sql = sb.toString();
return DBHandler.insert(sql, null);
}
/**
* Do insert with a list.
*
* @param tableName
* 表名
* @param cols
* 添加数据的列名
* @param data
* 对应cols的参数集(必须与cols里面的字段对应)
* @return a boolean whose success return true then return false.
*/
public static boolean saveData(String tableName, List<String> cols, List<List<String>> data) {
if (null == data || 0 == data.size() || null == cols || 0 == cols.size() || data.get(0).size() != cols.size()) {
logger.error("Input paras have problems, plz check.");
return false;
}
StringBuffer sb = new StringBuffer("insert into ");
sb.append(tableName + "(");
for (String col : cols)
sb.append(col + ",");
sb.replace(sb.length() - 1, sb.length(), ")");
int preLen = sb.length();
// insert multiple data once
for (List<String> item : data) {
if (sb.length() == preLen)
sb.append(" select ");
else
sb.append(" union select ");
for (String tt : item) {
if (tt != null)
sb.append("'" + tt + "'" + ",");
else
sb.append(tt + ",");
}
sb.replace(sb.length() - 1, sb.length(), " from dual");
}
String sql = sb.toString();
return DBHandler.insert(sql, null);
}
阅读全文
0 0
- oracle批量添加数据
- Oracle通过myebatis批量添加数据
- Oracle 存储过程之批量添加数据
- mybatis oracle批量添加
- mybatis 批量添加(oracle)
- JDBC--批量添加数据
- JDBC--批量添加数据
- 批量添加数据
- java 批量添加数据
- 批量数据添加到表中
- Sqlite批量添加数据
- 批量添加数据
- C#批量添加数据
- mysql批量数据添加
- mysql批量添加数据
- mysql 批量添加数据
- 批量添加数据
- jeesite 批量添加数据
- C# 获取IPv4
- JQuery DataTables 隐藏搜索框 及 延迟搜索
- C#调式耗时
- java基础01
- Java8 Stream原理深度解析
- oracle批量添加数据
- 连接两个字符串中的不同字符 lintcode python
- 在使用visual studio 2013写程序时 ,出现了(“The POSIX name for this item is deprecated. Instead, use the ISO C+
- hdu 1290 切蛋糕
- Nginx实现反向代理(同一服务器下不同端口服务映射到80端口)
- Retrofit结合RxJava1.x使用
- AD导入logo
- TLP280-4 与 TLP281-4区别
- UVA 12034 Race