mybatisplus拼接sql批量插入
时间: 2024-09-23 21:02:58 浏览: 111
在MyBatisPlus中,如果你想手动拼接SQL语句进行批量插入,虽然这不是推荐的最佳实践,但在某些特定场景下,如需要精确控制插入内容或者有性能考虑,你可以这样做。以下是一个示例:
首先,你需要创建一个字符串数组或列表,每个元素代表一行待插入的数据,格式通常是键值对形式:
```java
List<String> data = Arrays.asList(
"{id=1, name='张三', age=18}",
"{id=2, name='李四', age=20}"
);
```
然后,你可以构建一个包含所有数据的SQL INSERT语句:
```java
StringBuilder sqlBuilder = new StringBuilder();
sqlBuilder.append("INSERT INTO your_table (");
for (int i = 0; i < data.size(); i++) {
if (i > 0) {
sqlBuilder.append(", ");
}
sqlBuilder.append("`").append(data.get(i).split("=")[0]).append("`");
if (i == data.size() - 1) { // 结束行
sqlBuilder.append(" VALUES (");
} else {
sqlBuilder.append(",");
}
sqlBuilder.append("\'" + data.get(i).split("=")[1].replace("'", "\\'") + "\'");
}
sqlBuilder.append(")");
String sql = sqlBuilder.toString();
```
最后,通过JDBC执行这个拼接好的SQL语句:
```java
Connection conn = dataSource.getConnection(); // 获取数据库连接
Statement stmt = conn.createStatement();
stmt.execute(sql);
stmt.close();
conn.close();
```
但是,这种方式存在SQL注入风险,且难以维护。如果可能,还是建议使用MyBatisPlus的`batchSave()`方法配合动态数据绑定,更安全、更易于管理。
阅读全文
相关推荐

















