mybatis xml文件中一些标签的使用

  1. 此标签主要用作 配置 "别名"

    如果实体类与数据库中字段名在不区分大小写的情况下相同的话,

    那就不需要配置resultMap,因为mysql数据库不区分大小写,所以可以直接映射上

    但是如果实体类与数据库中字段名不相同的话,我们可以由三个解决方案

    1. 直接修改数据库字段名,使之与实体类对应上
    2. 在程序中配置文件中对sql语句改造,起别名,使之与实体类映射上 (直接操作sql语句效率更高)

      如: select gender as usergender,age as userage from user;
    3. 写配置文件 resultMap,使之映射上,但是需要修改resultType="com.mybatis.entry.User" 为 resultMap="userMap" (方便)
 <resultMap id="userMap" type="com.mybatis.entry.User">
<!--首先配置主键对应-->
<id column="uid" property="userUid"></id>
<!--其他属性配置-->
<result column="username" property="userName"></result>
<result column="gender" property="userGender"></result>
<result column="age" property="userAge"></result>
</resultMap>

2.typeAliases 标签

主要作用是起别名, 便于开发中简化一些文字

其中typeAlias的作用 :type指定类,alias指定别名

如这里修改了User.class的名字为user,  则在User.xml中的com.mybatis.entry.User全部可以改成user  或者 他的任意大小写形式,这里不区分大小写的
package的作用: 指定包,该包下所有的类都建立的别名,别名默认为该类的小写形式,同样不区分大小写
    <typeAliases>
<!-- <typeAlias type="com.mybatis.entry.User" alias="user"></typeAlias>-->
<package name="com.mybatis.entry"></package>
</typeAliases>

3.

<mappers>
<mapper resource="com/mybatis/dao/IUserDao.xml"></mapper>
<!--package 指定dao接口所在的包,当指定后不需要再写mapper以及resource或者class了-->
<!-- <package name="com.mybatis.dao"></package>-->
</mappers>

4.假如包含多个条件时,可以使用标签的方式进行条件查询, 当包含出基本实体类的其他条件时,可以新建一个实体类,将所需的条件全部放入其中,用新的实体类去进行条件的获取

<select id="findByCondition" parameterType="user"  resultType="user">
select * from user
<!-- 这里的userName 对应的也是实体类中的属性-->
<where>
<if test="userName!=null">
username=#{userName}
</if>
<if test="gender!=null">
and gender=#{gender}
</if>
</where>
</select> <!--多个id,新建实体类,传入id集合,并用foreach标签遍历ids-->
<select id="findByIds" parameterType="vo" resultType="user">
select * from user
<!-- 这里的userName 对应的也是实体类中的属性-->
<where>
<if test="ids !=null and ids.size()>0">
<foreach collection="ids" open=" uid in (" close=")" item="uid" separator=",">
#{uid}
</foreach>
</if>
</where>
</select>

5.当某sql语句重复出现,可以使用标签提取sql. 然后再语句中使用包含进来

 <!--提取sql语句,避免重复-->
<sql id="defaultUser" >
select * from user
</sql>
<!--获得所有用户列表-->
<!--<select id="getUsers" resultMap="userMap">-->
<select id="getUsers" resultType="com.mybatis.entry.User">
<include refid="defaultUser"></include>
// select * from user
</select>

mybatis 基础(二) xml文件中的其他知识点的更多相关文章

  1. MyBatis 3在XML文件中处理大于号小于号(<>)的方法(转)

    说明:以下方式支持XML和注解的方式. 一. 用了转义字符把>和<替换掉. AND start_date <= CURRENT_DATE AND end_date >= CUR ...

  2. 通俗易懂,C#如何安全、高效地玩转任何种类的内存之Span的脾气秉性(二)。 异步委托 微信小程序支付证书及SSL证书使用 SqlServer无备份下误删数据恢复 把list集合的内容写入到Xml中,通过XmlDocument方式写入Xml文件中 通过XDocument方式把List写入Xml文件

    通俗易懂,C#如何安全.高效地玩转任何种类的内存之Span的脾气秉性(二).   前言 读完上篇<通俗易懂,C#如何安全.高效地玩转任何种类的内存之Span的本质(一).>,相信大家对sp ...

  3. (转)MyBatis框架的学习(四)——Mapper.xml文件中的输入和输出映射以及动态sql

    http://blog.csdn.net/yerenyuan_pku/article/details/71893689 前面对MyBatis框架的学习中,我们对Mapper.xml映射文件多少有些了解 ...

  4. MyBatis Mapper.xml文件中 $和#的区别

    MyBatis Mapper.xml文件中 $和#的区别   网上有很多,总之,简略的写一下,作为备忘.例子中假设参数名为 paramName,类型为 VARCHAR . 1.优先使用#{paramN ...

  5. mybatis xml 文件中like模糊查询

    1.直接传参法 直接传参法,就是将要查询的关键字keyword,在代码中拼接好要查询的格式,如%keyword%,然后直接作为参数传入mapper.xml的映射文件中. 2.CONCAT()函数 My ...

  6. 去掉IntelliJ IDEA 中 mybatis 对应的 xml 文件警告

    https://blog.csdn.net/aubdiy/article/details/68485336 IntelliJ IDEA 打开 mybatis 的 xml 文件时,对应的 xml 文件中 ...

  7. 【MyBatis学习05】SqlMapConfig.xml文件中的配置总结

    经过上两篇博文的总结,对mybatis中的dao开发方法和流程基本掌握了,这一节主要来总结一下mybatis中的全局配置文件SqlMapConfig.xml在开发中的一些常用配置,首先看一下该全局配置 ...

  8. 【Mybatis】 Mybatis在xml文件中处理大于号小于号的方法【问题】

    处理大于小于号的方法: https://www.cnblogs.com/winner-0715/p/6132755.html 第一种方法:用转义字符把">"和"&l ...

  9. mybatis中的map.xml文件中sql语句需要分号吗?

    mybatis中的map.xml文件中sql语句需要分号吗? :你是说sql介绍的分号吗?不需要的

随机推荐

  1. 20190716NOIP模拟赛T2 通讯(tarjan缩点+贪心)

    题目描述 “这一切都是命运石之门的选择.” 试图研制时间机器的机关SERN截获了中二科学家伦太郎发往过去的一条短 信,并由此得知了伦太郎制作出了电话微波炉(仮). 为了掌握时间机器的技术,SERN总部 ...

  2. sh_20_for语法演练

    sh_20_for语法演练 for num in [1, 2, 3]: print(num) if num == 2: break else: # 如果循环体内部使用break退出了循环 # else ...

  3. Loooooooooooooooong time no see!

    好久没来啦~去年这会一口气写了好多,是因为即将离职,在公司闲的没事,再加上也积累了一些东西想分享. 最近有个朋友给我私信求助,才又想起这里.这快一年时间,又学习了不少东西.从何写起呢,哈哈,不知道啊~ ...

  4. CentOS8编译openocd-0.10.0

    1.sudo yum install libusbx-devel 2. ./configure --prefix=$HOME/openocd-0.10.0 --enable-jlink CFLAGS= ...

  5. 对iOS锁的一些研究

    #import <objc/runtime.h> #import <objc/message.h> #import <libkern/OSAtomic.h> #im ...

  6. JS基础_对象操作

    1.in 运算符 通过该运算符可以检查一个对象中是否含有指定的属性,如果有,返回true 语法: “属性名” in 对象 var obj = { name:"hello" } co ...

  7. vxWorks下常用的几种延时方法

         在应用编程的时候,通常会碰到需要一个任务在特定的延时之后执行一个指定的动作,如等待外设以确保数据可靠,控制扬声器发声时间以及串口通信超时重发等.这就需要利用定时器机制来计量特定长度的时间段. ...

  8. windows上配置pytorch

    操作系统:win10 已安装程序:Python 3.6 + Anaconda 5.1.0 + CUDA 9 pytorch官网:https://pytorch.org/ 1.进入官网,从Get Sta ...

  9. pid稳态控制

    https://blog.csdn.net/qq_25352981/article/details/81007075

  10. Mycat读写分离 + 主从复制(Gtid)

    大概架构如下: IP 主机名   OS192.168.1.177 mycat   CentOS7.4.1708192.168.1.184   master CentOS7.4.1708192.168. ...