天天看点

【Spring JDBC】数据库开发:基本操作(增、删、改)

文章目录

  • ​​数据库开发:基本操作(增、删、改)​​
  • ​​① 准备工作​​
  • ​​② 数据库操作 --- 增[insert] update()​​
  • ​​③ 数据库操作 --- 删[delete] update()​​
  • ​​④ 数据库操作 --- 改[update] update()​​

数据库开发:基本操作(增、删、改)

① 准备工作

  • 1.引入相关jar包:
  • 【Spring JDBC】数据库开发:基本操作(增、删、改)
  • 2.Spring配置文件中配置数据库连接池:
  • 【Spring JDBC】数据库开发:基本操作(增、删、改)
  • 3.配置 JdbcTemplate 对象,注入 DataSource
  • 【Spring JDBC】数据库开发:基本操作(增、删、改)
  • 4.创建 service 类,创建 dao 类,在 dao 注入 jdbcTemplate 对象
  • 【Spring JDBC】数据库开发:基本操作(增、删、改)

​​返回顶部​​

② 数据库操作 — 增[insert] update()

1、对应数据库创建实体类

  • 创建数据库表​

    ​t_user​

    ​​
  • 【Spring JDBC】数据库开发:基本操作(增、删、改)
  • 在​

    ​User类​

    ​中,我们将​

    ​t_user表​

    ​的各字段设为类的属性,方便后续操作中值的赋予、获取。
package JDBC.entry;

public class User {

    // 创建字段对应属性
    private String useId;
    private String userName;
    private String uststus;

    // set\get方法
    public String getUseId() {
        return useId;
    }

    public void setUseId(String useId) {
        this.useId = useId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getUststus() {
        return uststus;
    }

    public void setUststus(String uststus) {
        this.uststus = uststus;
    }
}      

2、编写 service 和 dao

  • (1)在 dao 进行数据库添加操作(接口实现类重写具体实现)
  • (2)具体实现的时候,调用 JdbcTemplate 对象里面 ​

    ​update()​

    ​ 方法实现添加操作
  • 【Spring JDBC】数据库开发:基本操作(增、删、改)
  • 第一个参数:​

    ​sql 语句​

  • 第二个参数:可变参数,设置 ​

    ​sql 语句值​

  • (3)SQL增加语句:​

    ​insert into 表名 values (value1,value2,value3)​

@Repository
public class UserDaoImpl implements UserDao {

    // 注入JdbcTemplate对象
    @Autowired
    private JdbcTemplate jdbcTemplate;

    // 重写add方法
    @Override
    public void add(User user) {
        // sql语句
        String sql = "insert into t_user values(?,?,?)";
        // 可变数组保存sql语句插入值
        Object[] args = {user.getUseId(), user.getUserName(), user.getUststus()};
        // 调用方法实现数据库信息插入
        int update = jdbcTemplate.update(sql,args);
        System.out.println("插入操作影响的记录数:"+ update);

    }
}      
  • 流程:
  • 【Spring JDBC】数据库开发:基本操作(增、删、改)

3、测试类

  • 在测试类中,获取​

    ​userService对象​

    ​后,调用​

    ​addUser()​

    ​方法传入user对象。在这之前,首先创建user对象,并通过​

    ​user.setXxx()​

    ​方法,对各字段进行赋值。
@org.junit.Test
public void test_jdbc(){
    try {
        // 1.获取配置文件对象
        ApplicationContext context = new ClassPathXmlApplicationContext("JDBC/bean_jdbc.xml");
        UserService userService = context.getBean("userService",UserService.class);
        // 创建user对象,设置属性
        User user = new User();
        // user.setUseId("1");
        user.setUseId("2");
        user.setUserName("Vae");
        // user.setUststus("creating");
        user.setUststus("singing");
        // 调用方法
        userService.addUser(user);
    } catch (Exception e){
        e.printStackTrace();
    }
}      
【Spring JDBC】数据库开发:基本操作(增、删、改)
【Spring JDBC】数据库开发:基本操作(增、删、改)

​​返回顶部​​

③ 数据库操作 — 删[delete] update()

1.编写service和dao

  • 记录的删除我们可以通过记录的​

    ​id​

    ​来完成,所以在​

    ​deleteUser()​

    ​中参数传入的是要被删除的记录的​

    ​id​

    ​。
  • SQL删除语句:​

    ​delete from 表名 where 字段1=value1​

public interface UserDao {
    // 添加用户的方法
    void add(User user);
    // 修改用户的方法
    void updateUser(User user);
    // 删除用户记录
    void deleteUser(String id);
}      
@Service
public class UserService {
    // 注入UserDao对象属性
    @Autowired
    private UserDao userDao;

    // 添加用户
    public void addUser(User user){
        userDao.add(user);
    }

    // 修改用户
    public void updateUser(User user){
        userDao.updateUser(user);
    }
    // 删除用户
    public void deleteUser(String id){
        userDao.deleteUser(id);
    }
}      

2.编写实现类,具体实现数据库记录删除

@Repository
public class UserDaoImpl implements UserDao {

    // 注入JdbcTemplate对象
    @Autowired
    private JdbcTemplate jdbcTemplate;

    // 重写add方法
    @Override
    public void add(User user) {
        // sql语句
        String sql = "insert into t_user values(?,?,?)";
        // 可变数组保存插入值
        Object[] args = {user.getUseId(), user.getUserName(), user.getUststus()};
        // 调用方法实现数据库信息插入
        int insert = jdbcTemplate.update(sql,args);
        System.out.println("插入操作影响的记录数:"+ insert);

    }
    // 重写updateuser方法
    @Override
    public void updateUser(User user) {
        // sql语句
        String sql = "update t_user set username=?,ustatus=? where user_id=?";
        // 可变数组保存修改值
        Object[] args = {user.getUserName(),user.getUststus(),user.getUseId()};
        // 调用方法实现数据库信息修改
        int update = jdbcTemplate.update(sql,args);
        System.out.println("插入操作影响的记录数:"+ update);
    }
    // 删除用户记录
    @Override
    public void deleteUser(String id) {
        // sql语句
        String sql = "delete from t_user where user_id=?";
        // 调用方法实现数据库信息删除
        int delete = jdbcTemplate.update(sql,id;
        System.out.println("插入操作影响的记录数:"+ delete);
    }
}      

3.测试类

@org.junit.Test
public void test_jdbc(){
    try {
        ApplicationContext context = new ClassPathXmlApplicationContext("JDBC/bean_jdbc.xml");
        UserService userService = context.getBean("userService",UserService.class);
        // 创建user对象,设置属性
        User user = new User();
        user.setUseId("3");
        user.setUserName("Vae");
        user.setUststus("dancing");
        // 调用方法增加用户
        userService.addUser(user);
        // 调用方法删除用户
        userService.deleteUser("2");
    } catch (Exception e){
        e.printStackTrace();
    }
}      
【Spring JDBC】数据库开发:基本操作(增、删、改)

在这里我们先进行了一条记录的插入,然后删除了表中的id为2的记录,所以现在表中剩下的是1、3记录。

【Spring JDBC】数据库开发:基本操作(增、删、改)

​​返回顶部​​

④ 数据库操作 — 改[update] update()

1.编写service和dao

  • 实现用户信息更改的时候,我们也采取通过id进行修改的策略。
  • SQL修改语句:​

    ​update 表名 set 字段1=value1,字段2=value2 where 字段3=value3​

public interface UserDao {
    // 添加用户的方法
    void add(User user);
    // 修改用户的方法
    void updateUser(User user);
}      
@Service
public class UserService {
    // 注入UserDao对象属性
    @Autowired
    private UserDao userDao;

    // 添加用户
    public void addUser(User user){
        userDao.add(user);
    }

    // 修改用户
    public void updateUser(User user){
        userDao.updateUser(user);
    }
}      

2.编写实现类,具体实现数据库修改

@Repository
public class UserDaoImpl implements UserDao {

    // 注入JdbcTemplate对象
    @Autowired
    private JdbcTemplate jdbcTemplate;

    // 重写add方法
    @Override
    public void add(User user) {
        // sql语句
        String sql = "insert into t_user values(?,?,?)";
        // 可变数组保存插入值
        Object[] args = {user.getUseId(), user.getUserName(), user.getUststus()};
        // 调用方法实现数据库信息插入
        int insert = jdbcTemplate.update(sql,args);
        System.out.println("插入操作影响的记录数:"+ insert);

    }
    // 重写updateuser方法
    @Override
    public void updateUser(User user) {
        // sql语句
        String sql = "update t_user set username=?,ustatus=? where user_id=?";
        Object[] args = {user.getUserName(),user.getUststus(),user.getUseId()};
        // 调用方法实现数据库信息修改
        int update = jdbcTemplate.update(sql,args);
        System.out.println("插入操作影响的记录数:"+ update);
    }
}      

3.测试类

@org.junit.Test
public void test_jdbc(){
    try {
        ApplicationContext context = new ClassPathXmlApplicationContext("JDBC/bean_jdbc.xml");
        UserService userService = context.getBean("userService",UserService.class);
        // 创建user对象,设置属性
        User user = new User();
        // 调用方法修改用户
        user.setUseId("3"); // 根据id进行修改
        user.setUserName("VAE");
        user.setUststus("singing");
        userService.updateUser(user);
    } catch (Exception e){
        e.printStackTrace();
    }
}      
【Spring JDBC】数据库开发:基本操作(增、删、改)

通过id为3对其用户信息进行修改:​

​username​

​改为​

​大写​

​,​

​status​

​改为​

​singing​

​。

【Spring JDBC】数据库开发:基本操作(增、删、改)

​​返回顶部​​

  • 1.本文中的数据库实体类需要进行更正:对应字段属性需重新命名​

    ​userId​

    ​、​

    ​userName​

    ​、​

    ​userStatus​

    ​(其中用到的查询语句也都需要更改)。
  • 2.数据库中设计的表t_user也需要更改为:
  • 参见本人博客:jdbcTemplate.queryXxx() 返回值为null