Mybaties第三天

1. Mybaties运行原理

      

2.关联查询

   一对一  

      直接写 完整的SQL语句,在ResultMap中把所有的属性写出来。

      直接写 完整的SQL语句,在ResultMap中写出一个表中的字段属性,在同一个ResultMap中的association 标签中写出另一个表的字段属性,association 中的javaType属性

    是从表的类型

      两个表的Mapper映射文件,各自写各自的查询SQL,各自写各自的在ResultMap,主表的Mapper映射文件的ResultMap中要写association ,里面不写属性字段,javaType

    属性写上,column是量表关联的字段,select=“执行另一个Mapper映射文件中的namespace 的属性值+查询语句的ID”

 一对多

    同一对一第一种方式一样

    两个表的Mapper映射文件,各自写各自的查询SQL,各自写各自的在ResultMap,主表的Mapper映射文件的ResultMap中要写collection,里面不写属性字段,ofType

    属性写上(从表类型,就是多的一方),column是量表关联的字段,select=“执行另一个Mapper映射文件中的namespace 的属性值+查询语句的ID”

3.懒加载

    需要的时候再去加载,不需要的时候就不加载,默认是关闭的,需要手动开启。只会在sql语句分开的时候才能用

    

4.动态SQL

    where :代替where关键字,会把多余的where 去掉

    if: <if test="t条件,支持java里的逻辑运算符与equales等方法"></if>

    choose (when  otherwise):等同于 switch case 方法 。<choose> <when test="条件"></when>... <otherwise> 都不符合条件默认执行</otherwise></choose>

    tirm:<tirm prefix=" 执行完成后加前缀" suffix ="加后缀"  prefixoverrides="覆盖指定前缀" suffixoverrides=“覆盖指定后缀” ></tirm>

    set:代替set标签,配合if使用,去掉最后成立条件的逗号

    Formeach:遍历集合或者数组

      <foreach  collection="要遍历的对象(list或array) "  item="遍历到的当前对象"  separator="遍历对象 之间的分隔符"  open="遍历结束后加指定前缀"

        close="遍历结束后加指定后缀">

      <foreach>

5.整合ssm

   在原有整合的Spring+SpringMVC 的Spring上加上:

    

  ,并且添加一个jar包和 Mybaties的 全局配置文件(除了陪懒加载和缓存别的都不需要)。

  整合之后,Spring管理Service层,SpringMVC管理Controller,Mybaties管理Dao层

6.批量更新

  在用动态 sql进行 批量更新时,会报错,因为Mybaties不支持批量更新,需要在 配置的时候URL写上&allowMultiQueries=true。

原文地址:https://www.cnblogs.com/sunners/p/12104282.html

时间: 2024-11-06 07:43:47

Mybaties第三天的相关文章

Spring boot(三)整合mybaties+thymeleaf实现基础crud

工程结构: 首先在pom文件中引入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apac

springMVC 缓存(入门 spring+mybaties+redis一)

使用redis之前需要咋电脑上安装redis: 使用spring+mybaties+redis的本质是扩展类   org.apache.ibatis.cache.Cache:在我们自己扩展的Cache里面使用redis的api: 一:需要引入的依赖: <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId>

MyBaties源码解析

觉得查看源代码确实是一个学习的一种方法 因为很多时候别人把最核心的代码给我们都封装好了 我们直接可以来拿使用 很多时候自己也会问 为什么通过这个方法就可以得到我觉得就是一颗好奇心吧 我算了算 就这三个部分也花了几个小时的时间去琢磨 但是感觉值了,我觉得对mybaties的原理更加清晰了 学了mybaties也有一段时间了 今天抽空来聊聊mybaties是如何来操作数据库的 它为什么能够方便我们不用再去关注如何创建连接编写预编译语句 它又是如何实现的呢?我们都知道 要操作数据库数据库 必须先要有数

angularJs中关于ng-class的三种使用方式说明

在开发中我们通常会遇到一种需求:一个元素在不同的状态需要展现不同的样子. 而在这所谓的样子当然就是改变其css的属性,而实现能动态的改变其属性值,必然只能是更换其class属性 这里有三种方法: 第一种:通过数据的双向绑定(不推荐) 第二种:通过对象数组 第三种:通过key/value 下面简单说下这三种: 第一种:通过数据的双向绑定 实现方式: function changeClass(){   $scope.className = "change2"; } <div clas

三百六十度全景图如何拍摄?

三百六十度全景图如何拍摄?随着全景技术的发展,全景拍摄也成为了一种十分新潮的摄影方式.全景摄影也有很多学问,而且随着全景照片的用途越来越多,拍摄全景的设备也越来越多.今天我们就介绍几种十分另类的360全景图拍摄方法,这些酷雷曼360全景图拍摄方法让你大开眼界. 工具/原料 相机 鱼眼镜头 云台 三角支架 方法/步骤 1 吊锤辅助360全景图拍摄方法 吊线保证拍摄时相机以节点旋转,使用吊线进行全景拍摄线不要太长,50CM以内比较容易控制,有时也到一米多在胸口位置进行拍摄,重锤容易晃动,很难对准.吊

关于SVM数学细节逻辑的个人理解(三) :SMO算法理解

第三部分:SMO算法的个人理解 接下来的这部分我觉得是最难理解的?而且计算也是最难得,就是SMO算法. SMO算法就是帮助我们求解: s.t.   这个优化问题的. 虽然这个优化问题只剩下了α这一个变量,但是别忘了α是一个向量,有m个αi等着我们去优化,所以还是很麻烦,所以大神提出了SMO算法来解决这个优化问题. 关于SMO最好的资料还是论文<Sequential Minimal Optimization A Fast Algorithm for Training Support Vector

三件软件作品评价

先交代三件软件作品的相关资料.   软件一 软件二 软件三 软件名称 蜗牛词典APP 24点小游戏APP 物理实验网站 学校 2017集美大学1412软工实践  集美大学1411 北京航天航空大学计算机学院 团队名称 SNS1412 hexagon 软剑攻城队 团队博客地址 http://www.cnblogs.com/jmu-sns/ http://www.cnblogs.com/24app/ http://www.cnblogs.com/buaase/ Git地址 https://codin

MVC4 自定义错误页面(三)

一.概述 MVC4框架自带了定义错误页,该页面位于Shared/Error,该页面能够显示系统未能捕获的异常,如何才能使用该页面: 二.使用步骤: 1.配置WebConfig文件,在System.Web节点下加上 <customErrors mode="On"  defaultRedirect="~/Shared/Error" /> 翻阅一些大神写的博客,在他们的博客中指出defaultRedirect是指向错误页面的URL,可是经过本人测试的时候,发现

Django(三) ORM 数据库操作

比较有用 转自 http://blog.csdn.net/fgf00/article/details/53678205 一.DjangoORM 创建基本类型及生成数据库表结构 1.简介 2.创建数据库 表结构 二.Django ORM基本增删改查 1.表数据增删改查 2.表结构修改 三.Django ORM 字段类型 1.字段类型介绍 2.字段参数介绍 3.Django ORM 外键操作 一.DjangoORM 创建基本类型及生成数据库表结构 1.简介 ORM:关系对象映射.定义一个类自动生成数