首页 > 其他分享 >JdbcTemplate的基本使用-修改和删除

JdbcTemplate的基本使用-修改和删除

时间:2024-01-08 10:32:25浏览次数:30  
标签:删除 void springframework 修改 JdbcTemplate import org public user

JdbcTemplate的基本配置参考我的上一篇文章: JdbcTemplate的基本使用-新增

1、修改和删除数据(jdbcTemplate.update)

修改和删除跟上面的新增操作一样,只是SQL语句不同而已。

UserServiceImpl 增加修改和删除方法:

package service;
import dao.UserDao;
import entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private UserDao userDao;
    @Override
    public void updateUser(User user) {
        userDao.updateUser(user);
    }
    @Override
    public void deleteUser(int userId) {
        userDao.deleteUser(userId);
    }
}

UserDaoImpl 增加修改删除方法:

package dao;
import entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
@Repository
public class UserDaoImpl implements UserDao{
    //注入JdbcTemplate
     @Autowired
    private JdbcTemplate jdbcTemplate;
    @Override
    public void updateUser(User user) {
        String sql = "update user set name=?, password=? where id=?";
        int updateRow = jdbcTemplate.update(sql, user.getName(), user.getPassword(), user.getId());
        System.out.println(updateRow);
    }
    @Override
    public void deleteUser(int userId) {
        String sql = "delete from user where id=?";
        int updateRow = jdbcTemplate.update(sql, userId);
        System.out.println(updateRow);
    }
}

编写调用方法

package test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import entity.User;
import service.UserService;
import service.UserServiceImpl;public class Test01 {
    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean01.xml");
    //修改操作
    @Test
    public void test1() {
        User user = new User();
        user.setId(2);
        user.setName("AA");
        user.setPassword("112233");
        UserService userService = applicationContext.getBean(UserServiceImpl.class);
        userService.updateUser(user);
    }
    //删除操作
    @Test
    public void test2() {
        UserService userService = applicationContext.getBean(UserServiceImpl.class);
        userService.deleteUser(5);
    }
}

2、批量修改和删除(batchUpdate)

批量修改和批量删除都可以使用 jdbcTemplate.batchUpdate() 方法,该用于执行批处理相关语句,batchUpdate() 方法第二参数是一个元素为 Object[] 数组类型的 List 集合。

示例如下。UserServiceImpl 增加批量修改和删除方法:

package service;
import dao.UserDao;
import entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServiceImpl implements UserService{
    @Autowired
    private UserDao userDao;
    //批量修改
    @Override
    public void updateBatch(List<Object[]> listArg) {
        userDao.updateBatch(listArg);
    }
    //批量删除
    @Override
    public void deleteBath(List<Object[]> listArg) {
        userDao.deleteBath(listArg);
    }
}

UserDaoImpl 增加批量修改和删除方法:

package dao;
import entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import java.util.Arrays;
import java.util.List;
@Repository
public class UserDaoImpl implements UserDao {
    //注入JdbcTemplate
    @Autowired
    private JdbcTemplate jdbcTemplate;
    //批量修改
    @Override
    public void updateBatch(List<Object[]> listArg) {
        String sql = "update user set name=?, password=? where id=?";
        int[] ints = jdbcTemplate.batchUpdate(sql, listArg);
        System.out.println(Arrays.toString(ints));
    }
    //批量删除
    @Override
    public void deleteBath(List<Object[]> listArg) {
        String sql = "delete from user where id=?";
        int[] ints = jdbcTemplate.batchUpdate(sql, listArg);
        System.out.println(Arrays.toString(ints));
    }
}

编写调用方法

package test;
import entity.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import service.UserService;
import service.UserServiceImpl;
import java.util.ArrayList;
import java.util.List;
public class TestMain {
    ApplicationContext ioc = new ClassPathXmlApplicationContext("bean01.xml");
    //批量修改
    @Test
    public void test3() {
        List<Object[]> userList = new ArrayList<>();
        Object[] arr1 = {"name1changed", "password1", 1};
        Object[] arr2 = {"name2changed", "password2", 2};
        Object[] arr3 = {"name3changed", "password3", 3};
        userList.add(arr1);
        userList.add(arr2);
        userList.add(arr3);
        UserService userService = ioc.getBean(UserServiceImpl.class);
        userService.updateBatch(userList);
    }
    //批量删除
    @Test
    public void test4() {
        List<Object[]> userList = new ArrayList<>();
        Object[] arr1 = {6};
        Object[] arr2 = {7};
        userList.add(arr1);
        userList.add(arr2);
        UserService userService = ioc.getBean(UserServiceImpl.class);
        userService.deleteBath(userList);
    }
}

标签:删除,void,springframework,修改,JdbcTemplate,import,org,public,user
From: https://blog.51cto.com/u_16421711/9139849

相关文章

  • RuoYi-Cloud-Plus使用minio进行文件上传图片后无法预览解决_修改minio配置minio桶权限
     在文件管理的位置,发现刚刚上传的图片文件,会显示 预览图片失败 后来经过多方查看,发现是minio的配置的问题可以从这里:可以看到首先登录RuoYi-Cloud-Plus系统然后,打开文件管理页面可以看到,当上传了图片文件以后显示文件展示中,文件预览失败,那么这个时......
  • vue2 修改 this.form = response.data数据,form2也会影响?
    vue2    this.form=response.data    this.oldForm=response.data为啥this.form数据变化会影响this.oldForm里的数据在Vue2中,当你在组件中看到一个数据属性(例如 this.form 和 this.oldForm)的值发生变化时,这通常是因为Vue的响应式系统在背后工作。当你......
  • JdbcTemplate的基本使用-批量新增
    JdbcTemplate的基本配置参考我的上一篇文章:JdbcTemplate的基本使用-新增批量增加可以使用jdbcTemplate.batchUpdate()方法,示例如下:UserServiceImpl增加批量增加方法:packageservice;importdao.UserDao;importentity.User;importorg.springframework.beans.factory.annotat......
  • Office Word批注人名称修改
    OfficeWord批注人名称修改没有登录MicrosoftOffice账号时,可以通过以下方式实现1打开WORD文档,点击菜单栏上“审阅-修订”右侧的对话框打开图标2弹出窗口,点击“更改用户名”3弹出WORD选项窗口,修改用户名4点击确认即可登录MicrosoftOffice账号时,可以推出之后......
  • idea项目,模块修改
    新建类删除类修改类名新建模块关闭项目新建项目......
  • 修改idea的页面设置
    设置背景设置字体修改注释单行注释多行注释设置自动导包设置忽略大小写......
  • 6、postgres序列创建、删除与重置
    postgres序列创建、删除与重置1、序列创建sequence_name为要创建的序列名称;start_value指定起始值;increment_by指定每次递增/递减的量;min_value和max_value分别设置最小值和最大值;cache_size表示可以从内存中获取的序列号的数目。CREATESEQUENCEsequence_name;--使用默认参......
  • 欧拉openEuler安装Jenkins并修改构建workspace路径
    ​一、系统优化关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld关闭selinuxsed-ri's/SELINUX=enforcing/SELINUX=disabled/'/etc/selinux/configsetenforce0二、安装Jenkinssudowget-O/etc/yum.repos.d/jenkins.repohttps://pkg.jenkins.io......
  • 不同窗体间修改对方控件属性
    在WinForms应用程序中,若要从TestForm修改Form1中控件的Text属性,你需要确保Form1的实例在TestForm中是可访问的。有几种方法可以实现这一点,最常见的方法是通过构造函数传递Form1的引用,或者使用公共属性或方法来设置。首先确保控件(在本例中为Button)在Form1中是可访问的,设置Modifie......
  • 如何修改Centos7的IP地址
    目录一、打开网卡配置文件二、修改参数三、设置IP和掩码等四、重启服务一、打开网卡配置文件vi/etc/sysconfig/network-scripts/ifcfg-ens33二、修改参数(1)BOOTPROTO=static #dhcp:自动分配ip,static:静态ip(2)ONBOOT=yes#开启启动必须是yes三、设置IP和掩码等IPADDR=19......