jdbcTemplate对表格进行增删改查操作

本文介绍了如何在Spring框架中使用jdbcTemplate进行数据库的增删改查操作。首先,详细说明了导入所需jar包,配置DriverManagerDataSource,以及利用JdbcTemplate的update方法执行增删改操作。接着,讲解了查询方法,包括查询单个值、一条记录、所有数据以及条件查询。此外,还涵盖了配置c3p0连接池的步骤,并在DAO层展示了jdbcTemplate的注入和使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spring的jdbcTemplate操作

  • spring框架是一站式框架
    • 在dao层,使用jdbcTemplate
    • 这里写图片描述
  • jdbcTemplate对jdbc进行分装

使用jdbcTemplate进行增删改操作

  • 导入jdbcTemplate使用的jar包这里写图片描述
    • ==由于要连接数据库,一定要导入驱动jar包==
  • 使用spring提供的DriverManagerDataSource类,设置数据库信息
  • 创建JdbcTemplate对象,调用update方法实现增删改操作
  • jdbcTemplate操作的是已经存在的表格的增删改查
  • 添加代码:
@Test
    public void add() {
//      设置数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/mydb1");
        dataSource.setUsername("root");
        dataSource.setPassword("123");

//      创建JdbcTempalte对象,设置数据源
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
//      sql语句
        String sql = "insert into user value(?,?)";
//      执行添加方法,返回影响的行数
        int update = jdbcTemplate.update(sql, "小明","23岁");
        System.out.println(update);
    }
  • 修改的代码:
@Test
    public void update() {
//      设置数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/mydb1");
        dataSource.setUsername("root");
        dataSource.setPassword("123");

//      创建JdbcTempalte对象,设置数据源
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
//      sql语句
        String sql = "update user set age=? where username=?";
//      执行方法,返回影响的行数
        int update = jdbcTemplate.update(sql, "2355","小明");
        System.out.println(update);
    }
  • 删除的代码:
@Test
    public void update() {
//      设置数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/mydb1");
        dataSource.setUsername("root");
        dataSource.setPassword("123");

//      创建JdbcTempalte对象,设置数据源
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
//      sql语句
        String sql = "delete from user where username=?";
//      执行方法,返回影响的行数
        int update = jdbcTemplate.update(sql,"小明");
        System.out.println(update);
    }

jdbcTemplate 查询的方法

  • 查询单个值,使用queryForObject方法,第一参数传递sql模板,第二个参数传递返回值的类型image
@Test
    public void query1() {
//      设置数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/mydb1");
        dataSource.setUsername("root");
        dataSource.setPassword("123");

//      创建JdbcTempalte对象,设置数据源
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
//      sql语句
        String sql = "select count(*) from user;";
//      执行方法
        Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
        System.out.println(count);
    }
  • 查询一条记录,将结果封装到对象中
    • 使用jdbcTemplate中的这里写图片描述
@Test
    public void query2() {
//      设置数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/mydb1");
        dataSource.setUsername("root");
        dataSource.setPassword("123");

//      创建JdbcTempalte对象,设置数据源
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
//      sql语句
        String sql = "select * from user where username=?";
//      执行方法
        User bean = jdbcTemplate.queryForObject(sql, new RowMapper<User>() {


            public User mapRow(ResultSet result, int arg1) throws SQLException {
//              从结果集中获取结果,由于只有一条记录,不需要遍历
                String username = result.getString("username");
                String age = result.getString("age");
//              将结果封装到对象中
                User user = new User();
                user.setUsername(username);
                user.setAge(age);

                return user;
            }

        }, "小明");
        System.out.println(bean);
    }
  • 查询全部数据
    • 使用jdbcTemplate中的这里写图片描述
    • 如果要根据条件查询部分数据使用以下方法这里写图片描述
    @Test
    public void query3() {
//      设置数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/mydb1");
        dataSource.setUsername("root");
        dataSource.setPassword("123");

//      创建JdbcTempalte对象,设置数据源
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
//      sql语句
        String sql = "select * from user";
//      查询全部数据返回一个list
          List<User> list = jdbcTemplate.query(sql, new RowMapper<User>() {


            public User mapRow(ResultSet result, int arg1) throws SQLException {

//              从结果集中获取结果
                String username = result.getString("username");
                String age = result.getString("age");
//              将结果封装到对象中
                User user = new User();
                user.setUsername(username);
                user.setAge(age);

                return user;
            }

        });
          System.out.println(list);

    }

spring配置c3p0连接池

  • 导入c3p0连接池jar包这里写图片描述
  • 在spring的配置文件中进行配置这里写图片描述
  • 测试代码:这里写图片描述

在dao中使用jdbcTemplate

  • 在service中注入dao这里写图片描述
  • 在dao中注入jdbcTemplate这里写图片描述
  • 在jdbcTemplate注入dataSource
    这里写图片描述
  • 测试:这里写图片描述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值