JdbcTemplate接收List<T>作为参数进行查询

 

@Autowired
private JdbcTemplate mdcJdbcTemplate;

//普通参数查询
public void normalQuery(String param1, String param2) {
      String sql = "SELECT name,sex FROM table_name WHERE colName1 = ? AND colName2 = ?";
      
      //执行sql 并循环遍历每一行的结果,逻辑自行操作
      mdcJdbcTemplate.query(sql, new Object[]{param1, param2}, (rs, i)->{
           //编辑rs
           return null;
      });  
}


//List<T> 作为参数
public void listQuery(List<String> paramList) {
      //查询语句
      String sql = "SELECT * FROM table_name WHERE id in (:ids)";
      //设置参数 用map接收
      Map<String, Object> paramMap = new HashMap<String, Object>();
      //这里的ids 必须和sql语句里的参数ids 名称一致
      paramMap.put("ids", paramList);

      //这里改成用 NamedParameterJdbcTemplate 进行查询
      NamedParameterJdbcTemplate jdbc = new NamedParameterJdbcTemplate(mdcJdbcTemplate);
      //执行sql 并循环遍历每一行的结果,逻辑自行操作
      jdbc.query(sql, paramMap , (rs, i)->{
           //编辑rs
           return null;
      });  
}


//既有单个参数也有list
public void listQuery(String param1, List<String> paramList) {
    //查询语句
      String sql = "SELECT * FROM table_name WHERE id in (:ids) AND type = :param1";
      //设置参数 用map接收
      Map<String, Object> paramMap = new HashMap<String, Object>();
      //这里的ids 必须和sql语句里的参数ids 名称一致
      paramMap.put("ids", paramList);
      paramMap.put("param1", param1);

      //这里改成用 NamedParameterJdbcTemplate 进行查询
      NamedParameterJdbcTemplate jdbc = new NamedParameterJdbcTemplate(mdcJdbcTemplate);
      //执行sql 并循环遍历每一行的结果,逻辑自行操作
      jdbc.query(sql, paramMap , (rs, i)->{
           //编辑rs
           return null;
      });  
}

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在SpringBoot框架下,将MySQL数据库数据放到List<List<String>>容器中,通常是通过JdbcTemplate来完成的。JdbcTemplate是Spring提供的一个用于访问关系型数据库的工具类,它封装了JDBC操作,提供了更加简单和方便的API。 举个例子,假设我们有一个user表,表结构如下: ``` CREATE TABLE user ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50) NOT NULL, age INT NOT NULL ); ``` 我们可以通过如下代码将user表的数据放到List<List<String>>容器中: ``` @Autowired private JdbcTemplate jdbcTemplate; public List<List<String>> getUsers() { List<List<String>> users = new ArrayList<>(); jdbcTemplate.query("SELECT * FROM user", rs -> { List<String> row = new ArrayList<>(); row.add(rs.getString("id")); row.add(rs.getString("name")); row.add(rs.getString("age")); users.add(row); }); return users; } ``` 在上面的代码中,我们使用JdbcTemplate的query方法执行查询语句,将查询结果封装成一个List<List<String>>容器返回。在query方法中,我们需要传入一个ResultSetExtractor回调函数,该函数会被JdbcTemplate自动调用,用于处理查询结果集。在回调函数中,我们可以通过ResultSet对象获取每一行数据,并将其封装成一个List<String>对象,再将该对象添加到List<List<String>>容器中。最终,我们将所有行的数据都添加到容器中后,将容器返回即可。 需要注意的是,在使用JdbcTemplate时,我们需要在SpringBoot的配置文件中配置数据源和JdbcTemplate的相关信息,以便于JdbcTemplate能够正确地连接和操作数据库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值