更新時間:2021-07-16 16:11:14 來源:動力節點 瀏覽1151次
如下圖所示,mybatis刪除數據異常:
log4j調試的信息表示SQL語句應該是對的,然而數據庫中并沒有刪除信息。
相關的配置文件及代碼如下:
配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="Message"> <!-- 命名空間不能省略,類似于package -->
<resultMap type="model.Message" id="MessageResult">
<id column="ID" jdbcType="VARCHAR" property="id"/> <!-- id是查找結果集的主鍵 -->
<result column="COMMAND" jdbcType="VARCHAR" property="command"/>
<result column="DESCRIPTION" jdbcType="VARCHAR" property="description"/>
<result column="CONTENT" jdbcType="VARCHAR" property="content"/>
</resultMap>
<select id="Message.queryAll" resultMap="MessageResult">
SELECT ID,COMMAND,DESCRIPTION,CONTENT FROM message WHERE 1=1
<if test="command != null and !"".equals(command.trim())">and COMMAND LIKE '%' #{command} '%'</if>
<if test="description != null and !"".equals(description.trim())">and DESCRIPTION LIKE '%' #{description} '%'</if>
</select>
<delete id="deleteOne" parameterType="java.lang.Integer">
DELETE FROM message WHERE ID=#{_parameter}
</delete>
</mapper>
DAO層方法:
public void deleteOne(int id){
DBAccess dbAccess = new DBAccess();
SqlSession sqlSession = null;
try{
sqlSession = dbAccess.getSqlSession();//實例化并打開數據庫會話
sqlSession.delete("Message.deleteOne",id);//message.xml配置文件中對應ID號的SQL語句
}catch(IOException e){
e.printStackTrace();
}finally{
if(sqlSession!=null){
sqlSession.close();
}
}
}
service層方法
package service;
import dao.MessageDAO;
public class MaintainService {
public void deleteOne(String id){
if(id != null && !"".equals(id.trim())){
MessageDAO messageDao = new MessageDAO();
messageDao.deleteOne(Integer.valueOf(id));
}
}
}
Servlet
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
//獲取頁面的值
String id = request.getParameter("id");
MaintainService maintainService = new MaintainService();
maintainService.deleteOne(id);
//dao方法和跳轉頁面
try {
request.getRequestDispatcher("/servlet/ShowServlet").forward(request,response);
} catch (Exception e) {
e.printStackTrace();
}
}
以上就是動力節點小編介紹的"MyBatis刪除數據異常",希望對大家有幫助,想了解更多可查看Mybatis視頻教程。動力節點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關注一下。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習