boolean exists = false; for (Map<String, Object> exist : jxMjKhTxService.query(current)) { if (exist.get("jsbh").equals(current.get("jsbh")) && exist.get("sm").equals(current.get("sm")) && exist.get("code").equals(current.get("code")) ) { exists = true; break; } } if (!exists) { toBeInserted.add(current); } querry 方法怎么写
时间: 2023-12-31 13:04:31 浏览: 174
根据代码中的 `jxMjKhTxService.query(current)`,看起来是使用某个服务类的 `query` 方法来查询数据的。这个方法应该会返回一个 `List<Map<String, Object>>` 类型的结果。具体实现会因为具体的服务类而异,但是一般的思路是通过数据库等持久化存储方式来查询数据。
如果你需要手写一个类似的查询方法,可以参考以下代码:
```java
public List<Map<String, Object>> query(Map<String, Object> conditions) {
// 假设该方法使用 JDBC 进行查询数据库
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
List<Map<String, Object>> results = new ArrayList<>();
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydatabase", "myuser", "mypassword");
StringBuilder sql = new StringBuilder("SELECT * FROM mytable WHERE 1=1");
List<Object> params = new ArrayList<>();
for (Map.Entry<String, Object> entry : conditions.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
if (value != null) {
sql.append(" AND ").append(key).append("=?");
params.add(value);
}
}
stmt = conn.prepareStatement(sql.toString());
for (int i = 0; i < params.size(); i++) {
stmt.setObject(i + 1, params.get(i));
}
rs = stmt.executeQuery();
ResultSetMetaData meta = rs.getMetaData();
int columnCount = meta.getColumnCount();
while (rs.next()) {
Map<String, Object> row = new HashMap<>();
for (int i = 1; i <= columnCount; i++) {
String columnName = meta.getColumnName(i);
Object value = rs.getObject(i);
row.put(columnName, value);
}
results.add(row);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return results;
}
```
上述代码是一个简单的使用 JDBC 进行查询的示例。其中,`conditions` 是一个 `Map<String, Object>` 类型的参数,用于指定查询条件。这个方法会根据 `conditions` 中的键值对来构造 SQL 语句,并通过 JDBC 执行查询操作。最终将查询结果封装成一个 `List<Map<String, Object>>` 类型的对象返回。
阅读全文