mybatis 删除

1.xml文件
foreach标签拼接in条件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="UTF-8" ?>  
<!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
"http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="com.xiang.mapper.UserMapper">
<!-- 定义公共属性 -->
<sql id="userColumns"> id,name,address </sql>
<!-- 按ID删除单条用户 -->
<delete id="deleteOneById" parameterType="Integer">
delete from user where id = #{id}
</delete>
<!-- 按IDs批量删除用户 -->
<delete id="deleteBatchByIds" parameterType="java.util.List">
delete from user where id in (
<foreach collection="list" item="item" separator=",">
#{item}
</foreach>
)
</delete>
</mapper>

2.mapper

1
2
3
4
public interface UserMapper {     
public void deleteOneById(Integer id);
public void deleteBatchByIds(List<Integer> ids);
}

3.dao
删除操作,需要手动提交事务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public void deleteOneById(Integer id){
SqlSession sqlSession = null;
sqlSession = GetSqlSessionFactory.getInstance().getSqlSessionFactory().openSession();
if (sqlSession != null) {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.deleteOneById(id);
sqlSession.commit();
sqlSession.close();
}
}

public void deleteBatchByIds(List<Integer> ids){
SqlSession sqlSession = null;
sqlSession = GetSqlSessionFactory.getInstance().getSqlSessionFactory().openSession();
if (sqlSession != null) {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.deleteBatchByIds(ids);
sqlSession.commit();
sqlSession.close();
}
}

4.service
在service中进行参数有效性验证及参数类型转换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void deleteOneById(String id){
if (id != null &&!"".equals(id.trim())) {
UserDao userDao = new UserDao();
userDao.deleteOneById(Integer.valueOf(id));
}
}

public void deleteBatchByIds(String[] ids){
UserDao userDao = new UserDao();
List<Integer> idList = new ArrayList<Integer>();
for (String id : ids) {
idList.add(Integer.valueOf(id));
}
userDao.deleteBatchByIds(idList);
}