`

MyBatis中XML 映射配置文件的简单介绍

阅读更多

官网写的比较具体,可以查看以下的网站:

http://www.mybatis.org/mybatis-3/zh/configuration.html

 

另外,实际用到标准的CRUD的操作和查询列表,

<?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="com.iteye.tom.dao.AuthItemRecordDao">
    
    <sql id="requestAllFields">
        <![CDATA[
            id,
            record_time AS recordTime,
            source_code AS sourceCode,
            userid,
            auth_item_id AS authItemId,
            isvalid,
            last_status_time AS lastStatusTime
        ]]>
    </sql>
    
    <sql id="whereClause">
        <where>
            <if test="null!=id">AND id = #{id}</if>
            <if test="null!=sourceCode and ''!=sourceCode">AND source_code = #{sourceCode}</if>
            <if test="null!=userid and ''!=userid">AND userid = #{userid}</if>
            <if test="null!=authItemId and ''!=authItemId">AND auth_item_id = #{authItemId}</if>
            <if test="null!=isvalid and ''!=isvalid">AND isvalid = #{isvalid}</if>
            <include refid="extendedWhereClause" />
        </where>
    </sql>
    
    <insert id="add" useGeneratedKeys="true" parameterType="com.iteye.tom.bean.AuthItemRecord" keyProperty="id">
        INSERT INTO tab_auth_item_record
        <trim prefix="(" suffix=")" prefixOverrides=",">
            <if test="null!=recordTime">,record_time</if>
            <if test="null!=sourceCode and ''!=sourceCode">,source_code</if>
            <if test="null!=userid and ''!=userid">,userid</if>
            <if test="null!=authItemId and ''!=authItemId">,auth_item_id</if>
            <if test="null!=isvalid and ''!=isvalid">,isvalid</if>
            <if test="null!=lastStatusTime">,last_status_time</if>
        </trim>
        VALUES
        <trim prefix="(" suffix=")" prefixOverrides=",">
            <if test="null!=recordTime">,#{recordTime}</if>
            <if test="null!=sourceCode and ''!=sourceCode">,#{sourceCode}</if>
            <if test="null!=userid and ''!=userid">,#{userid}</if>
            <if test="null!=authItemId and ''!=authItemId">,#{authItemId}</if>
            <if test="null!=isvalid and ''!=isvalid">,#{isvalid}</if>
            <if test="null!=lastStatusTime">,#{lastStatusTime}</if>
        </trim>
    </insert>
    
    <update id="update" parameterType="com.iteye.tom.bean.AuthItemRecord">
        UPDATE tab_auth_item_record
        <trim prefix="SET" prefixOverrides=",">
            <if test="null!=recordTime">,record_time = #{recordTime}</if>
            <if test="null!=sourceCode and ''!=sourceCode">,source_code = #{sourceCode}</if>
            <if test="null!=userid and ''!=userid">,userid = #{userid}</if>
            <if test="null!=authItemId and ''!=authItemId">,auth_item_id = #{authItemId}</if>
            <if test="null!=isvalid and ''!=isvalid">,isvalid = #{isvalid}</if>
            <if test="null!=lastStatusTime">,last_status_time = #{lastStatusTime}</if>
            <include refid="extendedUpdateSql" />
        </trim>
        WHERE id = #{id}
    </update>
    
    <select id="query" parameterType="com.iteye.tom.bean.AuthItemRecord" resultType="com.iteye.tom.bean.AuthItemRecord">
        SELECT <include refid="requestAllFields"/> FROM tab_auth_item_record
        <include refid="whereClause" />
        <include refid="extendedOrderByClause" />
        <if test="null!=requestOffset">
            LIMIT #{requestOffset}, #{requestCount}
        </if>
    </select>
    
    <select id="get" parameterType="com.iteye.tom.bean.AuthItemRecord" resultType="com.iteye.tom.bean.AuthItemRecord">
        SELECT <include refid="requestAllFields"/> FROM tab_auth_item_record
        <include refid="whereClause" />
        LIMIT 1
    </select>
    
    <select id="getById" parameterType="long" resultType="com.iteye.tom.bean.AuthItemRecord">
        SELECT <include refid="requestAllFields"/> FROM tab_auth_item_record WHERE id = #{id}
    </select>
    
    <select id="count" parameterType="com.iteye.tom.bean.AuthItemRecord" resultType="int">
        SELECT COUNT(1) FROM tab_auth_item_record <include refid="whereClause" />
    </select>

    <delete id="deleteByUserid" parameterType="com.iteye.tom.bean.AuthItemRecord" >
        DELETE FROM tab_auth_item_record WHERE userid = #{userid}    </delete>
    
    <!-- 扩展的更新等语句(自定义)-->
    <sql id="extendedUpdateSql">
        <if test="null!=extendedParameter">
            
        </if>
    </sql>
    
    <!-- 扩展的条件过滤语句(自定义)-->
    <sql id="extendedWhereClause">
        <if test="null!=extendedParameter">
            
        </if>
    </sql>
    
    <!-- 扩展的排序等语句(自定义)-->
    <sql id="extendedOrderByClause">
        <if test="null!=extendedParameter">
            
        </if>
    </sql>
</mapper>

 

分享到:
评论

相关推荐

    spring和Mybatis的xml配置文件提示约束包

    "spring和Mybatis的xml配置文件提示约束包"这个主题,主要是关于在XML配置文件中使用的DTD(Document Type Definition)文档类型定义,它为XML文件提供了结构约束和语法规范。 DTD是一种元语言,用于定义XML文档的...

    MyBatis-2 全局配置文件

    接下来,我们将深入探讨这个全局配置文件中的各个标签及其具体使用。 1. **`&lt;configuration&gt;`**:这是全局配置文件的根标签,包含了所有其他的配置元素。 2. **`&lt;properties&gt;`**:用于加载外部属性文件,例如...

    mybatis配置xml最新dtd文件

    这些文件定义了MyBatis配置文件(mybatis-3-config.xml)和映射文件(mapper.xml)的元素、属性和它们的顺序。 首先,`mybatis-3-config.dtd`是MyBatis配置文件的DTD。它定义了如下的主要元素: 1. `...

    关于MyBatis找不到映射文件的问题

    在MyBatis的核心配置文件mybatis-config.xml中,我们需要使用元素来指定映射文件的位置。例如:&lt;mappers&gt; &lt;mapper resource="mapper/UserMapper.xml" /&gt; 二、找不到映射文件的问题 然而,在某些情况下,即使我们...

    Mybatis自动生成映射配置文件信息的generator工具

    Mybatis Generator是一款强大的Java代码生成工具,它能够自动根据数据库表结构生成Mybatis的Mapper接口、XML映射文件以及实体类,极大地提高了开发效率。在实际的开发过程中,手动编写这些文件不仅耗时,还容易出错...

    mybatis_xml插件

    同时,为了更好地利用插件,开发者还需要熟悉MyBatis的配置和Mapper接口的使用方式,以及XML映射文件中的各种元素和属性。 总之,MyBatis_XML插件是Java开发中针对MyBatis框架的一个强大辅助工具,它简化了XML文件...

    mybatis导出xml文件(只支持mysql数据库)

    MyBatis提供了强大的动态SQL功能,使得开发者能够在XML映射文件中编写灵活多变的SQL,以适应不同的业务需求。此外,MyBatis还允许将结果映射到Java对象,简化了数据访问层的代码。 在压缩包子文件的文件名"mybatis-...

    mybatis xml文件自动生成

    5. 配置映射关系:在MyBatis的配置文件中,需要添加新生成的Mapper文件路径,以使MyBatis知道如何查找和使用这些映射。 6. 自定义优化:虽然自动化工具能大大减轻工作量,但有时可能需要对生成的代码进行调整,比如...

    mybatis映射文件xml+bean+dao自动构建

    - **Mapper XML文件生成**:为每个DAO接口生成对应的XML映射文件,包含SQL语句和结果映射配置。 - **Service层代码生成**:虽然没有直接提及,但通常这类工具也会提供生成Service层代码的选项,以便于实现业务逻辑。...

    myBatis xml提示文件

    XML提示文件中的#{id}是一种参数占位符,MyBatis会自动进行参数绑定,防止SQL注入攻击。此外,MyBatis还支持动态SQL,通过`&lt;if&gt;`, `&lt;choose&gt;`, `&lt;when&gt;`, `&lt;otherwise&gt;`, `&lt;where&gt;`, `&lt;set&gt;`, `&lt;foreach&gt;`等标签,...

    mybatis_xml关联插件

    2. 代码关联:查看一个Java方法时,可以迅速找到它在XML配置文件中的映射,便于理解数据访问逻辑。 3. 提升开发体验:减少在源码和配置文件之间反复切换的困扰,提升开发速度和准确性。 此外,了解MyBatis框架的...

    mybatis生成映射文件和xml文件所需jar包

    在Maven构建过程中,执行`mvn mybatis-generator:generate`命令,MyBatis Generator会根据配置文件中的设置自动生成相应的代码。 关于`mysql-connector-java-8.0.11.jar`,这是MySQL的Java连接器,它是连接到MySQL...

    MyBatis+MySQL本地自动生成映射类和XML文件

    4. **配置文件**:在使用自动生成工具时,我们需要编写一个配置文件(通常是XML格式),在这个文件中指定数据库连接信息、需要生成的表、生成的文件路径等参数。 5. **数据库表反向工程**:自动生成工具会进行...

    mybatis generator jar带configure配置文件

    这样,MyBatis Generator就会根据配置文件中的设置,自动连接数据库,读取表结构,然后生成对应的实体类、Mapper接口和XML配置文件。生成的实体类会包含数据库字段对应的属性和getter/setter方法,Mapper接口包含...

    Java的MyBatis框架中Mapper映射配置的使用及原理解析

    Mapper映射配置文件是MyBatis的核心组成部分,用于定义SQL查询和结果映射。 首先,我们来看一下Mapper的XML配置文件。Mapper的XML文件通常放在项目的`resources`目录下,以`.xml`为扩展名,与对应的Java接口处于...

    mybatis入门实例(xml)

    综上所述,MyBatis 的 XML 配置文件是实现 SQL 映射和 Java 代码解耦的关键。通过定义映射文件,我们可以方便地管理数据库操作,提高代码的可读性和可维护性。在 "mybatis_test01" 这个例子中,你可以进一步学习如何...

    mybatis简单使用xml配置的Demo

    总结,MyBatis通过XML配置文件实现了SQL语句的封装和结果映射,使得开发者可以更专注于业务逻辑,而不是繁琐的JDBC代码。`mybatis-config.xml`是全局配置,`UserMapper.xml`是特定Mapper的配置。在实际应用中,你...

    Mybatis-03 SQL映射文件

    MyBatis支持在XML映射文件中使用条件标签实现动态SQL,如`&lt;if&gt;`, `&lt;choose&gt;`, `&lt;when&gt;`, `&lt;otherwise&gt;`, `&lt;where&gt;`, `&lt;trim&gt;`, `&lt;set&gt;`等。这些标签允许根据特定条件拼接SQL语句,极大地提高了代码的灵活性。 7. *...

Global site tag (gtag.js) - Google Analytics