Spring Boot 整合JdbcTemplate(附多种方法解析)

🎈博客主页:🌈我的主页🌈
🎈欢迎点赞 👍 收藏 🌟留言 📝 欢迎讨论!👏
🎈本文由 【泠青沼~】 原创,首发于 CSDN🚩🚩🚩
🎈由于博主是在学小白一枚,难免会有错误,有任何问题欢迎评论区留言指出,感激不尽!🌠个人主页



Spring对数据库的操作在jdbc上面做了更深层次的封装,而JdbcTemplate便是Spring提供的一个操作数据库的便捷工具。我们可以借助JdbcTemplate来执行所有数据库操作,例如插入,更新,删除和从数据库中检索数据,并且有效避免直接使用jdbc带来的繁琐编码

🌟 一、整合POM.XML文件

不仅要加入jdbc依赖,还要加入数据库驱动依赖(这里加入mysql)

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

🌟 二、测试实体类

public class User {
    private Integer id;
    private String username;
    private String password;
    GET和SET方法省略...
}

🌟 三、测试业务类

🌟🌟 3.1、注册JdbcTemplate

 @Autowired
 JdbcTemplate jdbcTemplate;

🌟🌟 3.2、增加方法(两种不同用法)

    public int adduser(User user){
        int i = jdbcTemplate.update("insert into user (username,password)values (?,?)", user.getUsername(), user.getPassword());
        return i;
    }

下方的方法通过GeneratedKeyHolder可以拿到在插入数据库数据之后,数据库分配给此项数据的ID,并返回给后台

public int adduser2(User user){
        GeneratedKeyHolder keyHolder = new GeneratedKeyHolder();
        int update = jdbcTemplate.update(new PreparedStatementCreator() {
            @Override
            public PreparedStatement createPreparedStatement(Connection con) throws SQLException {
                PreparedStatement ps = con.prepareStatement("insert into user (username,password)values (?,?)", Statement.RETURN_GENERATED_KEYS);
                ps.setObject(1, user.getUsername());
                ps.setObject(2, user.getPassword());
                return ps;
            }
        }, keyHolder);
        user.setId(keyHolder.getKey().intValue());
        return update;
    }

🌟🌟 3.3、删除方法

    public int deletebyid(int id){
        int update = jdbcTemplate.update("delete from user where id=?", id);
        return update;
    }

🌟🌟 3.4、修改方法

    public int updatebyid(int id,String username){
        int update = jdbcTemplate.update("update user set username=? where id=?", username,id );
        return update;
    }

🌟🌟 3.5、查询方法(两种实用方法)

方法比较繁琐,但是灵活性较高,对属性的命名没有较高的要求

    public List<User> getAll(){
        List<User> list = jdbcTemplate.query("select * from user", new RowMapper<User>() {
            @Override
            public User mapRow(ResultSet rs, int rowNum) throws SQLException {
                User user = new User();
                String id = rs.getString("id");
                String username = rs.getString("username");
                String password = rs.getString("password");
                user.setUsername(username);
                user.setId(Integer.valueOf(id));
                user.setPassword(password);
                return user;
            }
        });
        return list;
    }

方法简单,便捷高效,但是对数据库表列名和实体类的属性名字有较高的要求,需要两者名字必须一致

    public List<User> getAll(){
        List<User> list = jdbcTemplate.query("select * from user", new RowMapper<User>() {
            @Override
            public User mapRow(ResultSet rs, int rowNum) throws SQLException {
                User user = new User();
                String id = rs.getString("id");
                String username = rs.getString("username");
                String password = rs.getString("password");
                user.setUsername(username);
                user.setId(Integer.valueOf(id));
                user.setPassword(password);
                return user;
            }
        });
        return list;
    }

🌟 四、总结

在大部分情况下,我们都会直接使用更加强大的持久化框架来访问数据库,比如MyBatis、Hibernate或者Spring Data JPA,我们这里讲解JdbcTemplate的整合,只是告诉大家有这么一种操作数据库的方式

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值