MyBatis-Day03

27 篇文章 0 订阅

1 输出映射

查询结果的封装 → resultType → resultType写的都是单条记录的类型 → 单条和多条的查询的select标签写法一致

1.1 基本类型、包装类、字符串

比如查询表中的记录数,查询某个id对应的name值

1.1.1 单条结果
在这里插入图片描述

1.1.2 多条结果

直接修改接口中的方法的返回值为list或数组
在这里插入图片描述

1.2 javabean

1.2.1 单条结果

当前的场景:查询的列名 = 表的列名 = javabean的成员变量名
在这里插入图片描述
查询结果的列名和javabean的成员变量名一致

在这里插入图片描述

1.2.2 多条结果
在这里插入图片描述

1.3 resultMap

查询结果的列名和javabean的成员变量名(set方法)之间的关系

resultType:相同
resultMap:对应
在这里插入图片描述

2 动态sql标签

映射文件里的标签

2.1 where标签

将条件放入到where标签中

2.1.1 拼接where字符
在这里插入图片描述

2.1.2 去除掉跟着的and或or
在这里插入图片描述

2.1.3 where标签里没有内容,不会拼接where字符
在这里插入图片描述

2.2 if标签

判断, 判断条件为true → 拼接sql语句

条件查询:根据username和password查询user信息

2.2.1 分析
在这里插入图片描述
2.2.2 映射文件
在这里插入图片描述

2.2.3 test属性语法

ognl表达式

值:
1、输入映射传入的值 → 直接写#{}里可以使用的内容
2、null
3、数字
4、字符串 → 单引号里写字符串
5、字符串长度

符号:
1、不等于 !=
2、等于 ==
3、大于 gt
4、小于 lt
5、大于等于 age gt 20 or age = 20
6、小于等于 age lt 20 or age = 20
关系:多个条件之间的关系 and/or

2.2.4 案例

如果年龄大于等于 20
条件是age >= #{age}

如果年龄小于20
条件是 age < #{age}
在这里插入图片描述

2.2.5 if标签没有else

只能在test属性中写一个相反的条件

2.3 choose-when-otherwise

when标签代表if,otherwise标签代表else
在这里插入图片描述

2.4 trim

条件更新 → User对象

prefixOverrides:如果trim标签最前面出现xxx内容,去除掉xxx →xxx对应的属性值
suffixOverrides:如果trim标签最后面出现xxx内容,去除掉xxx
prefix:整个trim里面的内容的最前面
suffix:整个trim里面的内容的最后面
在这里插入图片描述

2.5 set标签

update语句,要将更新的内容放入到set标签中
相当于 <‘trim prefix=”SET” suffixOverrides=”,”>’

在这里插入图片描述

2.6 sql-include标签

提取sql语句,引用sql语句
sql语句是可以包含标签

比较常用的场景

2.6.1 列名
在这里插入图片描述
2.6.2 条件
在这里插入图片描述

2.7 foreach标签

输入映射给到的值是数组或list的时候

2.7.1 查询时in语句
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.7.2 insert多条记录
在这里插入图片描述

2.8 selectKey

在你执行insert的sql语句之外额外执行一条select的sql语句

2.8.1 order:after
在这里插入图片描述

2.8.2 order:before

新增帅哥的记录,帅哥想和松哥密码一样
在这里插入图片描述

2.8.3 useGenerateKeys属性

insert标签的属性 → 是否使用生成的主键 → 是否获得自增的主键

除了使用selectKey标签获得自增的主键,也可以通过useGenerateKeys属性

2.8.3.1 单条
在这里插入图片描述

2.8.3.2 多条
在这里插入图片描述

3 插件

3.1 切换

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210104204808971.png)

3.2 @Param(alt + enter)

在这里插入图片描述

3.3 新建映射文件中标签(alt + enter)

在这里插入图片描述

3.4 使用别名后,仍然可以进入javabean中

3.5 增加提示

3.6 插件是什么

mybatisCodeHelperPro
freeMybatisPlugin

3.7 问题

一个project 同目录且同名的接口和映射文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis 目录(?)[-] mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in action之二以接口的方式编程 mybatis实战教程mybatis in action之三实现数据的增删改查 mybatis实战教程mybatis in action之四实现关联数据的查询 mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis SqlSessionDaoSupport的使用附代码下载 转自:http://www.yihaomen.com/article/java/302.htm (读者注:其实这个应该叫做很基础的入门一下下,如果你看过Hibernate了那这个就非常的简单) (再加一条,其实大家可以看官方的教程更好些:http://mybatis.github.io/mybatis-3/,而且如果英文不是很好的那就看中文的:http://mybatis.github.io/mybatis-3/zh/sqlmap-xml.html) 写在这个系列前面的话: 以前曾经用过ibatis,这是mybatis的前身,当时在做项目时,感觉很不错,比hibernate灵活。性能也比hibernate好。而且也比较轻量级,因为当时在项目中,没来的及做很很多笔记。后来项目结束了,我也没写总结文档。已经过去好久了。但最近突然又对这个ORM 工具感兴趣。因为接下来自己的项目中很有可能采用这个ORM工具。所以在此重新温习了一下 mybatis, 因此就有了这个系列的 mybatis 教程. 什么是mybatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到 sessionfactory. 2. 由sessionfactory 产生 session 3. 在session 中完成对数据的增删改查和事务提交等. 4. 在用完之后关闭session 。 5. 在java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。 mybatis实战教程(mybatis in action)之一:开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包。这些软件工具均可以到各自的官方网站上下载。 首先建立一个名字为 MyBaits 的 dynamic web project 1. 现阶段,你可以直接建立java 工程,但一般都是开发web项目,这个系列教程最后也是web的,所以一开始就建立web工程。 2. 将 mybatis-3.2.0-SNAPSHOT.jar,mysql-connector-java-5.1.22-bin.jar 拷贝到 web工程的lib目录. 3. 创建mysql 测试数据库和用户表,注意,这里采用的是 utf-8 编码 创建用户表,并插入一条测试数据 程序代码 程序代码 Create TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `userName` varchar(50) DEFAULT NULL, `userAge` int(11) DEFAULT NULL, `userAddress` varchar(200) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; Insert INTO `user` VALUES ('1', 'summer', '100', 'shanghai,pudong'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值