使用mybatis的xml文件写sql语句,想着是怎么简便怎么写,这使用的过程中遇到了很多不同的问题,为了下次更好的记住,这里做一下简单的总结,欢迎补充。

比较原始的做法是xml里面定义好的东西:

<resultMap type="com.huaying.bean.bus.BusAlipayAccount" id="BusAlipayAccountResultMap"><result column="id" property="id" /><result column="create_date" property="createDate" /><result column="state" property="state" /><result column="account" property="account" /><result column="partner_id" property="partnerId" /><result column="code" property="code" /><result column="is_enable" property="isEnable" /><result column="keyt" property="keyt" /><result column="keyp" property="keyp" /></resultMap>

这是一个结果集,是和实体类中的字段一一对应的,当我们需要有返回结果时,可以直接使用结果集中的ID,例如:

<select id="listPage" parameterType="pd" resultMap="BusAlipayAccountResultMap">selectt.id ,t.create_date ,t.state ,t.account ,t.partner_id ,t.code ,t.is_enable ,t.keyt,t.keypfrom ${dbName}.yst_bus_alipay_account t where t.state !='-1'order by t.create_date desc</select>

这里的resultMap对应结果集中的id,这样的好处,显示比较直观,和实体类保持一致,当然可以根据自己的喜好,使用别名。

就像parameterType="pd",这里的pd其实就是别名,那么怎么设置别名呢?

首先,定义一个类(这里定义的类是接受参数的map自定义类),这个可以根据自己的需求定义,这里只介绍别名注解:

@Alias(value="pd")

那么,在定义好的类上加上注解,是不是就可以使用了呢?答案是否定的,因为目前还搜索不到这个别名pd,需要我们配置一下,这里说一下知道的几种方法,当然也欢迎补充:

1.在启动程序时,加载自定义的mybatis配置类,可以设置一些数据库连接,分页查询,事务控制等,

// 分页插件PageHelper pageHelper = new PageHelper();Properties properties = new Properties();properties.setProperty("dialect", "mysql");properties.setProperty("offsetAsPageNum", "false");properties.setProperty("rowBoundsWithCount", "false");properties.setProperty("pageSizeZero", "true");properties.setProperty("reasonable", "false");properties.setProperty("supportMethodsArguments", "false");properties.setProperty("returnPageInfo", "none");pageHelper.setProperties(properties);sessionFactory.setPlugins(new Interceptor[] { pageHelper });// 添加xml目录ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();sessionFactory.setMapperLocations(resolver.getResources("classpath:mybatis/*/*.xml"));//设置别名所在的包sessionFactory.setTypeAliasesPackage("com.page");

必须在自定义的类上加上主要注解:

@Configuration

设置后,可以在xml中使用别名pd,如设置返回结果resultType(记住这里是type而不是resultMap)是resultType=“pd”,然后启动项目就可以使用了。

2.第二种是在yml配置文件中配置该属性:

mybatis-plus:mapper-locations: classpath*:mapper/*.xmltype-aliases-package : com.pageconfiguration:call-setters-on-nulls: true

这里的字段基本是和上面编程属性相对应的。

3.还有一种是xml配置文件方式,这样的方式现在很少用到

<!--为实体类com.demo.dao.User配置一个别名User-->
<typeAliases><typeAlias type="com.demo.dao.User" alias="User"/>
</typeAliases>

以上可以根据喜好使用,也欢迎补充说明。

补充:

最近在项目中遇到使用@param注解的map,

long selectCount(@Param("wheres") Map<String, Object> wheres);

这个在xml中是这么使用的

<select id="selectCount" resultType="Long">select count(*) from user<where><if test="wheres.userId != null and wheres.userId != '' ">and user_id = #{wheres.userId}</if></where></select>

而不使用@param注解的话,可以直接获取:

<select id="select_count" resultType="Long">select count(*) from user<where><if test="userId != null and userId != '' ">and user_id = #{userId}</if></where></select>

刚开始还真是不习惯,总感觉多此一举,不过既然有人再用,说明就有存在的道理,欢迎补充说明。

关于mybatis中别名的使用相关推荐

  1. mybatis中自建的类型别名

    在使用mybatis过程中经常用到类型别名,除了我们自己新建的别名外,mybatis还自带了很多类型别名和java中的类型的映射,下面先看一个自建的别名的配置 <typeAliases>& ...

  2. mybatis 遍历数组_Mybatis中别名、插件与数据源配置

    上一篇介绍了Configuration的properties和settings,接下来继续. 设置别名 别名也是mybatis中最重要的配置之一,可以通过很简单的一个字符串来代替一个Class,它可以 ...

  3. 杂记:三、mybatis中常见 Java 类型的内置类型别名

    杂记:三.mybatis中常见 Java 类型的内置类型别名 杂记:三.mybatis中常见 Java 类型的内置类型别名 一.mybatis 二.类型别名 杂记:三.mybatis中常见 Java ...

  4. MyBatis 中的九种设计模式

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | http://www.crazyant.net ...

  5. 一文理清Mybatis中resultType与resultMap之间的关系和使用场景

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 1.概述 Mybatis ORM半自动映射框架对java开发工程师来说应该是必会的框架之一. ...

  6. 玩转Mybatis中的类型转换器TypeHandler

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 抛开使用场景谈技术都是耍流氓 1. 场景 日常java开发中经常有这种需求,用0或者1这些代 ...

  7. 6.Mybatis中的动态Sql和Sql片段(Mybatis的一个核心)

    视频地址:http://edu.51cto.com/sd/be679 动态Sql是Mybatis的核心,就是对我们的sql语句进行灵活的操作,他可以通过表达式,对sql语句进行判断,然后对其进行灵活的 ...

  8. Mybatis中的collection、association来处理结果映射

    前不久的项目时间紧张,为了尽快完成原型开发,写了一段效率相当低的代码. 最近几天闲下来,主动把之前的代码优化了一下:) 标签:Java.Mybatis.MySQL 概况:本地系统从另外一个系统得到实体 ...

  9. c++ 传入动态参数_一文了解Mybatis中动态SQL的实现

    一.动态SQL简介 MyBatis的强大特性之一便是它的动态 SQL.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦.拼接的时候要确保不能忘了必要的 ...

最新文章

  1. 虚函数和纯虚函数的区别
  2. MySQL性能调优与架构设计——第4章 MySQL安全管理
  3. 惊呆了!竟然还有这样的操作!
  4. Gradle接口:Gradle构建元数据
  5. ubuntu18.04安裝搜狗輸入法
  6. React 使用browserHistory项目访问404问题
  7. python xml etree_使用Python etree更新XML元素和属性值
  8. [原创]MASM32新手指南
  9. IDEA MyEclipse Eclipse 快捷键大全(最终版)
  10. 说明书丨亲和纯化驴抗绵羊IgG(H+L)二抗
  11. 用PYTHON做一个动态钟表
  12. 学习C语言从小白到专家你只需要这一篇博客-史上最全C语言学习资源整理
  13. 对于VmWare WorkStation在桥接模式下与虚拟机互ping不通问题解决方案
  14. 服务器4块固态硬盘做raid5,固态硬盘内RAID5技术
  15. 移动端UI界面设计之APP字体排版原则| 萧蕊冰
  16. ECharts图表制作商品销售视图
  17. 第七届计算机科学夏令营,2020年中国科学技术大学第七届计算机科学暑期夏令营报名通知...
  18. 网易云信-IM即时通讯 微信小程序端实现
  19. [论文翻译]Deep learning
  20. 复变函数与积分变换期末试题带答案

热门文章

  1. Python-购物车
  2. matlab 蔡旭晖,科学计算与MATLAB语言
  3. Windows7使用谷歌无法打开京东详解
  4. Python数据类型,if语句
  5. 钢绞线的弹性模量的计算方法_钢绞线弹性模量计算
  6. 爱签电子合同助力生产制造业提升物资出入、产品质量审批效率
  7. x射线和γ射线区别?α射线、β射线
  8. 高超声速边界问题求解
  9. 高赋码——医疗器械UDI解决方案的专业之选
  10. 追梦算法----睡懒觉