Spring中的JdbcTemplate使用(增删查改)

Spring中的JdbcTemplate使用(增删查改)

概述

JdbcTemplate是spring框架提供的一个对象,用来对原始的jdbc进行简单封装。与数据库进行交互,实现对表的CRUD(增删查改)操作。

数据库准备,创建一个表

在这里插入图片描述

我的表名chat_user

1.新建工程

也可以使用Maven工程,我用这个是懒得导入依赖,现成的包直接复制黏贴
也可以使用Maven工程,我用这个是懒得导入依赖,现成的包直接复制黏贴

导入jar包

WEB-INF下新建一个lib文件夹用来存放jar包
jar包
tx,test,jabc,mysql四个必须有

创建实体类

package com.entity;

public class User {
    private String username;
    private String password;
    private String email;


    public User() {
    }

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

    /**
     * 获取
     * @return username
     */
    public String getUsername() {
        return username;
    }

    /**
     * 设置
     * @param username
     */
    public void setUsername(String username) {
        this.username = username;
    }

    /**
     * 获取
     * @return password
     */
    public String getPassword() {
        return password;
    }

    /**
     * 设置
     * @param password
     */
    public void setPassword(String password) {
        this.password = password;
    }

    /**
     * 获取
     * @return email
     */
    public String getEmail() {
        return email;
    }

    /**
     * 设置
     * @param email
     */
    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return "User{username = " + username + ", password = " + password + ", email = " + email + "}";
    }
}

进行CRUD操作

package com.jdbcTemplate;

import org.junit.Test;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;

public class JdbcTemplateTest {
    //添加用户信息
    @Test
    public void insertUser() {
// 1、配置数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql:///chat_user? serverTimezone=GMT&useSSL=false&characterEncoding=utf8");
        dataSource.setUsername("root");
        dataSource.setPassword("123456");
// 2、创建JdbcTemplate对象
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
// 3、通过jdbcTemplate对象执行数据库的crud操作
        String sql = "insert into chat_user values(?, ?, ?)";
        int rows = jdbcTemplate.update(sql, "李四", "123456","xxxx@163.com");
        System.out.println("影响数据库行数:" + rows);
    }

    //修改用户信息
    @Test
    public void updateUser() {
        // 1、配置数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql:///chat_user? serverTimezone=GMT&useSSL=false&characterEncoding=utf8");
        dataSource.setUsername("root");
        dataSource.setPassword("123456");
        // 2、创建JdbcTemplate对象
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
        // 3、通过jdbcTemplate对象执行修改操作
        String sql = "update chat_user set password = ? where username = ?";
        int rows = jdbcTemplate.update(sql, "987654", "abc");
        System.out.println("影响数据库行数:" + rows);
    }

    //删除用户信息
    @Test
    public void deleteUser() {
        // 1、配置数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql:///chat_user? serverTimezone=GMT&useSSL=false&characterEncoding=utf8");
        dataSource.setUsername("root");
        dataSource.setPassword("123456");
// 2、创建JdbcTemplate对象
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
// 3、通过jdbcTemplate对象执行数据库的crud操作
        String sql = "delete from chat_user where username = ?";
        int rows = jdbcTemplate.update(sql, "张三");
        System.out.println("影响数据库行数:" + rows);
    }

    //查询用户信息
    @Test
    public void selectUser1() {
        // 1、配置数据库信息
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql:///chat_user? serverTimezone=GMT&useSSL=false&characterEncoding=utf8");
        dataSource.setUsername("root"); dataSource.setPassword("123456");
        // 2、创建JdbcTemplate对象
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
        // 3、通过jdbcTemplate对象执行修改操作
        String sql = "select count(*) from chat_user";
        Integer count = jdbcTemplate.queryForObject(sql, Integer.class);
        System.out.println("数据库表总共有" + count + "条记录");
    }
}

查询结果为一个对象

jdbcTemplate未实现RowMapper,查询结果需要我们自己实现这个RowMapper接口,自己封装查询后的结果。

创建RowMapper接口的实现类

package com.jdbcTemplate;

import com.entity.User;
import org.springframework.jdbc.core.RowMapper;

import java.sql.ResultSet;
import java.sql.SQLException;

public class MyRowMapper implements RowMapper {
    @Override
    public User mapRow(ResultSet resultSet, int i) throws SQLException {
        String username = resultSet.getString("username");
        String password = resultSet.getString("password");
        String email = resultSet.getString("email");
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
        user.setEmail(email);
        return user;
    }
}

JdbcTemplateTest运行结果

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值