mybatis 基础(二) xml文件中的其他知识点
mybatis xml文件中一些标签的使用
此标签主要用作 配置 "别名"
如果实体类与数据库中字段名在不区分大小写的情况下相同的话,
那就不需要配置resultMap,因为mysql数据库不区分大小写,所以可以直接映射上但是如果实体类与数据库中字段名不相同的话,我们可以由三个解决方案
- 直接修改数据库字段名,使之与实体类对应上
- 在程序中配置文件中对sql语句改造,起别名,使之与实体类映射上 (直接操作sql语句效率更高)
如: select gender as usergender,age as userage from user; - 写配置文件 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文件中的其他知识点的更多相关文章
- MyBatis 3在XML文件中处理大于号小于号(<>)的方法(转)
说明:以下方式支持XML和注解的方式. 一. 用了转义字符把>和<替换掉. AND start_date <= CURRENT_DATE AND end_date >= CUR ...
- 通俗易懂,C#如何安全、高效地玩转任何种类的内存之Span的脾气秉性(二)。 异步委托 微信小程序支付证书及SSL证书使用 SqlServer无备份下误删数据恢复 把list集合的内容写入到Xml中,通过XmlDocument方式写入Xml文件中 通过XDocument方式把List写入Xml文件
通俗易懂,C#如何安全.高效地玩转任何种类的内存之Span的脾气秉性(二). 前言 读完上篇<通俗易懂,C#如何安全.高效地玩转任何种类的内存之Span的本质(一).>,相信大家对sp ...
- (转)MyBatis框架的学习(四)——Mapper.xml文件中的输入和输出映射以及动态sql
http://blog.csdn.net/yerenyuan_pku/article/details/71893689 前面对MyBatis框架的学习中,我们对Mapper.xml映射文件多少有些了解 ...
- MyBatis Mapper.xml文件中 $和#的区别
MyBatis Mapper.xml文件中 $和#的区别 网上有很多,总之,简略的写一下,作为备忘.例子中假设参数名为 paramName,类型为 VARCHAR . 1.优先使用#{paramN ...
- mybatis xml 文件中like模糊查询
1.直接传参法 直接传参法,就是将要查询的关键字keyword,在代码中拼接好要查询的格式,如%keyword%,然后直接作为参数传入mapper.xml的映射文件中. 2.CONCAT()函数 My ...
- 去掉IntelliJ IDEA 中 mybatis 对应的 xml 文件警告
https://blog.csdn.net/aubdiy/article/details/68485336 IntelliJ IDEA 打开 mybatis 的 xml 文件时,对应的 xml 文件中 ...
- 【MyBatis学习05】SqlMapConfig.xml文件中的配置总结
经过上两篇博文的总结,对mybatis中的dao开发方法和流程基本掌握了,这一节主要来总结一下mybatis中的全局配置文件SqlMapConfig.xml在开发中的一些常用配置,首先看一下该全局配置 ...
- 【Mybatis】 Mybatis在xml文件中处理大于号小于号的方法【问题】
处理大于小于号的方法: https://www.cnblogs.com/winner-0715/p/6132755.html 第一种方法:用转义字符把">"和"&l ...
- mybatis中的map.xml文件中sql语句需要分号吗?
mybatis中的map.xml文件中sql语句需要分号吗? :你是说sql介绍的分号吗?不需要的
随机推荐
- jQuery属性操作之类样式操作
类样式的操作:指对DOM属性className进行添加.移除操作.比如addClass().removeClass().toggleClass(). 1. addClass() 1.1 概述 $(se ...
- zookeeper系列(五)zookeeper在大型分布式系统中的应用
作者:leesf 掌控之中,才会成功:掌控之外,注定失败. 出处:http://www.cnblogs.com/leesf456/p/6063694.html 尊重原创感谢博主公开这么好的博文, ...
- 20175214 MySort(选做)
一.题目要求 模拟实现Linux下Sort -t : -k 2的功能. 要有伪代码,产品代码,测试代码(注意测试用例的设计) 参考 Sort的实现.提交博客链接. 二.设计思路 在命令行中输入需要的参 ...
- Thymeleaf Multiple Template Locations using Spring Boot
1. Overview In this tutorial, we'll see how we can define multiple template locations using Thymelea ...
- ThinkPhp中验证码不显示和配置项的问题解决方法
1.验证码不显示在调用验证码之前加上 ob_clean();像这样: public function verify(){ ob_clean(); $verify = new \Think\Verify ...
- yum 时一直停在Determining fastest mirrors 界面
[root@fanyk ~]# yum redis Loaded plugins: fastestmirror Determining fastest mirrors 在yum makecache时, ...
- koa2环境搭建
npm install -g koa-generator koa2 ssy-koa2 cd ssy-koa2 npm install
- numpy之数组计算
# coding=utf-8import numpy as npimport random #数组和数字计算,进行广播计算,包括加减乘除 t8 = t8 +2 print(t8,t8.dtype,t8 ...
- liunx服务器在本地可以访问但是外网访问不了
版权声明:本文为CSDN博主「tlytg456」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/tlytg/ar ...
- FAQ_1
FAQ LoadRunner录制脚本时为什么不弹出IE浏览器? 当一台主机上安装多个浏览器时,LoadRunner录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决. 启动浏览器,打开Int ...