SpringBoot整合JdbcTemplate(五)中

简介: SpringBoot整合JdbcTemplate(五)

二.二 增删改 基本用法


均省略 UserService接口中的方法。


20210424203531868.png


增,删,改,调用的都是 update 方法, 可以进行单条数据更新,也可以进行批量数据的更新。


二.二.一 添加数据


二.二.一.一 测试方法


   @Test
    public void addTest(){
        //1. 构建对象
        User user=new User();
        user.setName("欢欢");
        user.setAge(22);
        user.setSex("女");
        user.setDescription("一个非常可爱的女孩纸");
        //2. 添加方法
        userService.addUser(user);
    }


二.二.一.二 实现方法


 @Override
    public void addUser(User user) {
        //1.sql语句
        String sql="insert into user(name,sex,age,description) values(?,?,?,?) ";
        //2.调用 update语句,执行方法
        jdbcTemplate.update(sql,user.getName(),user.getSex(),user.getAge(),
                user.getDescription());
    }


二.二.一.三 查看数据结果


20210424203545124.png


可以发现,数据被插入到数据库里面了。


二.二.二 修改数据


二.二.二.一 测试方法


   @Test
    public void updateTest(){
        //1. 构建对象
        User user=new User();
        user.setId(2);
        user.setName("欢欢");
        user.setDescription("岳泽霖最好的朋友");
        //2. 修改方法
        userService.updateUser(user);
    }


二.二.二二 实现方法


 @Override
    public void updateUser(User user) {
        //1.sql语句
        String sql="update user set name=?,description=? where id=?  ";
        //2.调用 update语句,执行方法
        jdbcTemplate.update(sql,user.getName(),user.getDescription(),user.getId());
    }


二.二.二.三 查看数据结果


20210424203556566.png


数据修改成功。


二.二.三 删除数据


老蝴蝶不想删除 欢欢这条数据,所以新添加一条 岳泽霖的数据,将岳泽霖进行删除,欢欢保留在数据库里面。


2021042420360871.png


二.二.三.一 测试方法


 @Test
    public void deleteTest(){
        userService.deleteUser(3);
    }


二.二.三.二 实现方法


@Override
    public void deleteUser(Integer id) {
        String sql="delete from user where id=?";
        jdbcTemplate.update(sql,id);
    }


二.二.三.三 查看数据结果


20210424203620424.png


数据删除成功。


二.二.四 批量数据


二.二.四.一 测试方法


  @Test
    public void batchAddTest(){
        //1. 构建对象
        User user=new User();
        user.setName("小欢欢");
        user.setAge(22);
        user.setSex("女");
        user.setDescription("一个小坏蛋");
        User user1=new User();
        user1.setName("小泽霖");
        user1.setAge(25);
        user1.setSex("男");
        user1.setDescription("一个大坏蛋");
        //2. 放置到集合里面
        List<User> userList=new ArrayList<>();
        userList.add(user);
        userList.add(user1);
        userService.batchAddUser(userList);
    }


二.二.四.二 实现方法


   @Override
    public void batchAddUser(List<User> userList) {
        //1.sql语句
        String sql="insert into user(name,sex,age,description) values(?,?,?,?) ";
        //2. 构建参数集合信息
        List<Object[]> objects=new ArrayList<>();
        for(User user:userList){
            Object[] obj=new Object[4];
            obj[0]=user.getName();
            obj[1]=user.getSex();
            obj[2]=user.getAge();
            obj[3]=user.getDescription();
            objects.add(obj);
        }
        //3.调用 batchUpdate 批量更新,执行方法
        jdbcTemplate.batchUpdate(sql,objects);
    }


二.二.五.三 查看数据结果


20210424203822363.png


数据批量添加成功,批量修改与批量删除,也是相同的用法。


三 查询的基本用法


新建一个 QueryJdbcApplicationTests 测试类,用于测试查询的相关方法。


三.一 queryForObject 方法


三.一.一 方法重载


140a5f9a254cb6b81481f372d520ae84.png


通常使用的是


<T> T queryForObject(String sql, RowMapper<T> rowMapper, @Nullable Object... args)


方法


三.一.二 举例,根据 Id进行查询单个对象信息


三.一.二.一 测试方法


   @Test
    public void queryByIdTest(){
        User user=userService.queryById(2);
        log.info(user);
    }


三.一.二.二 实现方法


 @Override
    public User queryById(Integer id) {
        String sql="select id,name,sex,age,description from user where id=?";
        //用 RowMapper 进行封装对象信息
        User user=jdbcTemplate.queryForObject(sql, new RowMapper<User>() {
            @Override
            public User mapRow(ResultSet resultSet, int num) throws SQLException {
                //根据resultSet 表示结果集, num 表示索引行
                User tempUser=new User();
                tempUser.setId(resultSet.getInt("id"));
                tempUser.setName(resultSet.getString("name"));
                tempUser.setSex(resultSet.getString("sex"));
                tempUser.setAge(resultSet.getInt("age"));
                tempUser.setDescription(resultSet.getString("description"));
                return tempUser;
            }
        },id);
        jdbcTemplate.queryForObject
        return user;
    }


三.一.二.三 查看数据结果


4f71c422aa872e939346bd9c40e6e4ee.png


三.二 query方法


三.二.一 方法重载


91ee4796c6cc62449a71a78e5d6d5586.png


通常使用的是


 <T> List<T> query(String sql, RowMapper<T> rowMapper, @Nullable Object... args)


方法。


三.二.二 举例,查询全部数据


三.二.二.一 测试方法


@Test
    public void queryAllTest(){
        List<User> userList=userService.queryForAll();
        userList.forEach(n->log.info(n));
    }


三.二.二.二 实现方法


    @Override
    public List<User> queryForAll() {
        String sql="select id,name,sex,age,description from user ";
        List<User> userList=jdbcTemplate.query(sql, new RowMapper<User>() {
            @Override
            public User mapRow(ResultSet resultSet, int num) throws SQLException {
                //根据resultSet 表示结果集, num 表示索引行
                User tempUser=new User();
                tempUser.setId(resultSet.getInt("id"));
                tempUser.setName(resultSet.getString("name"));
                tempUser.setSex(resultSet.getString("sex"));
                tempUser.setAge(resultSet.getInt("age"));
                tempUser.setDescription(resultSet.getString("description"));
                return tempUser;
            }
        });
        return userList;
    }


三.二.二.三 查看数据结果


5efbb20349f244780513e6459673e9b0.png



相关文章
|
SQL Java 关系型数据库
SpringBoot从入门到精通(三十)如何使用JdbcTemplate操作数据库?
前面介绍了Mybatis数据持久化框架,Mybatis虽然功能强大,但是,使用起来还是比较复杂的。所以接下来介绍一个简单的数据持久化框架——JdbcTemplate。
SpringBoot从入门到精通(三十)如何使用JdbcTemplate操作数据库?
|
10月前
|
Java 数据库连接 数据库
SpringBoot整合持久层技术之搭建JDBCTemplate项目实战
现在有了MyBatis之后很少人使用JDBCTemplate来整合项目了,要么就是JPA技术,要么就是Mybatis来操作数据库,今天我搭建一个springboot的template项目,看看其和JPA、Mybatis有什么不同的地方,方便大家一起学习。
50 0
|
1月前
|
Java 关系型数据库 MySQL
Spring Boot使用JdbcTemplate操作mysql数据库实战(附源码 超详细)
Spring Boot使用JdbcTemplate操作mysql数据库实战(附源码 超详细)
52 0
|
7月前
|
Java 数据库连接 测试技术
微服务技术系列教程(03) - SpringBoot - 整合各种数据源(JdbcTemplate、MyBatis、JPA)
微服务技术系列教程(03) - SpringBoot - 整合各种数据源(JdbcTemplate、MyBatis、JPA)
37 0
|
10月前
|
Oracle NoSQL 关系型数据库
SpringBoot-13-使用JdbcTemplate链接Mysql数据库
在企业项目开发者,数据库的使用是必不可少的一部分,常用的数据库有mysql、oracle、sqlserver、redis等,我们接下来的几章会介绍SpringBoot中如何使用数据库,本章就介绍使用JdbcTemplate链接mysql。
91 0
|
XML Java 关系型数据库
SpringBoot 整合 JdbcTemplate|学习笔记
快速学习 SpringBoot 整合 JdbcTemplate
81 0
SpringBoot 整合 JdbcTemplate|学习笔记
|
Java 关系型数据库 MySQL
SpringBoot整合JdbcTemplate连接Mysql
SpringBoot整合JdbcTemplate连接Mysql
136 0
|
SQL Java
SpringBoot高级篇JdbcTemplate之数据更新与删除
前面介绍了JdbcTemplate的插入数据和查询数据,占用CURD中的两项,本文则将主要介绍数据更新和删除。从基本使用上来看,姿势和前面的没啥两样
821 0
SpringBoot高级篇JdbcTemplate之数据更新与删除
|
Java
SpringBoot整合JdbcTemplate
SpringBoot整合JdbcTemplate
106 0
|
Java 关系型数据库 MySQL
springboot学习-使用JdbcTemplate操作MySQL数据库
springboot学习-使用JdbcTemplate操作MySQL数据库
249 0
springboot学习-使用JdbcTemplate操作MySQL数据库