此次在项目中相遇了mybatis,重新回顾下。

1.resulMap解决了结果集的列名字跟实体setter和getter不匹配的问题

其中property是实体的setter和getter对象,column是表中的列字段

2.mybatis的动态sql语句,自豪的技术,主要是拼装sql语句

  1)if

  2)choose(when,otherwise)

  3)trim(where ,set)

  4)foreach

这就是mybatis中主要的动态sql表达标签,

  a.if标签中test是判断条件,其他和if没有什么改变。

<if test =" name != null">

  and userName = #{name}

</if>

  b.choose when otherwise 和switch case相像,很多情况下选择一种,若没有就是otherwise中的语句

  c.where标签,if条件第一个不成立,第二个成立,where and address = #{address},如果mybatis检测到where后and,则去掉and关键字,如果if条件都不成立,where关键字也会去掉。比如

  d.set标签,第一个条件成立,第二个条件不成立,会自动去掉第一个条件后面的都号;若两个条件都没有成立,set不会出现,但会报异常,sql异常,至少有一个条件成立。比如:

  e.trim标签,trim标签替换wher标签,prefix前缀 where,prefix="where";prefixOverrides="AND | OR",prefixOverrides:前缀覆盖,第一个if条件不成立,第二个if条件成立,会prefixOverrides中的值去覆盖,都不成立where前缀会去掉,比如;

  

  f.trim标签,替换set。prefix="SET" 前缀为set,suffixOverrides="," 后缀为都好。第一个条件成立,第二个条件不成立,后去掉后面的逗号,至少有一个if要成立,不然报sql语法异常。比如:

  h.foreach标签,就是循环,比如:

3.mybatis的关联映射

  1)对一关联:association

  2)对多关联:collection

比如以下例子:

对一关联:

对多关联:

mybatis重新回顾的更多相关文章

  1. Mybatis的回顾学习

    <!--id:statementId resultType:查询结果集的数据类型 parameterType:查询的入参 --> <selectid="getUserByI ...

  2. mybatis总结回顾

    1.mybatis的介绍 轻量级数据持久层框架,替代hibernate 2.mybatis的入门 导包-->配置文件(类名.xml.SqlMapConfig.xml) 类名.xml:放映射.sq ...

  3. mybatis增强

    MyBatis SQL参数传递(掌握) SQL映射器Mapper接口(掌握)Myb atis批量操作(理解掌握) (多对一)关联映射(掌握) (一对多,多对多)集合映射 MyBatis原理回顾(Obj ...

  4. Spring学习笔记:Spring整合Mybatis(mybatis-spring.jar)(一:知识点回顾)

    一.知识点回顾 1.Mybatis环境搭建(DAO层的实现)(使用maven项目管理工具) 需要引入的依赖包: <!-- 单元测试junit --> <dependency> ...

  5. 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_1 回顾Mybatis的环境搭建-实现查询所有功能

    先回顾Mybits的环境搭建,. 直接next 直接点击finish 创建好的项目. 所有东西都自己写不现实,约束文件的头部还是拷贝过来 导入依赖坐标,Mybits mysql的驱动 log4j 单元 ...

  6. mybatis高级(1)(入门回顾)

    首先入门案例(并且拿到新增记录当前id) 1.创建mybatis-config.xml文件 <?xml version="1.0" encoding="UTF-8& ...

  7. MYBATIS 简单整理与回顾

    这两天简单整理了一下MyBatis 相关api和jar包这里提供一个下载地址,免得找了 链接:http://pan.baidu.com/s/1jIl1KaE 密码:d2yl A.简单搭建跑项目 2.进 ...

  8. 【springmvc+mybatis项目实战】杰信商贸-6.重点知识回顾

    1.重点知识回顾 Maven1)覆盖仓库文件,实际企业开发,公司会架一个测试服务器,在测试服务器中架私服.我们开发人员的程序,都连接私服.当本地没有项目中要使用的jar,Myeclipse maven ...

  9. 回顾一下MyBatis逆向工程——自动生成代码

    前言 最近做的项目(SSM+Shiro)的数据库表已经创建完成,一共有15张表,如果我们一个个去写pojo/bean的代码以及各种sql语句的话未免太过麻烦而且很容易出错,这个时候我们就需要MyBat ...

随机推荐

  1. 【Python】画一个心形

    #!/usr/bin/env python # -*- coding:utf-8 -*- import turtle import time # 画心形圆弧 def hart_arc(): for i ...

  2. 小I选宾馆

    小 I 选宾馆 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 小 I 去天津玩啦,一路上,他跟他的同学发生了许多有趣的 ...

  3. Postgresql Json Sql

    a detailed website about json sql query; official website: here, chinese version: here Json query: - ...

  4. jQuery---学习roadmap---4 parts

    jQuery---学习roadmap---4 parts jQuery初识 jQuery让js的开发变得更加简单 jQuery解决了浏览器的兼容性问题 学习目标 使用jQuery设计常见的效果 掌握j ...

  5. 什么是OOP

    面向对象是相对于面向过程而言的.面向过程语言是一种基于功能分析的.以算法为中心的程序设计方法:而面向对象是一种基于结构分析的.以数据为中心的程序设计思想.早在面向过程语言时代,有一句话说:程序=算法+ ...

  6. 记录 shell学习过程(3) if 的格式

    ] #-e 为检测目录或文件是否存在 !为取反 then mkdir -v /tmp/ echo 'ok' fi if else if [ $USER == 'root' ] then echo 'h ...

  7. 【JS】网站运行时间

    <span id="sitetime"></span> <script language=javascript> function siteTi ...

  8. ORA-01789: query block has incorrect number of result columns

    问题描述 ORA-01789: query block has incorrect number of result columns 原因如下 查询使用了union或者union all的时候查询上下 ...

  9. 【Python requests多页面爬取案例】

    "```python import requests from fake_useragent import UserAgent # 随机ua库 class Boring(): def __i ...

  10. mysql之case..when ..then..else..end as..用法

    1.示例1 查询1: SELECT CASE main_xm_sam31 WHEN '02' THEN 2 ELSE 1 END AS SPDJ FROM SR_MAIN_BG A WHERE A.P ...