JdbcTemplate操作數據庫(批量操作)
1.批量操作:操作表里面多條記錄
2.批量操作
batchUpdate(String sql, List<Object[]> batchArgs)
兩個參數
第一個參數:sql語句
第二個參數:List集合,添加多條數據
package com.orzjiangxiaoyu.spring.dao; import com.orzjiangxiaoyu.spring.entity.User; import java.util.List; /** * @author orz * @create 2020-08-18 9:36 */ public interface UserDao { public void batchInsertUser(List<Object []> batchArgs); public void batchUpdateUser(List<Object []> batchArgs); public void batchDeleteUser(List<Object []> batchArgs); }
package com.orzjiangxiaoyu.spring.dao; import com.orzjiangxiaoyu.spring.entity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Repository; import java.util.Arrays; import java.util.List; /** * @author orz * @create 2020-08-18 9:37 */ @Repository public class UserDaoImpl implements UserDao { //注入JdbcTemplate @Autowired private JdbcTemplate jdbcTemplate; @Override public void batchInsertUser(List<Object[]> batchArgs) { //1.創建sql語句 String sql = "insert into t_user(user_id,username,ustatus) values(?,?,?)"; //2.調用方法實現 int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs); System.out.println(Arrays.toString(ints)); } @Override public void batchUpdateUser(List<Object[]> batchArgs) { //1.創建sql語句 String sql = "update t_user set username=?,ustatus=? where user_id=?"; //2.調用方法實現 int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs); System.out.println(Arrays.toString(ints)); } @Override public void batchDeleteUser(List<Object []> batchArgs) { //1.創建sql語句 String sql = "delete from t_user where user_id=?"; //2.調用方法實現 int[] ints = jdbcTemplate.batchUpdate(sql, batchArgs); System.out.println(Arrays.toString(ints)); } }
package com.orzjiangxiaoyu.spring.service; import com.orzjiangxiaoyu.spring.dao.UserDao; import com.orzjiangxiaoyu.spring.entity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; /** * @author orz * @create 2020-08-18 9:36 */ @Service public class UserService { //注入dao @Autowired private UserDao userDao; //批量添加 public void batchInsertUser(List<Object []> batchArgs) { userDao.batchInsertUser(batchArgs); } //批量修改 public void batchUpdateUser(List<Object []> batchArgs) { userDao.batchUpdateUser(batchArgs); } //批量刪除 public void batchDeleteUser(List<Object []> batchArgs) { userDao.batchDeleteUser(batchArgs); } }
測試
package com.orzjiangxiaoyu.spring.mysqltestdemo; import com.orzjiangxiaoyu.spring.entity.User; import com.orzjiangxiaoyu.spring.service.UserService; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.util.ArrayList; import java.util.List; /** * @author orz * @create 2020-08-18 10:20 */ public class Test2 { //批量增加 @Test public void test7() { ApplicationContext context=new ClassPathXmlApplicationContext("jdbcbean.xml"); UserService userService = context.getBean("userService", UserService.class); List<Object []> batchArgs=new ArrayList<>(); Object [] o1={4,"java","a"}; Object [] o2={5,"c++","b"}; Object [] o3={6,"mysql","c"}; batchArgs.add(o1); batchArgs.add(o2); batchArgs.add(o3); //調用批量添加 userService.batchInsertUser(batchArgs); } //批量修改 @Test public void test8() { ApplicationContext context=new ClassPathXmlApplicationContext("jdbcbean.xml"); UserService userService = context.getBean("userService", UserService.class); List<Object []> batchArgs=new ArrayList<>(); Object [] o1={"李華","fat",4}; Object [] o2={"PHP","B",5}; Object [] o3={"SQL","A",6}; batchArgs.add(o1); batchArgs.add(o2); batchArgs.add(o3); //調用批量修改 userService.batchUpdateUser(batchArgs); } //批量刪除 @Test public void test9() { ApplicationContext context=new ClassPathXmlApplicationContext("jdbcbean.xml"); UserService userService = context.getBean("userService", UserService.class); List<Object []> batchArgs=new ArrayList<>(); Object [] o1={4}; Object [] o2={5}; Object [] o3={6}; batchArgs.add(o1); batchArgs.add(o2); batchArgs.add(o3); //調用批量修改 userService.batchDeleteUser(batchArgs); } }