Mybatis之删除数据(8)
程序员文章站
2022-05-31 16:37:58
...
一、根据id删除用户
注意:如果用户不存在,则执行删除操作也不会抛异常。
1、在User.xml中配置如下SQL语句
<!—删除用户
根据id删除用户,需要输入id值
-->
<delete id=”deleteUser” parameterType=”java.lang.Integer”>
delete from user where id=#{id}
</delete>
2、编写测试类进行测试
/**
* 删除用户信息
*/
@Test
public void deleteUserTest(){
//mybatis配置文件
String resource = “SqlMapConfig.xml”;
//得到配置文件,这种方式与路径耦合
//InputStream inStream = Resources.getResourceAsStream(resource);
//与路径解耦
InputStream inStream = this.getClass()
.getClassLoader().getResourceAsStream(resource);
//创建会话工厂
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
SqlSessionFactory factory = builder.build(inStream);//创建工厂
//通过工厂得到SqlSession
SqlSession sqlSession = factory.openSession();
//通过SqlSession操作数据库
sqlSession.delete(“test.deleteUser”, 18);
sqlSession.commit();
//释放资源
sqlSession.close();
}
二、批量删除数据
1、Mapper.xml中的代码
<!-- 根据id批量删除数据 -->
<delete id="deleteBatch" parameterType="java.util.List">
delete from MESSAGE where ID in(
<foreach collection="list" item="item" separator=",">
#{item}
</foreach>
)
</delete>
2、dao中的代码
/**
* 根据id批量删除数据
* @param ids
*/
public void deleteBatch(List<Integer> ids){
DBAccess dbAccess = new DBAccess();
SqlSession sqlSession = null;
try {
sqlSession = dbAccess.getSqlSession();
//通过sqlSession执行Sql语句
sqlSession.delete("Message.deleteBatch", ids);
sqlSession.commit();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(sqlSession != null){
sqlSession.close();
}
}
}
上一篇: 关闭node_modules映射页面时不停发送的请求
下一篇: 删除node_modules文件