jdbcTemplate类常用方法

霄
2023-07-23 / 0 评论 / 36 阅读 / 正在检测是否收录...

网站: https://blog.csdn.net/lhb0101/article/details/84914376

 https://blog.csdn.net/qq_41154882/article/details/102881218?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm=1001.2101.3001.4242

1.JdbcTemplate方法介绍

1、execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;

       Execute、executeQuery、executeUpdate

2、update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句 SQL SERVCER(GO SQL语句 GO) ;

3、query方法及queryForXXX方法:用于执行查询相关语句;

4、call方法:用于执行存储过程、函数相关语句。

2.jdbcTemplate方法常用的大约有这个几个

1. queryForInt()/queryForLong()
2. queryForObject()
3. queryForList()
4. queryForMap()
5. query()
  1. queryForInt()/queryForLong()

使用queryForInt()主要是为了获取数据库中记录总数,获取指定条件的记录数等,不需要对应列名,只需要返回一个数据即可.queryForLong()是同理的.

如果你想查询到结果并命名的话,你可以使用queryForMap(),查询到的值更改列名为别名,然后使用map.get("别名")来获取.

  1. queryForObject()

其实本质上queryForObject()和queryForInt()是一直的,只不过可以返回一个非int的值,比如你查询指定id的对象的某一个属性,可以使用Object进行接收,而不能使用int来接收.

(6-25更新)举个例子:

String sql = "SELECT name FROM user WHERE id = ?";
return jdbcTemplate.queryForObject(sql,String.class,id);  
//需要注意的是:第一个参数:SQL语句,第二个参数:你查询的结果的返回值类型,第三个参数是:你传入的参数
  1.  queryForList()

在我们需要得到一个数据集合的时候,我们通常使用queryForList()进行。返回的结果是一个List结构的集合。其中一个Map代表了一行数据,使用列名作为key,使用值作为value。

并且queryForList()会默认自动封装。不需要手动进行数据封装。

  1. queryForMap()

queryForMap()是查询一条数据的时候使用的封装。将列名作为key,值作为value。封装成一个map返回结果。

需要特别注意的是:因为queryForMap()是要求必须要有结果集的,如果查询出的结果是null,则会报错!如果不确定是否有结果集,请使用query()进行查询,然后获取数据。(7-4更新)

  1. query()

query()进行查询的时候,必须自行对结果集进行取出并封装。

优点是:数据更加灵活,如果你想在结果集中加上一个固定值作为标记,甚至自己自定义key的值,对value的值进行计算等等,都可以,非常灵活。

缺点是:你需要手动进行封装数据。

代码如下:

 StringBuilder sql = new StringBuilder();
        sql.append("SELECT *FROM USER");
 List<Object> paramList = new ArrayList<>();
if (!StringUtils.isEmpty(ID)) {
            sql.append(" AND TI.ID = ? ");
            paramList.add(ID);
        }
return this.jdbcTemplate.query(sql.toString(),
                (rs, rowNum) -> {
                    Map<String, Object> dataMap = new HashMap<>();
                    dataMap.put("L1", rs.getString("L1"));
                    dataMap.put("L2", rs.getInt("L2") + 100); //对查询出来的结果进行计算,修改等等操作
                    dataMap.put("L3", 1);    //我添加了一个固定列到结果集中
                    return dataMap;
                }, paramList.toArray());

 

扫描二维码,在手机上阅读!
1

评论

博主关闭了当前页面的评论