zoukankan      html  css  js  c++  java
  • 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比较精通,使用起来非常方便,灵活。

  • 相关阅读:
    西服定制_男装定制_礼服定制【乐裁】专业首选的全国西服定制商城
    简介 | 北京大学校友创业联合会
    脱颖而出_百度百科
    时装剧
    高龄“潮男”优衣库老板柳井正_榜样_奢华主义_YOKA时尚网
    [女装纸样] 《无私奉献》:看数据知道人的体型--看身高体重知道人体数据---个人绝技不断更新
    瑞邦洋服·私人定制 » 瑞邦头等舱
    爱上MVC~AuthorizeAttribute验证不通过如何停止当前上下文
    Js~(function(){})匿名自执行方法的作用
    Js~动态判断PC和手机浏览器
  • 原文地址:https://www.cnblogs.com/chenmc/p/9240091.html
Copyright © 2011-2022 走看看