mybatis 基础(二) xml文件中的其他知识点
2024-10-19 18:42:13
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>
最新文章
- python 处理CSV数据
- SQL Server 定时自动备份数据库
- iOS ViewController生命周期
- ContentProvider官方教程(1)何时用content provider
- django配置
- PowerShell 远程执行任务
- [ExtJS5学习笔记]第二十一节 Extjs5中使用config配置给ext.widget或者create方法传递参数
- 题解 P5315 【头像上传】
- Wcf传递的参数实际不为空,但是接收时显示为空。
- .net core2.x - Identity - 简介
- MySQL_优化
- jQuery 获取url中的参数
- day71 菜单的排序 点击被选中
- vs code编辑器使用教程指南
- 洛谷P3950 部落冲突(LCT)
- openURL调用其他程序(转)
- ztree使用系列三(ztree与springmvc+spring+mybatis整合实现增删改查)
- SVN搭建(linux 7)
- MapReduce分区的使用(Partition)
- 一个DIV相对于另一个DIV定位
热门文章
- noi.ac #535 生成树
- Codeforces 1054D Changing Array 贪心+异或和
- vue 指示点的疑点拓展
- koa 基础(二十五)数据库 与 art-template 模板 联动 --- 新增数据
- ubuntu 18.04 64bit下如何源码编译安装anbox
- JavaScript 格式化数字成金额格式
- vs2010 SetUp 安装软件时,界面出现乱码的问题
- jmeter beanShell修改http请求参数
- POJ 1182-食物链 [并查集] 《挑战程序设计竞赛》2.4
- TYPES与DATA区别