Mybatis实现单个和批量定义别名typeAliases
作者:编码小王子 发布时间:2023-02-11 06:27:03
标签:Mybatis,别名,typeAliases
单个和批量定义别名typeAliases
使用Mybatis的别名typeAliases可以在xml文件里非常方便的使用类,而不需要写出这个类的全部路径
一、使用和不使用别名的区别是
不使用别名时:parameterType中需要写出这个类的全路径,特别麻烦
<insert id="saveCity" keyProperty="id" useGeneratedKeys="true" parameterType="com.jd.lgg.web.domain.city.City">
insert into jd_am_visit_city(cityName,creationTime,updateTime,yn)
values(#{cityName},now(),now(),1)
</insert>
使用别名时,直接用别名来代替这个类就可以啦
<insert id="saveCity" keyProperty="id" useGeneratedKeys="true" parameterType="city">
insert into jd_am_visit_city(cityName,creationTime,updateTime,yn)
values(#{cityName},now(),now(),1)
</insert>
二、如何定义单个别名
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<!-- 这样定义后就可以用city来代替整个City类全路径了-->
<typeAlias alias="city" type="com.jd.lgg.web.domain.city.City"/>
</typeAliases>
</configuration>
三、如何批量定义别名
但是如何整个项目的实体类特别多的时候,每一个都这么定义特别麻烦,而且如有有一个忘了定义就使用的话,项目会报很奇怪的错误,那么这个问题如何解决呢?
答案是批量定义别名,只定义这类所在的包名就可以了,这些包下面的类或者这些包的子包下面的类都可以直接用他们类名,或者将类名的首字母小写来代替这个类,
批量定义别名的格式如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<!-- 批量定义别名,指定包名,此时pojo类的别名是pojo类的类名首字母大写或小写都行 -->
<package name="com.jd.lgg.web.domain"/>
</typeAliases>
</configuration>
这样的话,所有的在domain包下的类都可以用该类的类名来表示这个类了,在xml文件中的使用于单个定义别名一模一样。
typeAliases别名配置元素详述
mybatis为我们已经实现了很多别名,已经为许多常见的 Java 类型内建了相应的类型别名。
它们都是大小写不敏感的,需要注意的是由基本类型名称重复导致的特殊处理。
别名 | 映射的类型 |
---|---|
_byte | byte |
_long | long |
_short | short |
_int | int |
_integer | int |
_double | double |
_float | float |
_boolean | boolean |
string | String |
byte | Byte |
long | Long |
short | Short |
int | Integer |
integer | Integer |
double | Double |
float | Float |
boolean | Boolean |
date | Date |
decimal | BigDecimal |
bigdecimal | BigDecimal |
object | Object |
map | Map |
hashmap | HashMap |
list | List |
arraylist | ArrayList |
collection | Collection |
iterator | Iterator |
来源:https://blog.csdn.net/u011900448/article/details/79035109
0
投稿
猜你喜欢
- 3.3 do...while()循环3.3.1 do语句的语法:do
- 前言之前做的几个微信小程序项目,大部分客户都有要在微信小程序前端提现的需求。提现功能的实现,自然使用企业付款接口,不过这个功能开通比较麻烦,
- 这是之前软工课设我写的java访问mysql工具类,它经过了多轮的测试,应该能够适应大多数的操作需求。比之前大二写的更鲁棒,更易用。pack
- 目录定义数据库表访问表中的数据插入数据查询数据创建数据库测试 DaoRoom 是 SQLite 的封装,它使 Android 对数据库的操作
- 前言需求要点如下:弹幕行数为3行,每条弹幕相互依靠但不存在重叠每条弹幕可交互点击跳转滚动速度恒定 触摸不可暂停播放弹幕数据固定一百条且支持轮
- 主要有四个:public——成员可以由任何代码访问。private——成员只能由类中的代码访问(如果没有使用任何关键字,就默认使用这个关键字
- 这篇文章主要介绍了springboot自定义异常视图过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需
- 记录:276场景:利用Spring的机制发布ApplicationEvent和监听ApplicationEvent。版本:Spring Bo
- 效果明细用Popup实现的,录gif时,Popup显示不出来,不知道为什么,所以静态图凑合看吧大体思路图表使用Arc+Popup实现图表分为
- 苹果的iphone 有语音识别用的是Google 的技术,做为Google 力推的Android 自然会将其核心技术往Android 系统里
- 本文实例讲述了Android TextView中文字通过SpannableString设置属性的方法。分享给大家供大家参考,具体如下:在An
- 正在编译...1>Ipv4IPv6traceroutesrc.cpp1>d:\研究生\c++\study\test\test\i
- 如果想实现一个在桌面显示的悬浮窗,用Dialog、PopupWindow、Toast等已经不能实现了,他们基本都是在Activity之上显示
- 本人亲测,在使用IDEA使用Maven模板创建项目或者在当前项目中New Project,Maven的以下三个配置参数会重置使用C:\Use
- 本文实例讲述了C#模拟Http与Https请求框架类。分享给大家供大家参考。具体实现方法如下:using System.Text;using
- 本文实例为大家分享了Android ViewPager指示器的制作方法,供大家参考,具体内容如下1.概述ViewPageIndicator这
- 在Android开发中,我们经常使用列表控件,而有时候列表控件条目中又会是多条目数据,这时候,我们无法确定每个条目的数据多少,而为了美观,我
- 前言说实话,我在 * 工作的时候,就见过Gradle。但是当时我一直不知道这是什么东西。而且 * 工具组的工程师还将其和Android Stud
- 一、导入相关jar包,pom依赖如下: <dependency> <groupId>org
- App中,有很大一部分场景是点击按钮,向服务端提交数据,由于网络请求需要时间,用户很可能会多次点击,造成数据重复提交,造成各种莫名其妙的问题