<select id="getdatatypeconfig" parameterType="java.util.HashMap" resultType="java.util.HashMap"> SELECT a.[datatypeconfig_colname] AS colName, b.datavalue_colvalue AS colValue FROM [JxBivAppUserDB].[dbo].[jxbivtob_settlement_datatypeconfig] a LEFT JOIN [JxBivAppUserDB].[dbo].[jxbivtob_settlement_datavalue] b ON a.datatypeconfig_id = b.datatypeconfig_id WHERE b.datafile_id=(SELECT TOP (1) [datafile_id] FROM [JxBivAppUserDB].[dbo].[jxbivtob_settlement_datafile] WHERE datatype_id=9 ORDER BY datafile_id DESC) AND b.datatype_id=(SELECT TOP (1) datatype_id FROM [JxBivAppUserDB].[dbo].[jxbivtob_settlement_datafile] WHERE datatype_id=9 ORDER BY datafile_id DESC) </select>public Map<String,Object> insert_fundsettlementdays(HttpServletRequest request, HttpServletResponse response){ response.setCharacterEncoding("UTF-8"); Map<String,Object> map =new HashMap<>(); List<HashMap> datatypeList=userDao.selectList("basessm.mapper.fundsettlementdays.getdatatypeconfig"); if (datatypeList == null || datatypeList.isEmpty()) { // 处理查询结果为空的情况 map.put("info", "No data available"); return map; } // 构建插入的列名和对应的值 StringBuilder columnNames = new StringBuilder(); StringBuilder columnValues = new StringBuilder(); for (HashMap<String, Object> datatype : datatypeList) { String colName = (String) datatype.get("colName"); String colValue = (String) datatype.get("colValue"); columnNames.append(colName).append(","); columnValues.append("'").append(colValue).append("',"); } columnNames.deleteCharAt(columnNames.length() - 1); columnValues.deleteCharAt(columnValues.length() - 1); // 构建参数并调用插入方法 HashMap paramMap = new HashMap<>(); paramMap.put("columnNames", columnNames.toString()); paramMap.put("columnValues", columnValues.toString()); userDao.insert("basessm.mapper.fundsettlementdays.insert_fundsettlementdays",paramMap); map.put("info", "success"); return map; }需要datatypeList返回的每16条数据的colName跟jxbivtob_settlement_fundsettlementdays的列进行对比,如果相等那么就把colName对应的colValue插入到jxbivtob_settlement_fundsettlementdays表中
时间: 2024-04-15 15:30:42 浏览: 90
Mybatis框架 mapper.xml文件中parameterType传递参数常用的几种方式.pdf
根据你提供的代码,我看到你想要将 `datatypeList` 返回的每16条数据的 `colName` 与 `jxbivtob_settlement_fundsettlementdays` 表的列进行对比,如果相等,则将 `colName` 对应的 `colValue` 插入到 `jxbivtob_settlement_fundsettlementdays` 表中。
下面是一个可能的实现方式:
```java
// 假设 jxbivtob_settlement_fundsettlementdays 表名为 fundsettlementdays
// 获取 jxbivtob_settlement_fundsettlementdays 表的列信息
ResultSetMetaData metadata = userDao.getConnection().getMetaData();
int columnCount = metadata.getColumnCount();
List<String> columnNames = new ArrayList<>();
for (int i = 1; i <= columnCount; i++) {
columnNames.add(metadata.getColumnName(i));
}
// 遍历 datatypeList
for (int i = 0; i < datatypeList.size(); i++) {
HashMap<String, Object> datatype = datatypeList.get(i);
String colName = (String) datatype.get("colName");
String colValue = (String) datatype.get("colValue");
// 判断 colName 是否存在于 jxbivtob_settlement_fundsettlementdays 表中的列中
if (columnNames.contains(colName)) {
// 构建插入语句
StringBuilder insertQuery = new StringBuilder();
insertQuery.append("INSERT INTO fundsettlementdays (").append(colName).append(") VALUES ('").append(colValue).append("')");
// 执行插入语句
userDao.execute(insertQuery.toString());
}
}
```
请注意,上述代码仅作为参考,并且假设了一些情况。你需要根据实际情况进行调整和修改。同时,确保在执行插入操作之前对数据进行适当的验证和处理,以确保数据的准确性和安全性。
阅读全文