【Maven+SSM】Mybatis动态SQL拼接根据对象删除单条或者多条数据

来源:互联网 发布:知著投资 vincent 编辑:程序博客网 时间:2024/05/18 06:15

前言:

上一篇文章写了对于多个属性的查询的Mybatis写法。实际是对一个对象的操作方式。

正文:

本文就补充写对一个list的操作吧。

先看如何删除一行数据。然后在看如何删除多行数据。

一、删除一行

<delete id="deleteOne" parameterType="java.lang.Integer">  delete from userinfo where id = #{_parameter}  </delete>

_parameter即type传递过来的值。单独传递一个值可以通过这种写法书写。ONGL

二、删除多行

删除多行我们传递进来的一般来说就是一个list对象,那么如何从list对象中取出数据,并拼接程sql语句?

<delete id="deleteBatch" parameterType="java.util.List">  delete from userinfo where id in (  <foreach collection="list" item="item" separator=",">  #{item}  </foreach>  )  </delete>
通过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<Integer> 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<Integer> ids);}
service层实现:

package service;import java.util.List;import javax.annotation.Resource;import org.springframework.stereotype.Service;import dao.BookMapper;import model.UserInfo;@Servicepublic class UserServiceImpl implements UserService{@Resourceprivate BookMapper bookDao;@Overridepublic UserInfo getUserInfo(String username) {return bookDao.selectByUsername(username);}@Overridepublic UserInfo getUserByUser(UserInfo user) {return bookDao.selectByUser(user);}@Overridepublic void delete(int id) {bookDao.deleteOne(id);}@Overridepublic void deleteBatch(List<Integer> 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;@Controllerpublic class EncodeController {@RequestMapping(value="j.do")public String viewAll(UserInfo userInfo) {System.out.println(userInfo.getUsername());System.out.println(userInfo.getPassword());return "successlogin";}@Resourceprivate 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<Integer> 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";}}


代码自提点。