使用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. WMframework成长日记(一)——框架介绍
  2. css3的自定义字体
  3. python中list函数中variables变量_如何在Python中使用变量,浅谈,Pytorch,的,Variable,方法...
  4. OSPF工作机制——OSPF邻居状态机详解(附图)
  5. 为什么我会觉得SegmentFault做得越来越力不从心了?
  6. 原生js循环展示dom_为什么说JS的DOM操作很耗性能
  7. 今天小小的总结一下最近的小程序中的问题
  8. go编译成linux可执行,Golang 编译Mac、Linux、Windows多平台可执行程序
  9. Java Keytool工具简介
  10. 服务器装凤凰系统,云服务器安装凤凰os
  11. 虚拟机使用主机摄像头 ” usb chicony lenovo easycamera 连接失败,驱动错误“
  12. 关于vlan tag untag 标签 区别
  13. cosc2406数据库辅导assignment
  14. 祝大家新年快乐,鼠年平安健康、阖家幸福如意!
  15. c语言标识符命名作用,C语言-标识符命名
  16. 大数据智能分析(BI)平台设计2--数据集
  17. java.lang.IllegalStateException: Failure saving state: active HomeFragment has cleared index: -1
  18. 为什么手机一开机,就有Powered by Android
  19. C++ MFC 时间戳与日期格式相互转换
  20. 基于Web标准的网页设计与制作知识整理

热门文章

  1. Android App 上架流程汇总
  2. MiKTeX与Texmaker 配置使用
  3. Java图片操作-裁剪图片
  4. 如何通过7个步骤编写出色的在线用户手册,让天下没有难用的产品
  5. 【源码】心电图ECG信号的MATLAB仿真
  6. 欣赏别人,是一种境界
  7. linux性能(一):cpu性能指标及工具
  8. 随机森林模型_观点速递65|使用随机森林模型模拟短期空气污染效应:基于交通和气象数据...
  9. [附源码]计算机毕业设计Python+uniapp美团外卖微信菜价平台系统的设计与实现9t7op(程序+lw+远程部署)
  10. C++语言中反转字符串的函数strrev(), reverse()