前言:
上一篇文章写了对于多个属性的查询的Mybatis写法。实际是对一个对象的操作方式。
正文:
本文就补充写对一个list的操作吧。
先看如何删除一行数据。然后在看如何删除多行数据。
一、删除一行
delete from userinfo where id = #{_parameter}
_parameter即type传递过来的值。单独传递一个值可以通过这种写法书写。ONGL
二、删除多行
删除多行我们传递进来的一般来说就是一个list对象,那么如何从list对象中取出数据,并拼接程sql语句?
delete from userinfo where id in (
#{item}
)
通过foreach语句。separtor分割item,例如本来是delete from userinfo where id in (1,2,4,5);
1,2,4,5之间会有逗号分割,separator就是指的这个分隔符。collection可选,为list,map等,是数据源。item对应下面的item取值。
三、写dao层,service层,controller层:
dao层:
package dao;
import java.util.List;
import model.UserInfo;
public interface BookMapper {
UserInfo selectByUsername(String username);
UserInfo selectByUser(UserInfo user);
void deleteOne(int id);
//批量删除
void deleteBatch(List ids);
}service层
package service;
import java.util.List;
import model.UserInfo;
public interface UserService {
UserInfo getUserInfo(String username);
UserInfo getUserByUser(UserInfo user);
void delete(int id);
//批量删除
void deleteBatch(List ids);
}service层实现:
package service;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import dao.BookMapper;
import model.UserInfo;
@Service
public class UserServiceImpl implements UserService{
@Resource
private BookMapper bookDao;
@Override
public UserInfo getUserInfo(String username) {
return bookDao.selectByUsername(username);
}
@Override
public UserInfo getUserByUser(UserInfo user) {
return bookDao.selectByUser(user);
}
@Override
public void delete(int id) {
bookDao.deleteOne(id);
}
@Override
public void deleteBatch(List ids) {
bookDao.deleteBatch(ids);
}
}controller层
package controller;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import model.UserInfo;
import service.UserService;
@Controller
public class EncodeController {
@RequestMapping(value="j.do")
public String viewAll(UserInfo userInfo) {
System.out.println(userInfo.getUsername());
System.out.println(userInfo.getPassword());
return "successlogin";
}
@Resource
private UserService userService;
@RequestMapping(value="h.do")
public String viewAll2(UserInfo userInfo) {
System.out.println(userService.getUserInfo("bobo").toString());
return "successlogin";
}
@RequestMapping(value="i.do")
public String viewAll3() {
UserInfo user = new UserInfo();
user.setId(2);
user.setUsername("xiaoming");
if(null != user)
System.out.println(userService.getUserByUser(user).toString());
return "successlogin";
}
@RequestMapping(value="k.do")
public String viewAll4() {
userService.delete(2);
return "successlogin";
}
//批量删除
@RequestMapping(value="l.do")
public String viewAll5() {
List ids = new ArrayList<>();
ids.add(new Integer(3));
ids.add(new Integer(4));
ids.add(new Integer(5));
ids.add(new Integer(6));
userService.deleteBatch(ids);
return "successlogin";
}
}
代码自提点。