文章摘录自:http://blog.csdn.net/y172158950/article/details/17258377

1. sql的重用:定义一个sql片段,可在任何SQL语句中重用该片段。

  1. <sql id="personColumns"> name, sex, updateTime</sql>
  2. <select id="selectPerson" parameterType="int" resultType="hashmap">
  3. select id, <include refid="personColumns"/> from person where id =#{id};
  4. </select>

2. javabean别名:不用每次写包路径

  1. <!-- In Config XML file,定义 -->
  2. <typeAlias type=”com.someapp.model.User” alias=”User”/>
  3. <!-- In SQL Mapping XML file,使用 -->
  4. <select id=”selectUsers” parameterType=”int” resultType=”User”>
  5. select id, username, hashedPassword from some_table where id = #{id}
  6. </select>

3. 表与实体列名不匹配的解决

a) SQL的别名
  1. <select id=”selectUsers” parameterType=”int” resultType=”User”>
  2. select user_id as "id", user_name as userName, hashed_password as hashedPassword from some_table where id = #{id}
  3. </select>
b)定义外部的resultMap
  1. <resultMap id="userResult" type="User">
  2. <id property="id" column="_id" />
  3. <result property="name" column="_name" />
  4. <result property="password" column="_password" />
  5. </resultMap>
  6. <select id="selectUser" parameterType="int" resultMap="userResult">
  7. select _id, _name, _password from _user where _id =#{id};
  8. </select>
c) 异常及解决:
  1. Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException:
  2. ### Error building SqlSession.
  3. ### The error may exist in com/yjq/entity/User.xml
  4. ### The error occurred while processing mapper_resultMap[userResult]
  5. ### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.lang.RuntimeException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class . Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'userResult'.  Cause: java.lang.ClassNotFoundException: Cannot find class: userResult
  6. at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8)
  7. at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:32)
  8. at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:16)
  9. at com.yjq.db.DbFactory.getInstance(DbFactory.java:23)
  10. at com.yjq.dao.UserDao.selectUserById(UserDao.java:22)
  11. at com.yjq.dao.UserDao.main(UserDao.java:36)
  12. Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: java.lang.RuntimeException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class . Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'userResult'.  Cause: java.lang.ClassNotFoundException: Cannot find class: userResult
  13. at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:85)
  14. at org.apache.ibatis.builder.xml.XMLConfigBuilder.parse(XMLConfigBuilder.java:69)
  15. at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:30)
  16. ... 4 more
  17. Caused by: java.lang.RuntimeException: Error parsing Mapper XML. Cause: org.apache.ibatis.builder.BuilderException: Error resolving class . Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'userResult'.  Cause: java.lang.ClassNotFoundException: Cannot find class: userResult
  18. at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:97)
  19. at org.apache.ibatis.builder.xml.XMLMapperBuilder.parse(XMLMapperBuilder.java:73)
  20. at org.apache.ibatis.builder.xml.XMLConfigBuilder.mapperElement(XMLConfigBuilder.java:255)
  21. at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:83)
  22. ... 6 more
  23. Caused by: org.apache.ibatis.builder.BuilderException: Error resolving class . Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'userResult'.  Cause: java.lang.ClassNotFoundException: Cannot find class: userResult
  24. at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:69)
  25. at org.apache.ibatis.builder.xml.XMLStatementBuilder.parseStatementNode(XMLStatementBuilder.java:40)
  26. at org.apache.ibatis.builder.xml.XMLMapperBuilder.buildStatementFromContext(XMLMapperBuilder.java:105)
  27. at org.apache.ibatis.builder.xml.XMLMapperBuilder.configurationElement(XMLMapperBuilder.java:95)
  28. ... 9 more
  29. Caused by: org.apache.ibatis.type.TypeException: Could not resolve type alias 'userResult'.  Cause: java.lang.ClassNotFoundException: Cannot find class: userResult
  30. at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:92)
  31. at org.apache.ibatis.builder.BaseBuilder.resolveAlias(BaseBuilder.java:93)
  32. at org.apache.ibatis.builder.BaseBuilder.resolveClass(BaseBuilder.java:67)
  33. ... 12 more
  34. Caused by: java.lang.ClassNotFoundException: Cannot find class: userResult
  35. at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:173)
  36. at org.apache.ibatis.io.ClassLoaderWrapper.classForName(ClassLoaderWrapper.java:72)
  37. at org.apache.ibatis.io.Resources.classForName(Resources.java:235)
  38. at org.apache.ibatis.type.TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:88)
  39. ... 14 more

<select id="selectUser" parameterType="int" resultType="userResult">  修改为resultMap

mybatis_SQL映射(2)的更多相关文章

  1. mybatis_SQL映射(4)鉴别器

    摘录自:http://blog.csdn.net/y172158950/article/details/17505739 鉴别器:有时一个单独的数据库查询也许返回很多不同(但是希望有些关联)数据类型的 ...

  2. mybatis_SQL映射(1)

    文章摘录自:http://blog.csdn.net/y172158950/article/details/17258377 1. select的映射 <select id="sele ...

  3. mybatis_SQL映射(3)

    文章摘录自:http://blog.csdn.net/y172158950/article/details/17304645 1. 表关联 a) 嵌套查询(传说中的1+N问题) <resultM ...

  4. Hibernatel框架关联映射

    Hibernatel框架关联映射 Hibernate程序执行流程: 1.集合映射 需求:网络购物时,用户购买商品,填写地址 每个用户会有不确定的地址数目,或者只有一个或者有很多.这个时候不能把每条地址 ...

  5. hibernate多对多关联映射

    关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...

  6. Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示

    Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...

  7. ElasticSearch 5学习(9)——映射和分析(string类型废弃)

    在ElasticSearch中,存入文档的内容类似于传统数据每个字段一样,都会有一个指定的属性,为了能够把日期字段处理成日期,把数字字段处理成数字,把字符串字段处理成字符串值,Elasticsearc ...

  8. .NET平台开源项目速览(14)最快的对象映射组件Tiny Mapper

    好久没有写文章,工作甚忙,但每日还是关注.NET领域的开源项目.五一休息,放松了一下之后,今天就给大家介绍一个轻量级的对象映射工具Tiny Mapper:号称是.NET平台最快的对象映射组件.那就一起 ...

  9. ASP.NET Core的路由[1]:注册URL模式与HttpHandler的映射关系

    ASP.NET Core的路由是通过一个类型为RouterMiddleware的中间件来实现的.如果我们将最终处理HTTP请求的组件称为HttpHandler,那么RouterMiddleware中间 ...

随机推荐

  1. 使用 BeanUtils 报错解决记录

    在使用BeanUtils.populate方法时,报错如下: java.lang.NoClassDefFoundError: org/apache/commons/collections/FastHa ...

  2. MySQL 优化实施方案

    1.1 前言 在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已.更多关于MySQL查询相关参照 ...

  3. Transact-SQL参考--学习笔记

    基本的就不累赘了. 运算符 除法: dividend / divisor 如果用一个整数的 divisor 去除整数的 dividend,其结果是一个整数,小数部分被截断,如果要有小数可以将divid ...

  4. 【KMP模板】简单写个KMP~

    本来easy的KMP 却一直过不了洛谷的模板题... 仔细一看原来在输出next数组时打的回车而不是空格... 身败名裂... 话说有个sunday貌似一般状况下比KMP快呢...去看看2333 #i ...

  5. 【数论】洛谷P1414又是毕业季II

    题目背景 "叮铃铃铃",随着高考最后一科结考铃声的敲响,三年青春时光顿时凝固于此刻.毕业的欣喜怎敌那离别的不舍,憧憬着未来仍毋忘逝去的歌.1000多个日夜的欢笑和泪水,全凝聚在毕业 ...

  6. Linux常用命令之文件处理命令

    注:由于Linux操作系统有些目录不能轻易操作,特此建议大家在家目录home,或root.tmp目录下练习命令,以免带来不必要的损失 一.查询目录中的内容:ls 命令格式:ls [选项] [文件或目录 ...

  7. 利用TortoiseGit对Coding项目进行版本管理

    Git配置: 1),首先去Git官网下载最新的Git,https://git-for-windows.github.io/ 2),下载对应的版本,然后一路next点击安装. Git与Coding联通 ...

  8. 购物车css样式效果

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. Django----->一周后的重温

    Django   一 什么是web框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来 ...

  10. c语言函数实参与形参整理