JDBCTemlate

Spring框架对JDBC提供的简单封装,它提供了一个JDBCTemplate对象来简化了JDBC的开发

一、使用步骤:

1、导入jar包

包括着五个,还有数据库的jar包,和数据库连接池的包,如果使用Druid数据库连接池的话总共有七个jar包
在这里插入图片描述

2、创建JdbcTemplate对象,该对象参数传递DataSource类型的参数

JdbcTemplate template = new JdbcTemplate(ds)

3、调用JdbcTemplate的方法来完成CRUD的操作(增删改查的方法)

  • update():执行增删查该语句
  • queryForMap():查询结果将结果集封装为map集合
  • queryForList():查询结果将结果集封装为list集合
  • query():查询结果,将结果封装为JavaBean对象

query()中的第二个参数,我们一般使用BeanPropertyRowMapper实现类来完成数据到javabean的封装

举例示范

在这里插入图片描述
控制台打印结果为
在这里插入图片描述

数据修改成功
这里注意JDBCUtils2是在即写的JDBC工具类;还要注意我们不需要关闭资源,JDBCTemlate会默认帮我们关闭资源

二、练习

  1. 修改表中的zaoliu的密码为12
  2. 添加一条记录
  3. 删除添加的记录
  4. 查询id为1的记录,将其封装为Map集合
  5. 查询所有记录,将其封装为list集合
  6. 查询所有记录,将其封装为Emp对象的List集合

表中数据为
在这里插入图片描述

字段描述为
在这里插入图片描述

首先将表对象封装出来

package domain;

public class userinfo {
    private String username;
    private String password;

    public userinfo() {
    }

    public userinfo(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "userinfo{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

这里我们使用JUnit单元测试来执行我们的案例需求

1、修改表中的zaoliu的密码为12

在这里插入图片描述
控制台输出
在这里插入图片描述
查看表得到
在这里插入图片描述
说明修改成功

2、添加一条记录

在这里插入图片描述
控制台结果为
在这里插入图片描述
查询表的到的结果为
在这里插入图片描述

3、删除添加的记录

在这里插入图片描述
在这里插入图片描述

4、查询id为1的记录,将其封装为Map集合

在这里插入图片描述
注意这个方法queryForMap()这个方法的结果集长度只能为1,将查询的数据以键值对的形式保存到map集合当中

如果查询了两个信息则会报错
如下图:
在这里插入图片描述

5、查询所有的记录将其封装为一个list集合

在这里插入图片描述
将查询出来的每一行的信息都按照键值对的方式存储到map集合当中,然后把多个map集合存储到list集合当中

6、查询所有记录,将其封装为userinfo对象然后将其装入list集合

我们可以自己实现封装的过程,只需要使用匿名内部类重写mapRow方法,但是我们并不建议这样做,因为这样还是很负载
在这里插入图片描述在这里插入图片描述
建议这样进行查询,传入的参数第一个是sql,第二个是new BeanPropertyRowMapper<传入想要封装类型>(想要封装的类.class)
在这里插入图片描述
我们需要注意一个问题:如果表中的数据有null,那么我们定义JavaBean的时候不能使用基本数据类型,因为基本数据类型,不能等于null,所以上面的例子中的javabean的定义是不太严谨的,最好使用包装类进行定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值