博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mybatis遇到的坑
阅读量:5233 次
发布时间:2019-06-14

本文共 1313 字,大约阅读时间需要 4 分钟。

最近再用mybatis搭建 ssm框架的时候,老是抱一个错误

Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 27; columnNumber: 17; 元素类型为 "configuration" 的内容必须匹配 "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,plugins?,environments?,databaseIdProvider?,mappers?)"。
仔细看了一下自己的配置文件,发现并单词没有拼错啊,后来仔细看了一下说明文档,原来mybatis的配置是有顺序说明的 ,坑啊
MyBatis配置文件中大标签configuration下子标签包括:configuration|--- properties|--- settings|--- typeAliases|--- typeHandlers|--- objectFactory|--- plugins|--- environments|--- |--- environment|--- |--- |--- transactionManager|--- |--- |__ dataSource|__ mappers
另外还遇到一个错误,一并记录下来:
mybatis异常:Could not find result map java.util.Map 问题分析及解决
 
错误写法
  <select id="queryXXXCount" resultMap="java.util.Map" >
正确写法:
  <select id="queryXXXCount" resultType="java.util.Map">
  注解:
MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,但是resultType跟resultMap不能同时存在。
在MyBatis进行查询映射时,其实查询出来的每一个属性都是放在一个对应的Map里面的,其中键是属性名,值则是其对应的值。
①当提供的返回类型属性是resultType时,MyBatis会将Map里面的键值对取出赋给resultType所指定的对象对应的属性。所以其实MyBatis的每一个查询映射的返回类型都是ResultMap,只是当提供的返回类型属性是resultType的时候,MyBatis对自动的给把对应的值赋给resultType所指定对象的属性。
②当提供的返回类型是resultMap时,因为Map不能很好表示领域模型,就需要自己再进一步的把它转化为对应的对象,这常常在复杂查询中很有作用。

转载于:https://www.cnblogs.com/l919310075/p/7294326.html

你可能感兴趣的文章
Shiro安全框架入门篇(登录验证实例详解与源码)
查看>>
Mac下用brew搭建PHP(LNMP/LAMP)开发环境
查看>>
CORS实现跨域资源访问
查看>>
HTTP(超文本传输协议)入门
查看>>
JavaBean入门及简单的例子
查看>>
editplus的注册码 4.0
查看>>
JAVA JDBC 连接 Oracle
查看>>
【转】知识管理中需要关注的‘两化’
查看>>
Project入门学习
查看>>
C#复习笔记(4)--C#3:革新写代码的方式(扩展方法)
查看>>
关于EditText的android:maxLength属性的注意事项
查看>>
第27月第17天 objc_msgSendSuper
查看>>
LeetCode Kill Process
查看>>
LeetCode Moving Average from Data Stream
查看>>
iOS开发 贝塞尔曲线
查看>>
js实现自由落体
查看>>
正则表达式 (C++)
查看>>
深入理解Spring系列之八:常用的扩展接口
查看>>
用vmware workstation制作cloudstack(kvm)镜像及问题解决办法
查看>>
27.有向网邻接表类
查看>>