spring jdbc 绑定变量在 sql in 语句解决方案
·
spring jdbc 绑定变量在 sql in 语句解决方案
Pom部分:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.2</version>
</dependency>
Controller部分:
import java.io.PrintWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@Autowired
MyDao myDao;
@GetMapping("/delete")
public void test(HttpServletRequest request) throws Exception {
String ids = request.getParameter("ids");
return myDao.deleteInBatch(ids);
}
}
Dao部分:
import java.util.ArrayList;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.stereotype.Component;
@Component
public class MyDao {
@Autowired
@Qualifier("Dbcp2DataSource")
private DataSource dataSource;
public int deleteInBatch(String ids) {
MapSqlParameterSource param = new MapSqlParameterSource();
NamedParameterJdbcTemplate npjt = new NamedParameterJdbcTemplate(dataSource);
String sql = "DELETE FROM test WHERE id IN (:ids)";
String[] split = ids.split(",");
ArrayList<Long> idsList = new ArrayList<Long>();
for (int i = 0; i < split.length; i++) {
idsList.add(Long.parseLong(split[i]));
}
param.addValue("ids", idsList);
int num = npjt.update(sql, param);
return num;
}
}
DataSource部分:
import javax.sql.DataSource;
import org.apache.commons.dbcp2.BasicDataSource;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyDataSource {
@Bean("MyDbcp2DataSource")
@ConfigurationProperties(prefix = "my.datasource")
public DataSource getDataSource() {
return DataSourceBuilder.create().type(BasicDataSource.class).build();
}
}
Properties配置:
customize.datasource.url=jdbc:mysql://localhost:3306/szcste?serverTimezone=UTC
customize.datasource.username=root
customize.datasource.password=
customize.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)