在springboot中使用jdbcTemplate

Posted Mars.wang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在springboot中使用jdbcTemplate相关的知识,希望对你有一定的参考价值。

转自: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);
    }

 

以上是关于在springboot中使用jdbcTemplate的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot使用JdbcTemplate

springboot编写持久化接口之集成jdbctemplate

springboot配置多数据源(JdbcTemplate方式)

SpringBoot使用JdbcTemplate

企业分布式微服务云SpringCloud SpringBoot mybatis Spring Boot中使用JdbcTemplate访问数据库

spring boot中使用JdbcTemplate