• jdbcTemplate的一些常用方法


    前言

    最近的项目中由于只进行查询,所以使用了jdbcTemplate来直接操作sql进行持久层的操作,初次接触jdbcTemplate,从最开始的什么都不知道到现在基本方法都大致知道什么意思,特此记录一下

    正文

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

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

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

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

    2. 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语句,第二个参数:你查询的结果的返回值类型,第三个参数是:你传入的参数
    3.  queryForList()

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

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

    4. queryForMap()

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

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

    5. 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());

    后记

    总的来说,jdbcTemplate对于查询来说,如果你对sql比较精通,使用起来非常方便,灵活。

  • 相关阅读:
    Qt中widget重新setParent需要注意的问题
    在有状态机下,写自动测试需要注意的问题
    C#获取当前路径的7种方法
    VS快捷键大全
    [WPF]设置背景色
    [WPF]建立自适应窗口大小布局的WinForm窗口
    [WPF]Slider控件常用方法
    [C#.NET]
    VB中的API详解
    VB6.0和VB.Net的函数等对照表
  • 原文地址:https://www.cnblogs.com/chenmc/p/9240091.html
Copyright © 2020-2023  润新知