【Mybatis框架】可以直接复用的java mapper文件 ✨ 每日积累

简介: 【Mybatis框架】可以直接复用的java mapper文件 ✨ 每日积累
<?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="mapper接口文件存放位置" >
  <resultMap id="BaseResultMap" type="实体类包位置" >
    <id column="id" property="id" jdbcType="BIGINT" />
    <result column="gmt_create" property="gmtCreate" jdbcType="TIMESTAMP" />
    <result column="gmt_modified" property="gmtModified" jdbcType="TIMESTAMP" />
    <result column="user_name" property="userName" jdbcType="VARCHAR" />
  </resultMap>
  <resultMap id="QueryResultMap" type="实体类包位置" extends="BaseResultMap" />
  <sql id="Query_Where_Clause" >
    <trim prefix="WHERE" prefixOverrides="AND |OR " >
      <if test="id != null" >
        AND id = #{id,jdbcType=BIGINT}
      </if>
      <if test="gmtCreate != null" >
        AND gmt_create = #{gmtCreate,jdbcType=TIMESTAMP}
      </if>
      <if test="gmtModified != null" >
        AND gmt_modified = #{gmtModified,jdbcType=TIMESTAMP}
      </if>
      <if test="userName != null" >
        AND user_name = #{userName,jdbcType=VARCHAR}
      </if>
    </trim>
  </sql>
  <sql id="Update_By_Query_Where_Clause" >
    <trim prefix="WHERE" prefixOverrides="AND |OR " >
      <if test="query.id != null" >
        AND id = #{query.id,jdbcType=BIGINT}
      </if>
      <if test="query.gmtCreate != null" >
        AND gmt_create = #{query.gmtCreate,jdbcType=TIMESTAMP}
      </if>
      <if test="query.gmtModified != null" >
        AND gmt_modified = #{query.gmtModified,jdbcType=TIMESTAMP}
      </if>
      <if test="query.userName != null" >
        AND user_name = #{query.userName,jdbcType=VARCHAR}
      </if>
    </trim>
  </sql>
  <sql id="Base_Column_List" >
    id, gmt_create, gmt_modified, user_name
  </sql>
  <select id="selectByQuery" resultMap="BaseResultMap" parameterType="query势例类存放路径" >
    select
    <include refid="Base_Column_List" />
    from user
    <if test="_parameter != null" >
      <include refid="Query_Where_Clause" />
    </if>
  </select>
  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" >
    select
    <include refid="Base_Column_List" />
    from user
    where id = #{id,jdbcType=BIGINT}
  </select>
  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long" >
    delete from user
    where id = #{id,jdbcType=BIGINT}
  </delete>
  <delete id="deleteByQuery" parameterType="query势例类存放路径" >
    delete from user
    <if test="_parameter != null" >
      <include refid="Query_Where_Clause" />
    </if>
  </delete>
  <insert id="insert" parameterType="实体类存放位置" >
    <selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER" >
      SELECT @@IDENTITY
    </selectKey>
    insert into user (gmt_create, gmt_modified, user_name)
    values (#{gmtCreate,jdbcType=TIMESTAMP}, #{gmtModified,jdbcType=TIMESTAMP}, #{userName,jdbcType=VARCHAR})
  </insert>
  <insert id="insertOrUpdate" parameterType="实体类存放位置" >
    <selectKey resultType="java.lang.Long" keyProperty="id" order="AFTER" >
      SELECT @@IDENTITY
    </selectKey>
    insert into user (gmt_create, gmt_modified, owner_uid,
    user_id, user_name, display_name, active )
    values (#{gmtCreate,jdbcType=TIMESTAMP}, #{gmtModified,jdbcType=TIMESTAMP}, #{userName,jdbcType=VARCHAR})
    ON DUPLICATE KEY UPDATE
  </insert>
  <select id="countByQuery" parameterType="实体类存放位置" resultType="java.lang.Integer" >
    select count(*) from user
    <if test="_parameter != null" >
      <include refid="Query_Where_Clause" />
    </if>
  </select>
  <update id="updateByQuerySelective" parameterType="map" >
    update user
    <set >
      <if test="record.id != null" >
        id = #{record.id,jdbcType=BIGINT},
      </if>
      <if test="record.gmtCreate != null" >
        gmt_create = #{record.gmtCreate,jdbcType=TIMESTAMP},
      </if>
      <if test="record.gmtModified != null" >
        gmt_modified = #{record.gmtModified,jdbcType=TIMESTAMP},
      </if>
      <if test="record.userName != null" >
        user_name = #{record.userName,jdbcType=VARCHAR},
      </if>
    </set>
    <if test="_parameter != null" >
      <include refid="Update_By_Query_Where_Clause" />
    </if>
  </update>
  <update id="updateByQuery" parameterType="map" >
    update user
    set id = #{record.id,jdbcType=BIGINT},
    gmt_create = #{record.gmtCreate,jdbcType=TIMESTAMP},
    gmt_modified = #{record.gmtModified,jdbcType=TIMESTAMP},
    user_name = #{record.userName,jdbcType=VARCHAR},
    <if test="_parameter != null" >
      <include refid="Update_By_Query_Where_Clause" />
    </if>
  </update>
  <update id="updateByPrimaryKeySelective" parameterType="实体类包位置" >
    update user
    <set >
      <if test="gmtCreate != null" >
        gmt_create = #{gmtCreate,jdbcType=TIMESTAMP},
      </if>
      <if test="gmtModified != null" >
        gmt_modified = #{gmtModified,jdbcType=TIMESTAMP},
      </if>
      <if test="userName != null" >
        user_name = #{userName,jdbcType=VARCHAR},
      </if>
    </set>
    where id = #{id,jdbcType=BIGINT}
  </update>
  <update id="updateByPrimaryKey" parameterType="实体类包位置" >
    update user
    set gmt_create = #{gmtCreate,jdbcType=TIMESTAMP},
    gmt_modified = #{gmtModified,jdbcType=TIMESTAMP},
    user_name = #{userName,jdbcType=VARCHAR},
  </update>
</mapper>
相关文章
|
4天前
|
存储 安全 Java
Java 集合框架中的老炮与新秀:HashTable 和 HashMap 谁更胜一筹?
嗨,大家好,我是技术伙伴小米。今天通过讲故事的方式,详细介绍 Java 中 HashMap 和 HashTable 的区别。从版本、线程安全、null 值支持、性能及迭代器行为等方面对比,帮助你轻松应对面试中的经典问题。HashMap 更高效灵活,适合单线程或需手动处理线程安全的场景;HashTable 较古老,线程安全但性能不佳。现代项目推荐使用 ConcurrentHashMap。关注我的公众号“软件求生”,获取更多技术干货!
23 3
|
2月前
|
Java 数据库
在Java中使用Seata框架实现分布式事务的详细步骤
通过以上步骤,利用 Seata 框架可以实现较为简单的分布式事务处理。在实际应用中,还需要根据具体业务需求进行更详细的配置和处理。同时,要注意处理各种异常情况,以确保分布式事务的正确执行。
|
2月前
|
消息中间件 Java Kafka
在Java中实现分布式事务的常用框架和方法
总之,选择合适的分布式事务框架和方法需要综合考虑业务需求、性能、复杂度等因素。不同的框架和方法都有其特点和适用场景,需要根据具体情况进行评估和选择。同时,随着技术的不断发展,分布式事务的解决方案也在不断更新和完善,以更好地满足业务的需求。你还可以进一步深入研究和了解这些框架和方法,以便在实际应用中更好地实现分布式事务管理。
|
3天前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
46 9
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
24天前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
86 34
|
2月前
|
存储 缓存 安全
Java 集合框架优化:从基础到高级应用
《Java集合框架优化:从基础到高级应用》深入解析Java集合框架的核心原理与优化技巧,涵盖列表、集合、映射等常用数据结构,结合实际案例,指导开发者高效使用和优化Java集合。
43 4
|
2月前
|
消息中间件 存储 Java
RocketMQ文件刷盘机制深度解析与Java模拟实现
【11月更文挑战第22天】在现代分布式系统中,消息队列(Message Queue, MQ)作为一种重要的中间件,扮演着连接不同服务、实现异步通信和消息解耦的关键角色。Apache RocketMQ作为一款高性能的分布式消息中间件,广泛应用于实时数据流处理、日志流处理等场景。为了保证消息的可靠性,RocketMQ引入了一种称为“刷盘”的机制,将消息从内存写入到磁盘中,确保消息持久化。本文将从底层原理、业务场景、概念、功能点等方面深入解析RocketMQ的文件刷盘机制,并使用Java模拟实现类似的功能。
44 3
|
2月前
|
开发框架 Java 关系型数据库
Java哪个框架适合开发API接口?
在快速发展的软件开发领域,API接口连接了不同的系统和服务。Java作为成熟的编程语言,其生态系统中出现了许多API开发框架。Magic-API因其独特优势和强大功能,成为Java开发者优选的API开发框架。本文将从核心优势、实际应用价值及未来展望等方面,深入探讨Magic-API为何值得选择。
66 2
|
2月前
|
Java 数据库连接 API
Spring 框架的介绍(Java EE 学习笔记02)
Spring是一个由Rod Johnson开发的轻量级Java SE/EE一站式开源框架,旨在解决Java EE应用中的多种问题。它采用非侵入式设计,通过IoC和AOP技术简化了Java应用的开发流程,降低了组件间的耦合度,支持事务管理和多种框架的无缝集成,极大提升了开发效率和代码质量。Spring 5引入了响应式编程等新特性,进一步增强了框架的功能性和灵活性。
52 0
|
3月前
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
162 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。