前面的配置文件一样,我这里只写批量增删改:
实现增加删除修改功能
只要理解下面这个方法就可以了:
这是我service层添加的代码:batchAddBook batchUpdateBook batchDeleteBook
package cn.zsp.spring5.service;
import cn.zsp.spring5.dao.BookDao;
import cn.zsp.spring5.entity.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class BookService {
@Autowired
BookDao bookDao;
public void add(Book book){
bookDao.add(book);
}
public void deleteById(Integer id){
bookDao.deleteById(id);
}
public void update(Book book){
bookDao.update(book);
}
public int findCount(){
return bookDao.findCount();
}
public Book findOne(Integer id){
return bookDao.findOne(id);
}
public List<Book> findAll(){
return bookDao.findAll();
}
public void batchAddBook(List<Object[]> list){
bookDao.batchAddBook(list);
}
public void batchUpdateBook(List<Object[]> list){
bookDao.batchUpdateBook(list);
}
public void batchDeleteBook(List<Object[]> list){
bookDao.batchDeleteBook(list);
}
}
这是dao层的接口:
package cn.zsp.spring5.dao;
import cn.zsp.spring5.entity.Book;
import java.util.List;
public interface BookDao {
public void add(Book book);
void update(Book book);
void deleteById(Integer id);
int findCount();
Book findOne(Integer id);
List<Book> findAll();
void batchAddBook(List<Object[]> list);
void batchUpdateBook(List<Object[]> list);
void batchDeleteBook(List<Object[]> list);
}
这是dao层接口的实现:
package cn.zsp.spring5.dao;
import cn.zsp.spring5.entity.Book;
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;
@Repository
public class BookDaoImpl implements BookDao{
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public void add(Book book) {
String sql ="insert into t_book values(?,?,?)";
Object []args={ book.getUserId(), book.getUsername(), book.getUstatus()};
int add = jdbcTemplate.update(sql,args);
System.out.println(add);
}
@Override
public void update(Book book) {
String sql="update t_book set username=? ,ustatus=? where user_id =?";
Object []args={book.getUsername(),book.getUstatus(),book.getUserId()};
int update = jdbcTemplate.update(sql, args);
System.out.println(update);
}
@Override
public void deleteById(Integer id) {
String sql="delete from t_book where user_id=?";
int delete = jdbcTemplate.update(sql, id);
System.out.println(delete);
}
@Override
public int findCount() {
String sql="select count(*) from t_book";
return jdbcTemplate.queryForObject(sql,Integer.class);
}
@Override
public Book findOne(Integer id) {
String sql="select * from t_book where user_id=?";
return jdbcTemplate.queryForObject(sql,new BeanPropertyRowMapper<Book>(Book.class),id);
}
@Override
public List<Book> findAll() {
String sql ="select * from t_book ";
return jdbcTemplate.query(sql,new BeanPropertyRowMapper<Book>(Book.class));
}
@Override
public void batchAddBook(List<Object[]> list) {
String sql ="insert into t_book values(?,?,?)";
int[] ints = jdbcTemplate.batchUpdate(sql, list);
System.out.println(Arrays.toString(ints));
}
@Override
public void batchUpdateBook(List<Object[]> list) {
String sql="update t_book set username=? ,ustatus=? where user_id =?";
int[] ints = jdbcTemplate.batchUpdate(sql, list);
System.out.println(Arrays.toString(ints));
}
@Override
public void batchDeleteBook(List<Object[]> list) {
String sql ="delete from t_book where user_id =?";
jdbcTemplate.batchUpdate(sql,list);
}
}
三个测试代码:
@Test
public void batchAddBook(){
ApplicationContext context=new ClassPathXmlApplicationContext("bean1.xml");
BookService bookService = context.getBean("bookService", BookService.class);
List<Object[]> list =new ArrayList<>();
Object[] o1={3,"123","3"};
Object[] o2={4,"144","4"};
list.add(o1);
list.add(o2);
bookService.batchAddBook(list);
}
@Test
public void batchUpdateBook(){
ApplicationContext context=new ClassPathXmlApplicationContext("bean1.xml");
BookService bookService = context.getBean("bookService", BookService.class);
List<Object[]> list =new ArrayList<>();
Object[] o1={"3333","3",3};
Object[] o2={"4444","4",4};
list.add(o1);
list.add(o2);
bookService.batchUpdateBook(list);
}
@Test
public void batchDeleteBook(){
ApplicationContext context=new ClassPathXmlApplicationContext("bean1.xml");
BookService bookService = context.getBean("bookService", BookService.class);
List<Object[]> list =new ArrayList<>();
Object[] o1={3};
Object[] o2={4};
list.add(o1);
list.add(o2);
bookService.batchDeleteBook(list);
}