mybatis为聚焦于SQL而构建,SQL映射文件常用的顶级元素如

  • resultMap,是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加载对象。
  • insert,映射插入语句
  • update, 映射更新语句
  • delete , 映射删除语句
  • select , 映射查询语句

1)简单的单表映射文件

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <mapper namespace="com.mybatis.bean.userMapper">
  5. <select id="getUser" parameterType="int" resultType="com.mybatis.bean.User">
  6. select * from users where id=#{id}
  7. </select>
  8.  
  9. <insert id="insertUser" parameterType="com.mybatis.bean.User">
  10. insert into users(name,age) values(#{name},#{age});
  11. </insert>
  12.  
  13. <update id="updateUser" parameterType="com.mybatis.bean.User">
  14. update users set name=#{name} ,age=#{age} where id=#{id}
  15. </update>
  16.  
  17. <delete id="deleteUser" parameterType="int">
  18. delete from users where id=#{id}
  19. </delete>
  20.  
  21. <select id="allUser" resultType="com.mybatis.bean.User">
  22. select * from users
  23. </select>
  24. </mapper>

Java对象

  1. public class User {
  2.  
  3. private int id;
  4. private String name;
  5. private int age;
  6.  
  7. public int getId() {
  8. return id;
  9. }
  10.  
  11. public String getName() {
  12. return name;
  13. }
  14.  
  15. public int getAge() {
  16. return age;
  17. }
  18.  
  19. public void setId(int id) {
  20. this.id = id;
  21. }
  22.  
  23. public void setName(String name) {
  24. this.name = name;
  25. }
  26.  
  27. public void setAge(int age) {
  28. this.age = age;
  29. }
  30.  
  31. }

2)结果映射resultMap 元素是 MyBatis 中最重要最强大的元素。当列名和属性名没有精确匹配,可以在SELECT语句中对列使用别名,或配置显式的结果映射。

Java对象

  1. public class Classes {
  2.  
  3. private int id;
  4. private String name;
  5. private Teacher teacher;
  6. // 省略
  7. }

resultMap映射文件、关联对象

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.mybatis.bean.ClassMapper">
  6. <select id="getClass" parameterType="int" resultMap="ClassResultMap">
  7. select * from class c,teacher t where c.teacher_id = t.t_id and c.c_id=#{id}
  8. </select>
  9.  
  10. <resultMap id="ClassResultMap" type="classes">
  11. <id property="id" column="c_id"/>
  12. <result property="name" column="c_name"/>
  13. <association property="teacher" column="teacher_id" javaType="teacher">
  14. <id property="id" column="t_id"/>
  15. <result property="name" column="t_name"/>
  16. </association>
  17. </resultMap>
  18.  
  19. </mapper>

集合配置

  1. <collection property="posts" ofType="domain.blog.Post">
  2. <id property="id" column="post_id"/>
  3. <result property="subject" column="post_subject"/>
  4. <result property="body" column="post_body"/>
  5. </collection>

 

参考文献:mybatis官网http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html

Mybatis XML映射文件的更多相关文章

  1. Mybatis学习--Mapper.xml映射文件

    简介 Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心. 映射文件中有很多属性,常用的就是parameterType(输入类型 ...

  2. MyBatis 的 XML 映射文件使用说明

    简介 文档参考地址:http://www.mybatis.org/mybatis-3/zh/index.html MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器 ...

  3. mybatis学习------打包xml映射文件

    编译mybatis时,idea不会将mybatis的xml映射文件一起打包进jar,即在编译好的jar包里缺少mybatis映射文件,导致网站加载失败 为解决这个问题,可在mybatis对应modul ...

  4. 5.7 Liquibase:与具体数据库独立的追踪、管理和应用数据库Scheme变化的工具。-mybatis-generator将数据库表反向生成对应的实体类及基于mybatis的mapper接口和xml映射文件(类似代码生成器)

    一. liquibase 使用说明 功能概述:通过xml文件规范化维护数据库表结构及初始化数据. 1.配置不同环境下的数据库信息 (1)创建不同环境的数据库. (2)在resource/liquiba ...

  5. Mybatis中的Mapper.xml映射文件sql查询接收多个参数

    ​ 我们都知道,在Mybatis中的Mapper.xml映射文件可以定制动态SQL,在dao层定义的接口中定义的参数传到xml文件中之后,在查询之前mybatis会对其进行动态解析,通常使用#{}接收 ...

  6. 解决 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 以及MyBatis批量加载xml映射文件的方式

    错误 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 的出现,意味着项目需要xml文件来 ...

  7. MyBatis 逆向工程——根据数据表自动生成model、xml映射文件、mapper接口

    MyBatis Generator(MBG)的使用 MBG可以根据数据表生成对应的model.xml映射文件.mapper接口,只是简单的生成,还需要根据需求修改. 1.下载jar包 https:// ...

  8. mybatis源码配置文件解析之五:解析mappers标签(解析XML映射文件)

    在上篇文章中分析了mybatis解析<mappers>标签,<mybatis源码配置文件解析之五:解析mappers标签>重点分析了如何解析<mappers>标签中 ...

  9. 精尽MyBatis源码分析 - MyBatis初始化(二)之加载Mapper接口与XML映射文件

    该系列文档是本人在学习 Mybatis 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释(Mybatis源码分析 GitHub 地址.Mybatis-Spring 源码分析 GitHub ...

随机推荐

  1. win7系统的用户去掉用户账户控制 提升管理员

    可以在组策略中进行设置 —— “以管理员身份运行”方式打开命令提示符(CMD)后键入 gpedit.msc 打开组策略后作如下更改:<br/>在“计算机配置”-“Windows 配置”-“ ...

  2. Java的值类型和引用类型

    一.问题描述 前几天因为一个需求出现了Bug.说高级点也挺高级,说白点也很简单.其实也就是一个很简单的Java基础入门时候的值类型和引用类型的区别.只是开发的时候由于自己的问题,导致小问题的出现.还好 ...

  3. 马拉车manacher

    目的:线性查找一个串的最长回文子串 时间复杂度:O(n) len[i]表示以i为中心的回文串的半径,mx即为当前计算回文串最右边字符的最大值,p是中心点mid,mx-i和2*p-1关于p对称 http ...

  4. BZOJ 3108: [cqoi2013]图的逆变换

    3108: [cqoi2013]图的逆变换 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 627  Solved: 415[Submit][Statu ...

  5. Balls in the Boxes

    Description Mr. Mindless has many balls and many boxes,he wants to put all the balls into some of th ...

  6. flash存储器原理及作用是什么?

    flash存储器的工作原理 flash存储器又称闪存(快闪存储器),是一种电可擦可编程只读存储器的形式,是可以在操作中被多次擦或写,EEPROM与高速RAM成为当前最常用且发展最快的两种存储技术.计算 ...

  7. 轻松构建基于 Serverless 架构的弹性高可用音视频处理系统

    前言 随着计算机技术和 Internet 的日新月异,视频点播技术因其良好的人机交互性和流媒体传输技术倍受教育.娱乐等行业青睐,而在当前, 云计算平台厂商的产品线不断成熟完善, 如果想要搭建视频点播类 ...

  8. 【Java Web开发学习】跨域请求

    [Java Web开发学习]跨域请求 ================================================= 1.使用jsonp ===================== ...

  9. 2019年Spring核心知识点整理,看看你掌握了多少?

    前言 如今做Java尤其是web几乎是避免不了和Spring打交道了,但是Spring是这样的大而全,新鲜名词不断产生,学起来给人一种凌乱的感觉,在这里总结一下,理顺头绪. Spring 概述 Spr ...

  10. 约数之和(POJ1845 Sumdiv)

    最近应老延的要求再刷<算法进阶指南>(不得不说这本书不错)...这道题花费了较长时间~(当然也因为我太弱了)所以就写个比较易懂的题解啦~ 原题链接:POJ1845 翻译版题目(其实是AcW ...