首页 > 其他分享 >Mybatis的Mapper映射文件中常用标签

Mybatis的Mapper映射文件中常用标签

时间:2024-10-14 21:22:46浏览次数:1  
标签:username Mapper 缓存 映射 点击 user Mybatis password id

select

点击查看代码
<select id="selectPerson" 
parameterType="int" 
parameterMap="deprecated" 
resultType="hashmap" 
resultMap="personResultMap" 
flushCache="false" 
useCache="true" 
timeout="10000" 
fetchSize="256" 
statementType="PREPARED" 
resultSetType="FORWARD_ONLY" 
databaseId="mysql" 
resultOrdered="false" 
resultSets="xxx,xxx" 
lang="">
id 必选标签。同一个命名空间里面的唯一标识符,如果需要被外部接口调用,则需要和Mapper接口中的方法名保持一致。

parameterType
可选标签。参数类的完全限定名或别名,上面示例中的表示我们传入的参数是一个String类型(关于别名如果不清楚的可以点击这里)。如果不写这个属性的话,MyBatis在解析xml文件的时候会默认设为unset,然后根据TypeHandler推断出参数类型。如果有多个参数的情况下建议还是不写这个参数,否则可能会出现参数类型转换错误

resultType
非必选标签。
注意这里的非选是因为resultType和resultMap不能并存,两者能且只能选择一个。主要是用来定义一个返回结果集对象的全限定名或者别名。如果接收参数是一个集合,那么这里定义的就是集合中可以包含的类型,而并不是集合本身。

resultMap
非必选标签。
注意这里的非选是因为resultType和resultMap不能并存,两者能且只能选择一个。resultMap类型的结果集映射,是MyBatis最强大的特性,在这里我们不展开,过两天会有一篇单独介绍MyBatis一对一和一对多等复杂查询时候会单独介绍该属性。

insert

点击查看代码
<insert
id="insertLwUser"
parameterType="lwUser"
parameterMap="deprecated"
flushCache="true"
statementType="PREPARED"
keyProperty=""
keyColumn=""
useGeneratedKeys=""
timeout="20"
databaseId="mysql"
lang="">
keyProperty 可选标签。唯一标记一个属性,MyBatis会将通过getGeneratedKeys 的返回值或者通过insert 语句的selectKey 子元素设置它的键值,默认值是unset 。如果希望得到多个生成的列,也可以是逗号分隔的属性名称列表

update

delete

sql,include

这个元素可以被用来定义可重用的 SQL 代码段,可以包含在其他语句中。

点击查看代码
 <select id="selectUserAddress" resultType="com.lonelyWolf.mybatis.model.UserAddress">
        select <include refid="myCloumn"></include> from lw_user_address
    </select>

    <sql id="myCloumn" >
        id,address
    </sql>

cache

MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制。但是默认情况下只开启了一级缓存,即局部的session缓存,如果想要开启二级缓存。那么就需要使用到cache标签

点击查看代码
<cache
type="com.lonelyWolf.xxx"
eviction="FIFO"
flushInterval="60000"
readOnly="true"
size="512"/>

type
如果说我们自己自定义了缓存,那么这里可以配置自定义缓存类的全限定名或者别名,如果没有自定义缓存,则不需要配置type属性。
eviction
缓存回收策略,MyBatis中more提供了以下策略可以选择:

LRU:最近最少使用算法(默认算法)。移除最长时间不被使用的对象
FIFO:先进先出算法。按对象进入缓存的顺序来移除它们
SOFT:软引用。移除基于垃圾回收器状态和软引用规则的对象。
WEAK:弱引用。更积极地移除基于垃圾收集器状态和弱引用规则的对象
flushInterval
刷新间隔时间(单位是毫秒)。可以被设置为任意的正整数。默认情况是不设置,也就是不会主动刷新缓存(只有等待sql被执行的时候才会被刷新)。

readOnly
是否只读。属性可以被设置为 true 或 false。如果设置为true,那么只读的缓存会给所有调用者返回缓存对象的相同示例,因为缓存无法被修改。这在一定程度上可以提升性能。
默认是false,也就是可以修改缓存,那么当读取缓存的时候会通过序列化的方式返回缓存对象的拷贝,虽然这么做会慢一点,但是安全,因此默认才会设置为false,允许修改缓存。

if和where

点击查看代码
	<sql id="hhh">select *from t_user</sql>
    <select id="queryUserByUnameAndPwd resultType="User">
		<include refid="hhh"/>
		<where>
			<if test="username!=null">
			 	and username = #{username}
			</if>
			<if test="password!=null">
				and password = #{password}
			</if>
		</where>
    </select>

if和set

点击查看代码
<update id="updateUser" parameterType="User">
	update t_user
	<set>
	<if test="password!=null">
	password = #{password},
	</if>
	<if test="username!=null">
	username=#{username}
	</if>
	where id = #{id}
</update>

trim

点击查看代码
 <select id="queryUserById2" resultType="User">
        <include refid="user_fired"/>
        <!--prefix=“where" 给拼接的sql语句加前缀,前缀为where,
        prefixOverrides="or|and" where子句中如果以or或者and开头,会被覆盖-->

        <trim prefix="where" prefixOverrides="or|and">
            <if test="username!=null">
                username = #{username}
            </if>
            <if test="gender!=null">
                and gender = #{gender}
            </if>
        </trim>
    </select>
    <update id="updateUserById" parameterType="User">
        update t_user
        <!--prefix=“set" 给拼接的sql语句加前缀,前缀为set,
        suffixOverrides=","自动将最后一个逗号删除-->

        <trim prefix="set" suffixOverrides=",">
            <if test="username!=null">
                username = #{username},
            </if>
            <if test="gender!=null">
                gender = #{gender},
            </if>
        </trim>
        where id = #{id}
    </update>

foreach

delete from t_user where id in #{i}
<insert id="insertUsers" parameterType="java.util.List">
    insert into t_user values
    <foreach collection="list" open="" close="" separator="," item="u">
        (null,#{u.username},#{u.password},#{u.gender},#{u.registTime})
    </foreach>
</insert>

choose和when和otherwise

点击查看代码
    <select id="findUser" resultType="User">
        select *from t_user where id = #{id}
        <choose>
            <when test="username!=null">
                AND username like #{username}
            </when>
            <when test="password!=null">
                AND password = #{password}
            </when>
            <otherwise>
                AND gender = 1
            </otherwise>
        </choose>
    </select>

bind

点击查看代码
<?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.how2java.pojo">
        <!-- 本来的模糊查询方式 -->
<!--         <select id="listProduct" resultType="Product"> -->
<!--             select * from   product_  where name like concat('%',#{0},'%') -->
<!--         </select> -->
             
        <select id="listProduct" resultType="Product">
            <bind name="likename" value="'%' + name + '%'" />
            select * from   product_  where name like #{likename}
        </select>
</mapper>

标签:username,Mapper,缓存,映射,点击,user,Mybatis,password,id
From: https://www.cnblogs.com/k180/p/18466174

相关文章

  • Mybatis的Mapper映射文件中常用标签及作用
    MyBatis是一个广泛使用的持久层框架,能够将对象与数据库中的记录进行映射。在MyBatis的Mapper映射文件中,有许多常用标签,它们各自有不同的功能。以下是一些常见标签及其作用:1.select标签作用:用来定义查询操作。示例:点击查看代码<selectid="selectUser"resultType="Use......
  • Mybatis的Mapper映射文件中常用标签及作用
    mapper标签作用:根标签,用于定义一个Mapper文件。属性:namespace,指定Mapper接口的全限定名。select标签作用:定义一个查询语句。属性:id:语句的唯一标识符,对应Mapper接口中的方法名。parameterType:输入参数的类型。resultType:返回结果的类型。resultMap:返回结果......
  • Mybatis的Mapper映射文件中常用标签
    增删改查标签增:<insertid=""parameterType=""useGeneratedKeys="true"keyProperty="id">id接口名,parameterType传参类型,useGeneratedKeys是否使用数据库生成的主键,keyProperty将主键映射到哪个属性删:<deleteid=""></delete>改......
  • Mybatis的Mapper映射文件中常用标签以及作用
    1.SqlMapConfig标签SqlMapConfig标签是Mybatis配置文件中的根标签,它用于配置Mybatis的全局属性,包括数据库连接信息、类型别名、事务管理器等1.properties:用于指定外部属性文件的位置,可以用来配置数据库连接信息等敏感信息。2.settings:用于配置Mybatis的全局属性,包括......
  • Mybatis的Mapper映射文件中常用标签及作用
    1.<sql>标签定义重复使用的字段提高复用性点击查看代码<sqlid="Base_Column_List">id,name,contract_no,pdf_url,member_phone,elder_id,start_time,end_time,status,sort,level_desc,create_time,create_by,update_time,update_by,remark,......
  • Mybatis的Mapper映射文件中常用标签
    1、Mapper标签Mapper标签用于描述SQL映射关系。Mapper标签有以下属性:namespace:指定Mapper接口的完整路径名。resultMap:指定结果映射关系,将查询结果映射成java对象。parameterMap:指定参数映射关系,将java对象映射成sql参数。sql:定义可重用的sqkl片段insert、update......
  • Mybatis的Mapper映射文件中常用标签及作用
    select,update,delete,insert用于定义增删查改语句if判断为true时,拼接该语句where动态生成where去除多余的and/orset动态生成set去除多余的,sql用于sql语句的复用include用于引用sql标签中的语句selectKey定义在insert和update中,用于主键回显。trim添加前缀......
  • Mybatis的Mapper映射文件中常用标签及作用
    Mybatis的Mapper映射文件中常用标签及作用1.<mapper>标签主要用于定义Mapper接口的映射文件。通常包含命名空间(namespace),该命名空间通常是接口的全限定类名。<mappernamespace="com.example.demo.mapper.UserMapper">2.<insert>标签用于定义插入语句,对应于Mapper接口......
  • Mybatis的Mapper映射文件中常用标签及作用
    Mapper映射文件常用标签1、select-用于映射SELECT语句。此标签用于从数据库中查询数据,并且可以选择返回不同的结果类型。通常需要结合resultType或resultMap属性来指定结果应该映射到哪种Java类型或自定义的结果映射规则。<selectid="selectUsers"resultType="map">......
  • Mybatis的Mapper映射文件中常用标签
    MyBatis是一个Java语言的持久层框架,它支持自定义SQL查询、存储过程以及高级映射。MyBatis简化了JDBC的繁琐操作,如手动设置参数或者获取结果集。MyBatis可以使用XML或注解来配置和映射原生信息,将接口和Java的POJOs(PlainOldJavaObjects,普通的Java对象)映射成数据......