zoukankan      html  css  js  c++  java
  • 在springboot中使用jdbcTemplate(3)

    转自:https://www.cnblogs.com/qingshanli/p/11296048.html#_label3

    获取count、sum等聚合函数返回的唯一值

    /**
         * 只能接受String,Integer这种单列类型的实体,否则汇报异常
         */
        @Test
        public void queryForCount1() {
            String sql = "select count(1) from pass_user where id > ?";
            Integer count = jdbcTemplate.queryForObject(sql, Integer.class, 300000);
            LOGGER.info("[" + Thread.currentThread().getStackTrace()[1].getMethodName() + "] {}", count);
        }

    获取单个记录的某一列值

    /**
         * 只能接受String,Integer这种单列类型的实体,否则汇报异常
         */
        @Test
        public void queryForObject1() {
            String sql = "select NAME from pass_user where id = ?";
            String name = jdbcTemplate.queryForObject(sql, String.class, 30);//查询结果空集时会报EmptyResultDataAccessException异常
            LOGGER.info("[" + Thread.currentThread().getStackTrace()[1].getMethodName() + "] {}", name);
        }

    获取单个记录的所有列值

    /**
         * 可以自动进行驼峰匹配
         */
        @Test
        public void queryForObject2() {
            String sql = "select * from pass_user where id = ?";
            RowMapper<PassUser> rowMapper = new BeanPropertyRowMapper<>(PassUser.class);
            PassUser passUser = jdbcTemplate.queryForObject(sql, rowMapper, 180);//查询结果空集时会报EmptyResultDataAccessException异常
            LOGGER.info("[" + Thread.currentThread().getStackTrace()[1].getMethodName() + "] {}", passUser);
        }

    获取多个记录的某一列值

    /**
         * 实体类需要实现接口,覆写方法
         */
        @Test
        public void queryForList1() {
            String sql = "select name from pass_user where id < ?";
            List<String> names = jdbcTemplate.queryForList(sql, String.class, 50);//只能查询单列属性值集合
            LOGGER.info("[" + Thread.currentThread().getStackTrace()[1].getMethodName() + "] {}", names);
        }

    获取多个记录的所有列值

    /**
         * 实体类需要实现接口,覆写方法
         */
        @Test
        public void queryForList2() {
            String sql = "select * from pass_user where id < ?";
            List<UserEntity> userEntityList = jdbcTemplate.query(sql, new UserEntity(), 0);
            LOGGER.info("[" + Thread.currentThread().getStackTrace()[1].getMethodName() + "] {}", userEntityList);
        }

     转自:https://blog.csdn.net/weixin_40001125/article/details/88538576

    JdbcTemplate查询-BeanPropertyRowMapper返回自定义对象

    // query使用BeanPropertyRowMapper做映射返回对象
    public static void test07() throws Exception {
        JdbcTemplate jdbcTemplate = new JdbcTemplate(DataSourceUtils.getDataSource());
    
        // 查询数据的SQL语句
        String sql = "SELECT * FROM product;";
        List<Product> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Product.class));
    
        for (Product product : list) {
            System.out.println(product);
        }
    }

    JdbcTemplate查询-RowMapper返回自定义对象

    // query使用rowMap做映射返回一个对象
    public static void test06() throws Exception {
        JdbcTemplate jdbcTemplate = new JdbcTemplate(DataSourceUtils.getDataSource());
    
       // 查询数据的SQL语句
       String sql = "SELECT * FROM product;";
    
       List<Product> query = jdbcTemplate.query(sql, new RowMapper<Product>() {
          @Override
          public Product mapRow(ResultSet arg0, int arg1) throws SQLException {
             Product p = new Product();
             p.setPid(arg0.getInt("pid"));
             p.setPname(arg0.getString("pname"));
             p.setPrice(arg0.getDouble("price"));
             return p;
          }
       });
    
       for (Product product : query) {
          System.out.println(product);
       }
    }

    JdbcTemplate查询-queryForList返回一个List集合

    public static void test05() throws Exception {
       String sql = "SELECT * FROM product WHERE pid<?;";
       JdbcTemplate jdbcTemplate = new JdbcTemplate(DataSourceUtils.getDataSource());
       List<Map<String, Object>> list = jdbcTemplate.queryForList(sql, 8);
       for (Map<String, Object> map : list) {
          System.out.println(map);
       }
    }

    JdbcTemplate查询-queryForMap返回一个Map集合

    public static void test04() throws Exception {
       String sql = "SELECT * FROM product WHERE pid=?;";
       JdbcTemplate jdbcTemplate = new JdbcTemplate(DataSourceUtils.getDataSource());
       Map<String, Object> map = jdbcTemplate.queryForMap(sql, 6);
       System.out.println(map);
    }

    JdbcTemplate查询-queryForObject返回String

    public static void test03() throws Exception {
       String sql = "SELECT pname FROM product WHERE price=7777;";
       JdbcTemplate jdbcTemplate = new JdbcTemplate(DataSourceUtils.getDataSource());
       String str = jdbcTemplate.queryForObject(sql, String.class);
       System.out.println(str);
    }
  • 相关阅读:
    JavaScript 深入之从原型到原型链
    js重写内置的call、apply、bind
    js中flat方法的实现原理
    【我的物联网成长记6】由浅入深了解NB-IoT【华为云技术分享】
    GO富集分析示例【华为云技术分享】
    华为“方舟编译器”到底是啥?一文看懂TA如何让手机性能再突破【华为云技术分享】
    无码系列-7-代码的语文修养_上篇【华为云技术分享】
    机器学习笔记(一)----基本概念【华为云技术分享】
    性能达到原生 MySQL 七倍,华为云 Taurus 技术解读【华为云技术分享】
    【立即报名】人脸情绪识别案例分享【华为云技术分享】
  • 原文地址:https://www.cnblogs.com/wangbin2188/p/14900218.html
Copyright © 2011-2022 走看看