Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 59.0MB ·虚拟内存 1300.0MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
本章将介绍 MyBatis 的数据删除操作。
UserMapper.xml 映射文件中将包含所有 User 相关 SQL 映射语句。
在映射文件中添加 delete 语句,将删除指定用户信息。如下所示:
<?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 = "User"> <resultMap id="result" type="User"> <result property="id" column="id" /> <result property="name" column="name" /> </resultMap> <delete id="deleteById" parameterType="long"> DELETE from User WHERE id = #{id}; </delete> </mapper>
参数类型可以是任何类型,如 int、float、double 或任何类,本例中参数类型 long,在调用 SqlSession 类的方法时,将传入 User 对象的 id。
package com.aizws.demo; import java.io.IOException; import java.io.Reader; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class App { public static void main(String args[]) throws IOException{ Reader reader = Resources.getResourceAsReader("MybatisConfig.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sqlSessionFactory.openSession(); System.out.println("------------ 删除用户 -----------"); session.delete("User.deleteById", 2L); System.out.println("删除用户成功"); session.commit(); session.close(); } }
运行程序,输出结果:
------------ 删除用户 ----------- 删除用户成功
动态 SQL 是 MyBatis 的一个强大特性。在编写 SQL 语句时,尝尝需要根据不同条件拼接 SQL 语句,动态 SQL 帮助开发者非常轻松地实现各种条件下的 SQL 拼接。下面是 MyBatis 提供的基于 OGNL 的动态 SQL 表达式:if、choose (when, otherwise)、trim (where, set)、foreach