SpringMybatis基础

1.动态SQl简介
使用动态SQL元素与JSTL相似,它允许我们在XML中构建不同的SQL语句。常用的元素如下
判断元素:if,choose
关键字元素:where,set,trim
循环元素:foreach

2.if元素是简单的条件判断逻辑,满足指定条件时追加if元素内的SQL,不满足条件时不追加,使用格式如下
<select..>
SQL语句1
<if test="条件表达式">
SQL语句2
</if>
</select>

3.choose元素
choose元素的作用就相当于Java中的switch语句,基本上跟JSTL中的choose的作用和用法上是一样的,
通常与when和otherwise搭配使用,choose使用格式如下:
<select...>
SQL语句1
<choose>
<when test="条件表达式">
SAL>#{sal}
</when>
<otherwise>
SAL>=2000
</otherwise>
</choose>
</select>

4.where元素
where元素主要是用于简化查询语句中where部分的条件判断。where元素可以在<where>元素所在位置输出一个where
关键字,而且还可以将后面条件多余的and或or关键字去除。
where使用格式如下:
<select...>
select字段from表
<where>
动态追加条件
</where>
</select>

5.set元素
set元素主要是用在更新操作的时候,它的主要功能和where元素相似,主要是<set>元素所在位置输出一个set关键字,
而且还可以去除内容结尾中无关的逗号。有了set元素我们就可以动态的更新那些修改了的字段
set使用格式如下:
<update...>
update表
<set>
动态追加更新字段
</set>
</update>

6.trim元素
trim元素的主要功能如下:
可以在自己包含的内容上追加某些前缀,也可以在其后加上某些后缀,与之对应的属性是prefix和suffix;
可以把包含内容的首部某些内容过滤,即忽略,也可以把尾部的某些内容过滤,对应的属性是prefixOverridesh
和suffixOverrides;
正因为trim有上述功能,所以我们也可以非常简单的利用trim来代替where和set元素的功能

7.foreach元素实现了循环逻辑,可以进行一个集合的迭代,主要用在构建in条件中。foreach使用示例如下
<select...>
select 字段 from where in
<foreach collection="集合" item="迭代变量" open="("separator=","close=")" >
#{迭代变量}
</foreach>
</select>
foreach元素非常强大,它允许指定一个集合,声明集合项和索引变量,这些变量可以用在元素体内。它也指定允许开放
和关闭的字符串,在迭代之间方式分隔符。

8.Spring对Ajax的支持
为了便于接受和处理Ajax请求,Spring MVC提供了JSON响应的支持,可以很方便地将数据转换为JSON格式字符
串给客户端JavaScript返回。
在Spring MVC中,与JSON响应相关的注解为
@ResponseBody

9.主键映射作用
在MyBatis做插入操作时,可以有MyBatis负责主键生成,主键字段部分的映射可以分成一下两种情况。
数据库支持自动递增,例如MySQL、SQLServer
数据库不支持自动递增 例如Oracle

10.关联映射的作用
在查询时经常需要获取两个或两个以上关联表的数据,通过关联映射可以由一个对象获取相关联对象的数据。
例如查询一个Emp员工对象,可通过关联映射获取员工所在部门的Dept对象信息。
MyBatis的关联映射有以下两种不同的实现形式:
嵌套查询:通过执行另外一个SQL映射语句来返回关联数据结果(查两次)
嵌套结果:执行一个表关联查询SQL,然后将查询结果映射成关联对象(查一次)

11.集合映射作用
当查询某个表的记录信息时,如果关联表有多条相关记录,此时就可以使用集合映射
MyBatis的集合映射有以下两种形式
嵌套查询:通过执行另外一个SQL映射语句来返回关联数据结果(查两次)。
嵌套结果:执行一个表关联查询SQL,然后将查询结果映射成关联对象(查一次)。

12.鉴别器的作用
鉴别器的作用
有时一个单独的数据库查询也许返回很多不同数据类型的结果集。例如一个表存储了单选题和多选题,查询时需要返回
单选题对象和多选题对象。鉴别器元素很像Java语言中的switch分支语句的结构

13.AOP概念及优点
AOP被称为面向切面编程。
AOP主要用于处理共通逻辑,例如日志记录,性能统计,安全控制,事务处理,异常处理等等。AOP可以将这些共通逻辑
从普通业务逻辑代码中分离出来,这样在日后修改这些逻辑的时候就不会影响普通业务逻辑的代码。
利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时
提高了开发的效率
AOP、OOP在字面上虽然非常类似,但却是面向不同领域的两种设计思想
OOP(面向对象)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。
AOP则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间
低耦合性的隔离效果。
AOP需要以OOP为前提和基础。

14.什么是方面
方面是指封装共通处理的组件,该组件被作用到其他目标组件方法上。

15.什么是目标
目标是指被一个或多个方面所作用的对象。

时间: 2024-10-29 10:46:13

SpringMybatis基础的相关文章

Zebra DAO 工作原理

Zebra-Dao是为了解决用户访问数据库进行一步方式而封装的Dao,目前java异步访问方式主要有线程池技术.消息中间件技术等. **目前数据库异步访问方案主要有以下两种. 1.业务在使用时自己将每一次的dao调用放到异步线程池中去. 优点:简单,不需要架构支持什么.缺点: 因为是业务迁移,迁移的代价比较大. 2.使用google的async-mysql-connector.优点:背后实现是基于NIO的方式,性能更高.缺点:异步的jdbc接口上层没有任何的DAO框架支持,公司业务基本无法使用.

java web 开发三剑客 -------电子书

Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知Internet的目的是让各个net交互.所以,Internet实质上是将世界上各个国家.各个网络运营商的多个网络相互连接构成的一个全球范围内的统一网,使各个网络之间能够相互到达.各个国家和运营商构建网络采用的底层技术和实现可能各不相同,但只要采用统一的上层协议(TCP/IP)就可以通过Internet

Java注解(1)-注解基础

注解(Annotation)是在JAVA5中开始引入的,它为在代码中添加信息提供了一种新的方式.注解在一定程度上把元数据与源代码文件结合在一起,正如许多成熟的框架(Spring)所做的那样.那么,注解到底可以做什么呢? 1.注解的作用. 提供用来完整地描述程序所需要的信息,如编译期校验程序信息. 生成描述符文件,或生成新类的定义. 减轻编写"样板"代码(配置文件)的负担,可以使用注解自动生成. 更加干净易读的代码. 编译期类型检查. 2.Java提供的注解 Java5内置了一些原生的注

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

【Linux系列】【基础版】第四章 Shell基础之正则表达式

4. Shell基础之正则表达式     4.1 正则就是一串有规律的字符串         4.1 grep              4.1.1 格式: grep [-cinrvABC] 'word' filename             4.1.2 -c //count,表示行数             4.1.3 -i //不区分大小写             4.1.4 -n  //显示行号             4.1.5 -r  //遍历所有子目录             4

NumPy基础:数组和失量计算

NumPy : Numerical Python,是高性能科学计算和数据分析的基础包. 部分功能: ndarray:一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组: 用于对整组数据进行快速运算的标准数学函数(无需编写循环): 用于读写磁盘数据的工具以及用于操作内存映射文件的工具: 线性代数.随机数生成以及傅里叶变换功能: 用于集成C.C++.Fortran等语言编写的代码工具: 大部分数据分析应用关注的功能: 用于

css基础

css绝对是一个能够写到爆炸的东西,so,机智的小北方才不会写各种css样式具体的效果,相比之下更推荐大家记一些常用的key,至于效果,每次用的时候百度下就可以了, css的作用是对符合条件的标签进行渲染,那么首先就要匹配到对应标签啦,我萌有三种基础的模式来匹配希望改变样式的标签 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8">

零基础的人该怎么学习JAVA

对于JAVA有所兴趣但又是零基础的人,该如何学习JAVA呢?对于想要学习开发技术的学子来说找到一个合适自己的培训机构是非常难的事情,在选择的过程中总是 因为这样或那样的问题让你犹豫不决,阻碍你前进的步伐,今天就让小编为您推荐培训机构新起之秀--乐橙谷Java培训机构,助力你成就好未来. 选择java培训就到乐橙谷 北京有什么好的Java培训机构?来乐橙谷北京学Java,零基础走起,乐橙谷Java基础班授课老师经验非常丰富,课程内容安排合理,适合于有一点点Java基础甚至一点都不会Java的同学学

linux+jmeter+python基础+抓包拦截

LINUX 一 配置jdk 环境 *需要获取root权限,或者切换为root用户 1.windows下载好,去 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 官方网站下载jdk(linux相应版本) 2.在usr目录下创建java路径文件夹 [root bin]cd /usr mkdir java 3.将jdk-8u60-linux-x64.tar.gz放到刚才创建的文件夹下