随笔 - 1162  文章 - 0  评论 - 16  阅读 - 59万 
09 2021 档案
MyBatisPlus 之 Oracle 数据库主键
摘要:一、 二、 三、 阅读全文
posted @ 2021-09-26 23:01 格物致知_Tony 阅读(90) 评论(0) 推荐(0) 编辑
MyBatisPlus 之 公共字段自动填充
摘要:一、 二、 三、 四、 五、 六、 阅读全文
posted @ 2021-09-26 23:00 格物致知_Tony 阅读(29) 评论(0) 推荐(0) 编辑
MyBatisPlus 之 全局SQL注入器应用
摘要:一、 二、 三、 四、 五、 六、 阅读全文
posted @ 2021-09-26 22:59 格物致知_Tony 阅读(80) 评论(0) 推荐(0) 编辑
MyBatisPlus 之 自定义全局操作
摘要:一、 二、 三、 四、 五、 阅读全文
posted @ 2021-09-26 22:58 格物致知_Tony 阅读(83) 评论(0) 推荐(0) 编辑
MyBatisPlus 之 代码生成器
摘要:一、代码生成器 1、MP 提供了大量的自定义设置,生成的代码完全能够满足各类型的需求。 2、表及字段命名策略选择 在 MP 中,我们建议数据库表名 和 表字段采用驼峰命名方式,如果采用下划线命名方式,请开启全局下划线开关,如果表名字段方式不一致请注解指定,建议最好保持一致。 这么做的原因是为了避免在 阅读全文
posted @ 2021-09-26 22:45 格物致知_Tony 阅读(344) 评论(0) 推荐(0) 编辑
MyBatisPlus 之 插件扩展
摘要:一、MyBatis 插件机制简介 1、插件机制 MyBatis 通过插件(Interceptor)可以做到四大对象相关方法的执行,根据需求,完成相关数据的动态改变。 四大对象 Executor StatementHandler ParameterHandler ResultSetHandler 2、 阅读全文
posted @ 2021-09-26 22:45 格物致知_Tony 阅读(412) 评论(0) 推荐(0) 编辑
MyBatisPlus 之 活动记录(ActiveRecord)
摘要:一、ActiveRecord(活动记录) Active Record (活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。 ActiveRecord 一直广受动态语言(PHP、Ruby 等)的喜爱,而 Java 作为静态语言,对于 Ac 阅读全文
posted @ 2021-09-26 22:44 格物致知_Tony 阅读(149) 评论(0) 推荐(0) 编辑
MyBatisPlus 之 条件构造器 EntityWrapper
摘要:一、EntityWrapper 简介 1、MyBatis-Plus 通过 EntityWrapper(简称 EW,MP封装的一个查询条件构造器)或者 Condition(与EW类似)来让用户自由的构建查询条件,简单便捷,没有额外的负担,能够有效提高开发效率。 2、实体包装器,主要用于处理 SQL拼接 阅读全文
posted @ 2021-09-24 23:13 格物致知_Tony 阅读(1955) 评论(0) 推荐(0) 编辑
MyBatisPlus 之 全局策略配置
摘要:MP 全局策略配置 使用 Spring 整合 MyBatis 之后,可以在 Spring 的配置文件中进行 MP 的全局配置。 如下: <!-- 定义MyBatisPlus的全局策略配置 --> <bean id="globalConfig" class="com.baomidou.mybatisp 阅读全文
posted @ 2021-09-24 21:51 格物致知_Tony 阅读(1545) 评论(0) 推荐(0) 编辑
MyBatisPlus 之 常用注解
摘要:常用注解 1、@TableId /** * TableId * value 指定表中主键列的列名,如果实体属性名与列名一致,可以省略不指定 * type 指定主键策略 */ @TableId(value = "id", type = IdType.AUTO) private Integer id; 阅读全文
posted @ 2021-09-24 21:34 格物致知_Tony 阅读(273) 评论(0) 推荐(0) 编辑
MyBatisPlus 之 入门HelloWorld
摘要:一、通用 CRUD 1、提出问题: 假设我们已经存在一张 tbl_employee 表,且已经有对应的实体类 Employee,实现 tbl_employee 表的 CRUD 操作需要做什么呢? 2、实现方式: 基于 MyBatis: ① 需要编写 EmployeeMapper 接口,并手动编写CR 阅读全文
posted @ 2021-09-21 19:31 格物致知_Tony 阅读(113) 评论(0) 推荐(0) 编辑
MyBatisPlus 之 集成MP
摘要:一、搭建环境 1、创建测试表 -- 创建库 CREATE DATABASE mybatis_plus; -- 使用库 USE mybatis_plus; -- 创建表 CREATE TABLE tbl_employee( id INT(11) PRIMARY KEY AUTO_INCREMENT, 阅读全文
posted @ 2021-09-21 19:28 格物致知_Tony 阅读(179) 评论(0) 推荐(0) 编辑
MyBatisPlus 之 MyBatis 简介
摘要:一、MyBatis-Plus介绍 MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 愿景:我们的愿景是成为 MyBatis 最好 阅读全文
posted @ 2021-09-21 19:27 格物致知_Tony 阅读(57) 评论(0) 推荐(0) 编辑
MyBatisPlus【目录】
摘要:1 阅读全文
posted @ 2021-09-21 19:01 格物致知_Tony 阅读(79) 评论(0) 推荐(0) 编辑
MyBatis(十一)扩展:自定义类型处理器
摘要:一、TypeHandler TypeHandler 在MyBatis中进行数据库类型和JavaBean类型的映射。 TypeHandler<T> 接口: 该接口中声明了四个抽象方法,说明如下: //将parameter对象转换为字符串存入到 ps 对象的i位置 public abstract voi 阅读全文
posted @ 2021-09-19 17:51 格物致知_Tony 阅读(519) 评论(0) 推荐(0) 编辑
MyBatis(十一)扩展:批量操作
摘要:一、批量操作 默认的 openSession() 方法没有参数,它会创建有如下特性的 会开启一个事务(也就是不自动提交) 连接对象会从由活动环境配置的数据源实例得到 事务隔离级别将会使用驱动或数据源的默认设置 预处理语句不会被复用,也不会批量处理更新 openSession 方法的 Executor 阅读全文
posted @ 2021-09-19 17:49 格物致知_Tony 阅读(534) 评论(0) 推荐(0) 编辑
MyBatis(十一)扩展:存储过程
摘要:一、存储过程 实际开发中,我们通常也会写一些存储过程,MyBatis也支持对存储过程的调用。 一个最简单的存储过程: delimiter createproceduretest()beginselecthello;end delimiter ; 存储过程的调用: ① se 阅读全文
posted @ 2021-09-19 17:49 格物致知_Tony 阅读(565) 评论(0) 推荐(0) 编辑
MyBatis(十一)扩展:分页插件PageHelper
摘要:一、PageHelper 插件介绍 PageHelper是MyBatis中非常方便的第三方分页插件。 官方文档:https://github.com/pagehelper/MybatisPageHelper/blob/master/README_zh.md 我们可以对照官方文档的说明,快速的使用插件 阅读全文
posted @ 2021-09-19 17:48 格物致知_Tony 阅读(173) 评论(0) 推荐(0) 编辑
MyBatis(十)插件 4
摘要:4 阅读全文
posted @ 2021-09-19 17:46 格物致知_Tony 阅读(32) 评论(0) 推荐(0) 编辑
MyBatis(十)插件 1
摘要:1 阅读全文
posted @ 2021-09-19 17:25 格物致知_Tony 阅读(39) 评论(0) 推荐(0) 编辑
MyBatis(十)插件开发 之 开发自定义插件
摘要:一、动态改变SQL运行的参数 我们可以在目标方法放行前后,做非常多的事情,以到达动态修改 MyBatis 的运行流程。 在上面的插件开发基础上,当我们测试要查询id为1号的员工时,实际从数据库查询3号员工。 插件的实现: /** * 完成插件签名 * 告诉MyBatis当前插件用用来拦截哪个对象的哪 阅读全文
posted @ 2021-09-19 17:25 格物致知_Tony 阅读(240) 评论(0) 推荐(0) 编辑
MyBatis(十)插件开发 之 插件运行原理
摘要:一、插件开发 MyBatis在四大对象的创建过程中,都会有插件进行介入。 插件可以利用动态代理机制一层层的包装目标对象,而实现在目标对象执行目标方法之前进行拦截的效果。 MyBatis 允许在已映射语句执行过程中的某一点进行拦截调用。 默认情况下, MyBatis 允许使用插件来拦截的方法调用包括: 阅读全文
posted @ 2021-09-19 17:25 格物致知_Tony 阅读(366) 评论(0) 推荐(0) 编辑
05第二章:04-使用通用 Mapper
摘要:一、定义接口 继承通用的Mapper,必须指定泛型 例如下面的例子: public interface UserInfoMapper extends Mapper<UserInfo> { //其他必须手写的接口...} 一旦继承了Mapper,继承的Mapper就拥有了Mapper所有的通用方法。 阅读全文
posted @ 2021-09-19 15:18 格物致知_Tony 阅读(273) 评论(0) 推荐(0) 编辑
17第十四章:01-通用Mapper接口大全
摘要:Mapper 接口大全 Mapper3接口有两种形式,一种是提供了一个方法的接口。还有一种是不提供方法,但是继承了多个单方法的接口,一般是某类方法的集合。 例如SelectMapper<T>是一个单方法的接口,BaseSelectMapper<T>是一个继承了4个基础查询方法的接口。 基础接口 1、 阅读全文
posted @ 2021-09-19 12:56 格物致知_Tony 阅读(340) 评论(0) 推荐(0) 编辑
16第十三章:01-通用Mapper原理
摘要:原理 阅读全文
posted @ 2021-09-17 10:20 格物致知_Tony 阅读(88) 评论(0) 推荐(0) 编辑
14第十一章:01-自定义类型处理器
摘要:一、简单类型与复杂类型 1、三个类型 User类: @Table(name = "table_user")public class User { @Id private Integer userId; private String userName; private Address address; 阅读全文
posted @ 2021-09-17 10:19 格物致知_Tony 阅读(220) 评论(0) 推荐(0) 编辑
15第十二章:01-通用Mapper配置项
摘要:官方文档:https://github.com/abel533/Mapper/wiki/3.config 阅读全文
posted @ 2021-09-17 10:19 格物致知_Tony 阅读(54) 评论(0) 推荐(0) 编辑
13第十章:01-二级缓存
摘要:一、开启二级缓存 1、在 MyBatis 的配置文件中开启二级缓存 <settings> <setting name="cacheEnabled" value="true"/> </settings> 2、在使用的 Mapper 接口上面添加注解 @CacheNamespace @CacheName 阅读全文
posted @ 2021-09-17 10:18 格物致知_Tony 阅读(98) 评论(0) 推荐(0) 编辑
12第九章:01-通用Mapper接口扩展
摘要:一、通用Mapper接口扩展 1、说明 这里的扩展是指增加通用Mapper提供的功能。 2、举例 通用Mapper官方文档中使用一个批量 insert 作为扩展功能的例子: tk.mybatis.mapper.additional.insert.InsertListMapper<T>tk.mybat 阅读全文
posted @ 2021-09-15 22:10 格物致知_Tony 阅读(154) 评论(0) 推荐(0) 编辑
11第八章:01-自定义Mapper接口
摘要:Mapper 体系结构 自定义接口 1、自定义接口用途 可以根据开发的实际需要对Mapper 接口进行定制 如果你想按需选择接口,不想使用Mapper包含的那么多的方法,你可以创建自己的MyMapper,自己搭配想要的方法。 2、创建自定义MyMapper 接口 3、配置自定义接口 配置Mapper 阅读全文
posted @ 2021-09-15 21:51 格物致知_Tony 阅读(268) 评论(0) 推荐(0) 编辑
10第七章:01-逆向工程
摘要:一、逆向工程 1、原生 MyBatis 逆向工程与通用 Mapper 逆向工程对比 2、参考文档地址 Github地址: 通用Mapper博客:https://mapperhelper.github.io/docs/ MyBatis Generator 插件:https://mapperhelper 阅读全文
posted @ 2021-09-15 20:04 格物致知_Tony 阅读(173) 评论(0) 推荐(0) 编辑
09第六章:01-分页查询
摘要:一、分页查询 1、selectByRowBounds(T record, RowBounds rowBounds) 说明:根据实体属性和RowBounds进行分页查询 案例: /** * SELECT emp_id,emp_name,emp_salary,emp_age FROM tabple_em 阅读全文
posted @ 2021-09-14 22:19 格物致知_Tony 阅读(501) 评论(0) 推荐(0) 编辑
08第五章:01-QBC查询
摘要:一、QBC 查询 概念:Query By Criteria Criteria 是 Criterion 的复数形式,意思是规则、标准、准则。在SQL语句中相当于查询条件。 QBC 查询是将查询条件通过java对象进行模块化封装。 二、案例 1、使用QBC 进行查询 /** * SELECT disti 阅读全文
posted @ 2021-09-14 21:52 格物致知_Tony 阅读(247) 评论(0) 推荐(0) 编辑
07第四章:01-常用注解
摘要:常用注解 1、@Table 作用:建立实体类和数据库表之间的对应关系。 默认规则:实体类类名首字母小写作为表名,如 Employee -> employee 表 用法:在 @Table 注解的 name 属性中指定目标数据库的表名; 案例: 2、@Column 作用:建立实体类字段和数据库表字段之间 阅读全文
posted @ 2021-09-14 21:04 格物致知_Tony 阅读(290) 评论(0) 推荐(0) 编辑
06第三章:01-基本增删改查测试
摘要:一、基本查询 1、selectOne(T record) 说明:根据实体中的属性进行查询,只能有一个返回值,有多个结果是抛出异常,查询条件使用等号 案例: /** * SELECT emp_id,emp_name,emp_salary,emp_age FROM tabple_emp WHERE em 阅读全文
posted @ 2021-09-14 20:13 格物致知_Tony 阅读(200) 评论(0) 推荐(0) 编辑
04第二章:03-Mapper接口创建与介绍
摘要:一、创建具体的Mapper接口 继承通用的Mapper,必须指定泛型,例如下面的例子: /** * * 具体操作数据库的Mapper接口,需要继承通用Mapper提供的核心接口 Mapper<T> * 泛型类型就是实体类的类型 * */public interface EmployeeMapper  阅读全文
posted @ 2021-09-14 10:29 格物致知_Tony 阅读(839) 评论(0) 推荐(0) 编辑
03第二章:02-集成通用Mapper
摘要:一、添加依赖 加入Maven依赖信息 <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> <version>4.0.0-beta3</version></dependency> 如果你想引入Jar包,你 阅读全文
posted @ 2021-09-14 09:55 格物致知_Tony 阅读(119) 评论(0) 推荐(0) 编辑
02第二章:01-搭建环境
摘要:一、准备数据库 创建数据库表并插入数据 CREATE DATABASE common_mapper;USE common_mapper;CREATE TABLE `tabple_emp`( `emp_id` INT NOT NULL AUTO_INCREMENT, `emp_name` VARCHA 阅读全文
posted @ 2021-09-14 09:43 格物致知_Tony 阅读(43) 评论(0) 推荐(0) 编辑
01第一章:01-通用Mapper介绍
摘要:通用Mapper 一、作用: 替我们生成常用增删改查操作的SQL语句。 通用Mapper都可以极大的方便开发人员。可以随意的按照自己的需要选择通用方法,还可以很方便的开发自己的通用方法。 极其方便的使用MyBatis单表的增删改查。 支持单表操作,不支持通用的多表联合查询。 二、官方发布地址: ht 阅读全文
posted @ 2021-09-14 09:26 格物致知_Tony 阅读(298) 评论(0) 推荐(0) 编辑
00通用Mapper【目录】
摘要:一、通用 Mapper 介绍 通用 Mapper 介绍 二、搭建环境 创建数据库并搭建开发环境 集成通用 Mapper 创建具体 Mapper 接口与 Mapper 接口介绍 三、使用通用 Mapper 使用通用 Mapper 基本增删改查测试 常用注解 四、QBC 查询 QBC 查询 五、分页查询 阅读全文
posted @ 2021-09-14 09:07 格物致知_Tony 阅读(81) 评论(0) 推荐(0) 编辑
MyBatis(九)工作原理 之 MyBatis原理总结
摘要:MyBatis 简单案例: @Test public void test() throws IOException { //1、获取 sqlSessionFactory SqlSessionFactory sqlSessionFactory = getsqlSessionFactory(); //2 阅读全文
posted @ 2021-09-13 14:02 格物致知_Tony 阅读(67) 评论(0) 推荐(0) 编辑
MyBatis(九)工作原理 之 查询实现流程
摘要:查询流程 查询流程总结 说明: StatementHandler:处理sql语句预编译,设置参数等相关工作; ParameterHandler:设置预编译参数用的 ResultHandler:处理结果集 TypeHandler:在整个过程中,进行数据库类型和javaBean类型的映射 阅读全文
posted @ 2021-09-13 14:01 格物致知_Tony 阅读(66) 评论(0) 推荐(0) 编辑
MyBatis(九)工作原理 之 getMapper 获取接口的代理对象
摘要:获取代理对象 getMapper 返回接口的代理对象(包含了 SqlSession 对象) 阅读全文
posted @ 2021-09-13 14:00 格物致知_Tony 阅读(123) 评论(0) 推荐(0) 编辑
MyBatis(九)工作原理 之 openSession 获取 SqlSession对象
摘要:获取 SqlSession 对象 返回 SqlSession 的实现类 DefaultSqlSession 对象,他里面包含了 Executor 和 Configuration;Executor 会在这一步被创建。 阅读全文
posted @ 2021-09-13 13:59 格物致知_Tony 阅读(146) 评论(0) 推荐(0) 编辑
MyBatis(九)工作原理 之 SQLSessionFactory 的初始化
摘要:根据配置文件创建 SQLSessionFactory Configuration 封装了所有配置文件的详细信息。 总结:把配置文件的信息解析并保存在 Configuration 对象中,返回包含了 Configuration 的 DefaultSqlSession 对象。 阅读全文
posted @ 2021-09-13 13:58 格物致知_Tony 阅读(91) 评论(0) 推荐(0) 编辑
MyBatis(九)工作原理 之 框架分层架构
摘要:MyBatis 框架分层架构 MyBatis 简单案例: public SqlSessionFactory getsqlSessionFactory() throws IOException { String resource = "mybatis-config.xml"; InputStream 阅读全文
posted @ 2021-09-13 13:57 格物致知_Tony 阅读(102) 评论(0) 推荐(0) 编辑
MyBatis(八)MyBatis-逆向工程
摘要:一、逆向工程简介 MyBatis Generator:简称 MBG,是一个专门为 MyBatis 框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件,接口,以及 bean 类。 支持基本的增删改查,以及 QBC 风格的查询,但是表连接、存储过程等这些复杂 sql 的定义需要手工编写。 官 阅读全文
posted @ 2021-09-10 15:41 格物致知_Tony 阅读(359) 评论(0) 推荐(1) 编辑
MyBatis(七)SSM 整合:MyBatis-Spring-SpringMVC 整合
摘要:一、前提 1、查看不同 MyBatis 版本整合 Spring 时使用的适配包 http://www.mybatis.org/spring/ 2、下载整合适配包 https://github.com/mybatis/spring/releases 3、官方整合示例 jpetstore https:/ 阅读全文
posted @ 2021-09-10 13:44 格物致知_Tony 阅读(77) 评论(0) 推荐(0) 编辑
MyBatis(六)缓存机制 之 整合第三方缓存
摘要:一、整合第三方缓存 1、为了提高扩展性。MyBatis 定义了缓存接口 Cache。可以通过实现 Cache 接口来自定义二级缓存;(在二级缓存的基础上来设置,只是需要指定二级缓存的技术) 2、EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干等特点,是 Hibernate 中默认 阅读全文
posted @ 2021-09-08 22:29 格物致知_Tony 阅读(117) 评论(0) 推荐(0) 编辑
MyBatis(六)缓存机制 之 缓存原理图
摘要:缓存原理图: 执行流程:当执行一条查询SQL时, 流程为从二级缓存中进行查询,如果没有查到进入一级缓存中查询,最后执行 JDBC 查询。 阅读全文
posted @ 2021-09-08 22:28 格物致知_Tony 阅读(70) 评论(0) 推荐(0) 编辑
MyBatis(六)缓存机制 之 缓存的相关属性设置
摘要:缓存相关设置 1、全局 setting 的 cacheEnable: cacheEnable:是否开启二级缓存 <!-- 是否开启二级缓存 --> <setting name="cacheEnabled" value="true"/> 取值: true:开启二级缓存 false:关闭缓存(关闭二级缓 阅读全文
posted @ 2021-09-08 22:05 格物致知_Tony 阅读(287) 评论(0) 推荐(0) 编辑
MyBatis(六)缓存机制 之 二级缓存
摘要:一、二级缓存简介 1、简介 (1)二级缓存(second level cache),全局作用域缓存; (2)二级缓存默认不开启,需要手动配置; (3)MyBatis 提供二级缓存的接口以及实现,缓存实现要求 POJO 实现 Serializable 接口; (4)二级缓存在 SqlSession 关 阅读全文
posted @ 2021-09-08 17:17 格物致知_Tony 阅读(365) 评论(0) 推荐(0) 编辑
MyBatis(六)缓存机制 之 一级缓存
摘要:一、一级缓存介绍 1、一级缓存(local cache),即本地缓存,作用域默认为 SqlSession。当 Session flush 或 close 后,该 session 中的所有 Cache 将被清空。 2、本地缓存不能被关闭,但可以调用 clearCache() 来清空本地缓存,或者改变缓 阅读全文
posted @ 2021-09-08 17:16 格物致知_Tony 阅读(658) 评论(0) 推荐(0) 编辑
MyBatis(六)缓存机制 之 缓存机制简介
摘要:MyBatis 缓存机制 1、MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制。缓存可以极大的提升查询效率。 2、MyBatis 系统中默认定义了两级缓存:一级缓存,二级缓存; 3、默认情况下,只有一级缓存(SqlSession 级别的缓存,也称为本地缓存)开启。 4、二级 阅读全文
posted @ 2021-09-08 17:14 格物致知_Tony 阅读(44) 评论(0) 推荐(0) 编辑
MyBatis(五)动态SQL 之 批量操作(删除)
摘要:一、批量删除 删除记录的时候,大多时候都是根据记录的 id 去删除,所以当实现批量删除的时候,只要我们想法传进去多个 id 值就可以了。 思路: 第一种方式:delete from tbl_employee where id in (1,2,3) 第二种方式:delete from tbl_empl 阅读全文
posted @ 2021-09-08 13:57 格物致知_Tony 阅读(7815) 评论(0) 推荐(0) 编辑
MyBatis(五)动态SQL 之 批量操作(更新)
摘要:一、批量修改 批量修改,分为两种情况: (1)把每条数据修改为相同内容 方式一:update emp set .... where eid in (1,2,3); 方式二:update emp set .... where eid = 1 or eid = 2 or eid = 3; (2)把每条数 阅读全文
posted @ 2021-09-08 13:56 格物致知_Tony 阅读(2530) 评论(0) 推荐(0) 编辑
MyBatis(五)动态SQL 之 批量操作(插入)
摘要:一、批量插入 在MySQL 下面实现批量添加在 values 后面添加多个数据,用逗号分隔 insert into emp values(),(),(),() 但是 MySQL 与 Oracle 插入方式不一致,下面具体分析。 二、MySQL 实现批量插入 1、方式一 MySQL 支持 values 阅读全文
posted @ 2021-09-08 13:56 格物致知_Tony 阅读(5165) 评论(1) 推荐(1) 编辑
MyBatis(五)动态SQL 之 批量操作(查询)
摘要:一、批量操作——查询 在实际工作,我们需要根据情况进行批量查询,批量查询,可以全部查询出来,也可以根据其他查询查询出来。 1、查询全部的数据 (1)在接口中声明方法 //查询所有对象,返回 list 集合 public List<Employee> getAllEmps(); (2)在对应的 xml 阅读全文
posted @ 2021-09-08 13:55 格物致知_Tony 阅读(6236) 评论(0) 推荐(1) 编辑
MyBatis(五)动态SQL 之 sql 标签(重用片段)
摘要:一、sql 标签 SQL 标签是用于抽取可重用的 SQL 片段,将相同的,使用频繁的 SQL 片段抽取出来,单独定义,方便多次引用。 抽取可重用的sql片段。方便后面引用 (1)sql抽取:经常将要查询的列名,或者插入用的列名抽取出来方便引用 (2)include来引用已经抽取的sql: (3)in 阅读全文
posted @ 2021-09-08 12:55 格物致知_Tony 阅读(2200) 评论(0) 推荐(0) 编辑
MyBatis(五)动态SQL 之 bind绑定
摘要:一、bind 标签 bind作用:可以将OGNL表达式的值绑定到一个变量中,方便后来引用这个变量的值。 在接口中声明方法: public List<Employee> getEmpsTestBind(Employee employee); 在对应xml文件中配置: <!-- bind 将OGNL表达 阅读全文
posted @ 2021-09-08 12:49 格物致知_Tony 阅读(2829) 评论(0) 推荐(0) 编辑
MyBatis(五)动态SQL 之 内置参数:_parameter&_databaseId
摘要:一、两个内置参数 不只是方法传递过来的参数可以被用来判断,取值。 mybatis默认还有两个内置参数: (1)_parameter:代表整个参数 单个参数:_parameter就是这个参数 多个参数:参数会被封装为一个map;_parameter 就是代表这个 map (2)_databaseId: 阅读全文
posted @ 2021-09-08 12:38 格物致知_Tony 阅读(593) 评论(0) 推荐(0) 编辑
MyBatis(五)动态SQL 之 foreach 标签
摘要:一、foreach 标签 foreach:主要用于循环迭代 语法格式: <foreach collection="" item="" open="" close="" separator="" index=""></foreach> foreach 对一个数组或集合进行遍历 collection:指 阅读全文
posted @ 2021-09-07 22:45 格物致知_Tony 阅读(1351) 评论(0) 推荐(0) 编辑
MyBatis(五)动态SQL 之 set 标签
摘要:一、set 标签 set 主要是用于解决修改操作中 SQL 语句中可能多出逗号的问题。 在接口中声明方法: //修改员工信息 public void updateEmpByCondition(Employee employee); 在对应的 xml 中的配置: 1、使用${} 方式取值 <!-- p 阅读全文
posted @ 2021-09-07 17:23 格物致知_Tony 阅读(970) 评论(0) 推荐(0) 编辑
MyBatis(五)动态SQL 之 trim 标签
摘要:一、trim 标签 语法: <trim prefix="" suffix="" prefixOverrides="" suffixOverrides="">:截取并拼接 属性说明: trim 标签用于截取并拼接,即可以在条件判断完的 SQL 语句前后,添加或者去掉指定的字符。 prefix:(添加前 阅读全文
posted @ 2021-09-07 17:21 格物致知_Tony 阅读(1888) 评论(0) 推荐(0) 编辑
MyBatis(五)动态SQL 之 choose(when、otherwise)标签
摘要:一、choose 标签 choose 主要用于分支判断,类似于 java 中带了 break的 switch...case,只会满足所有分支中的一个。 语法格式: <choose> <when test=""> 通过test表达式拼接SQL <when test=""> <otherwise></o 阅读全文
posted @ 2021-09-07 17:21 格物致知_Tony 阅读(2909) 评论(0) 推荐(0) 编辑
MyBatis(五)动态SQL 之 if 与 where 标签
摘要:一、SQL 多条件来查询 1、在 EmployeeMapper 接口中声明方法 //根据id, lastNname, age, sex多条件查询员工信息 public List<Emp> getEmpListByMoreCondition(Emp emp); 2、在 EmployeeMapper.x 阅读全文
posted @ 2021-09-07 17:20 格物致知_Tony 阅读(5709) 评论(0) 推荐(0) 编辑
MyBatis(五)动态SQL 之 动态SQL简介
摘要:一、动态 SQL 简介 1、动态 SQL 是 MyBatis 强大特性之一。极大的简化拼接 SQL 的操作; 2、动态 SQL 元素和使用 JSTL 或其他类似基于 XML 的文本处理器相似; 3、MyBatis 采用功能强大的基于 OGNL 的表达式来简化操作 if 标签 choose(when, 阅读全文
posted @ 2021-09-07 17:14 格物致知_Tony 阅读(155) 评论(0) 推荐(0) 编辑
MyBatis(四)映射文件 之 备用5
摘要:5 阅读全文
posted @ 2021-09-07 16:37 格物致知_Tony 阅读(26) 评论(0) 推荐(0) 编辑
MyBatis(四)映射文件 之 备用4
摘要:4 阅读全文
posted @ 2021-09-07 16:36 格物致知_Tony 阅读(22) 评论(0) 推荐(0) 编辑
MyBatis(四)映射文件 之 resultMap:鉴别器
摘要:一、鉴别器 鉴别器:mybatis可以使用discriminator判断某列的值,然后根据某列的值改变封装行为 <discriminator javaType=""> <case value=""></case> </discriminator> 案例: 封装 Employee: 如果查出的是女生: 阅读全文
posted @ 2021-09-07 16:34 格物致知_Tony 阅读(179) 评论(0) 推荐(0) 编辑
MyBatis(四)映射文件 之 备用1
摘要:1 阅读全文
posted @ 2021-09-07 16:33 格物致知_Tony 阅读(27) 评论(0) 推荐(0) 编辑
MyBatis(四)映射文件 之 分步查询与懒加载
摘要:一、分步查询 1、分步查询 在前面已经使用了 association 和 collection 的分步查询。 <resultMap type="Dept" id="deptMapStep"> <id column="did" property="did"/> <result column="dnam 阅读全文
posted @ 2021-09-07 16:33 格物致知_Tony 阅读(212) 评论(0) 推荐(0) 编辑
MyBatis(四)映射文件 之 注解开发
摘要:一、注解开发 在面向接口开发中,我们可以在接口中声明方法,然后通用配置其对应的SQL映射文件来实现增删改查,当我们面对一些简单的SQL语句时,还有一种更简单的开发方式,那就是通过注解开发,省略掉SQL映射文件。 使用注解开发: public interface EmployeeMapperAnnot 阅读全文
posted @ 2021-09-07 16:33 格物致知_Tony 阅读(97) 评论(0) 推荐(0) 编辑
MyBatis(四)映射文件 之 一对多映射查询
摘要:一、一对多映射关系 POJO 中的属性可能会是一个对象的集合,当我们查询一方的信息时,还想要知道多方的信息,就需要用到一对多查询。(如:查询部门信息,同时查询部门中的员工信息) 使用 collection 标签来定义对象的封装规则。 两个 JavaBean 类: Employee 类 public 阅读全文
posted @ 2021-09-07 16:32 格物致知_Tony 阅读(131) 评论(0) 推荐(0) 编辑
MyBatis(四)映射文件 之 多对一映射查询
摘要:一、多对一映射关系 POJO 中的属性可能会是一个对象,当我们查询多方的信息时,还想要知道一方的信息,就需要用到一对多查询。 我们可以使用联合查询,并以级联属性的方式封装对象,使用 association 标签来定义对象的封装规则。 两个 JavaBean 类: Employee 类 public 阅读全文
posted @ 2021-09-07 16:31 格物致知_Tony 阅读(283) 评论(0) 推荐(0) 编辑
MyBatis(四)映射文件 之 resultMap 自定义映射
摘要:一、resultMap 自定义映射 1、resultMap 是什么 resultMap 是自定义的映射关系,可实现高级结果集映射。 注意:resultMap 不能与 resultType 同时使用。 2、子标签说明 constructor - 类在实例化时, 用来注入结果到构造方法中 – idArg 阅读全文
posted @ 2021-09-06 22:53 格物致知_Tony 阅读(425) 评论(0) 推荐(0) 编辑
MyBatis(四)映射文件 之 resultType 自动映射
摘要:resultType 自动映射 1、全局 setting 设置 (1)autoMappingBehavior 默认是 PARTIAL,开启自定映射的功能。唯一的要求是结果集列名和 JavaBean 属性名一致; <settings> <!-- 指定是否以及如何自动映射指定的列到字段或属性 --> < 阅读全文
posted @ 2021-09-06 22:52 格物致知_Tony 阅读(897) 评论(0) 推荐(0) 编辑
MyBatis(四)映射文件 之 查询的几种情况
摘要:resultType:返回值类型,别名或者全类名,如果返回的是集合,定义集合中元素的类型。 resultType 与 resultMap 不能同时使用。 一、常见的查询情况 1、查询单行数据返回单个对象 //根据 id 查询一个员工信息 public Employee getEmpById(Inte 阅读全文
posted @ 2021-09-06 13:46 格物致知_Tony 阅读(456) 评论(0) 推荐(0) 编辑
MyBatis(四)映射文件 之 参数获取详解#{} 与 ${}
摘要:一、#{} 与{} 的取值 相同点: #{}:可以获取map中的值或者pojo对象属性的值;{}:可以获取map中的值或者pojo对象属性的值; 区别: #{}:是以预编译的形式,将参数设置到sql语句中;PreparedStatement;防止sql注入; ${}:取出的值直接拼装在sql语 阅读全文
posted @ 2021-09-06 13:43 格物致知_Tony 阅读(641) 评论(0) 推荐(0) 编辑
MyBatis(四)映射文件 之 参数处理
摘要:一、参数传递 1、单个参数 可以接收基本类型,包装类型,字符串类型等。 这种情况 MyBatis 可直接使用这个参数,不需要经过任何处理。 通过 #{参数名/任意名}:取出参数值; 2、多个参数 任意多个参数,都会被 MyBatis 重新包装成一个 Map 传入。 Map 的 key 是 param 阅读全文
posted @ 2021-09-04 22:24 格物致知_Tony 阅读(172) 评论(0) 推荐(0) 编辑
MyBatis(四)映射文件 之 parameterType 属性
摘要:parameterType 属性 当在执行 insert 或 update 操作时,需要传递一个 JavaBean 对象。 <!-- public void addEmp(Emp emp); --> <insert id="addEmp"> insert into emp values(null, 阅读全文
posted @ 2021-09-04 22:23 格物致知_Tony 阅读(223) 评论(0) 推荐(0) 编辑
MyBatis(四)映射文件 之 主键生成策略
摘要:一、主键生成方式 1、支持主键自增,例如:MySQL数据库 2、不支持主键自增,例如:Oracle 数据库 常见需求:插入一条新数据,立马获取新数据的主键,然后查询这条数据 二、原生 JDBC 中的主键生成 在原生 JDBC 中有这样一个方法 conn.prepareStatement(sql, a 阅读全文
posted @ 2021-09-04 22:19 格物致知_Tony 阅读(525) 评论(0) 推荐(0) 编辑
MyBatis(四)映射文件 之 增删改查
摘要:一、准备工作 1、创建数据库中对应的 JavaBean public class Employee { private Integer id; private String lastName; private String gender; private String email; public E 阅读全文
posted @ 2021-09-04 22:17 格物致知_Tony 阅读(195) 评论(0) 推荐(0) 编辑
MyBatis(四)映射文件
摘要:1、MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。 MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好。 2、SQL 映射 阅读全文
posted @ 2021-09-04 22:09 格物致知_Tony 阅读(98) 评论(0) 推荐(0) 编辑
MyBatis(三)全局配置文件 之 databaseProvider 数据库厂商标识
摘要:databaseIdProvider环境 一、databaseIdProvider 属性 MyBatis 可以根据不同的数据库厂商执行不同的语句 <databaseIdProvider type="DB_VENDOR"> <!-- 为不同的数据库厂商起别名 --> <property name="M 阅读全文
posted @ 2021-09-02 22:53 格物致知_Tony 阅读(978) 评论(0) 推荐(0) 编辑
MyBatis(三)全局配置文件 之 mappers 映射器
摘要:mappers 映射器 一、mappers 映射器 用来在 MyBatis 初始化的时候,告诉 myBatis 需要引入哪些 Mapper 映射文件 二、注册SQL映射文件 1、逐个注册 mapper 逐个注册 SQL 映射文件 (1)注册配置文件方式 ① resources:引入类路径下的文件sq 阅读全文
posted @ 2021-09-02 22:53 格物致知_Tony 阅读(350) 评论(0) 推荐(0) 编辑
MyBatis(三)全局配置文件 之 environments 环境配置
摘要:environment环境配置 一、environment 环境配置 1、MyBatis 可以配置多种环境,比如开发、测试和生成环境需要有不同的配置 2、每种环境使用一个 environment 标签进行配置并指定唯一标识符 3、可以通过 environment 标签中的 default 属性指定一 阅读全文
posted @ 2021-09-02 22:52 格物致知_Tony 阅读(1017) 评论(0) 推荐(0) 编辑
MyBatis(三)全局配置文件 之 plugins 插件
摘要:plugins插件 一、关于插件 插件是MyBatis提供的一个非常强大的机制,我们可以通过插件来修改MyBatis的一些核心行为。 插件通过动态代理机制,可以介入四大对象的任何一个方法的执行。后面会有专门的章节我们来介绍mybatis运行原理以及插件。 二、四大对象 (1)Executor (up 阅读全文
posted @ 2021-09-02 22:00 格物致知_Tony 阅读(134) 评论(0) 推荐(0) 编辑
MyBatis(三)全局配置文件 之 objectFactory 对象工厂
摘要:1 阅读全文
posted @ 2021-09-02 21:59 格物致知_Tony 阅读(40) 评论(0) 推荐(0) 编辑
MyBatis(三)全局配置文件 之 typeHandlers 类型处理器
摘要:typeHandlers类型处理器 一、typeHandlers类型处理器 无论是 MyBatis 在预处理语句(PreparedStatement) 中设置一个参数时,还是从结果集中取出一个值时,都会用类型处理器将获取的值以合适的方式转换成 Java 类型。 二、MyBatis 中提供的类型处理器 阅读全文
posted @ 2021-09-02 21:58 格物致知_Tony 阅读(496) 评论(0) 推荐(0) 编辑
MyBatis(三)全局配置文件 之 typeAliases 类型命名
摘要:typeAliases 类型命名 typeAliases 别名处理器:可以为我们的java类型起别名(别名不区分大小写) 方式一: 类型别名是为 Java 类型设置一个短的名字,可以方便我们引用某个类 <typeAliases> <!-- 为类型设置类型别名 type:指定的要起别名的类型的全类名, 阅读全文
posted @ 2021-09-02 21:57 格物致知_Tony 阅读(245) 评论(0) 推荐(0) 编辑
MyBatis(三)全局配置文件 之 properties 属性
摘要:Properties 属性 Mybatis 可以使用 properties 来引入外部properties配置文件或资源文件中的内容。 properties 标签有两个属性: resource:引入类路径下的资源; url:引入网络路径或者磁盘路径下的资源。 方式一: 可外部配置且可动态替换的,既可 阅读全文
posted @ 2021-09-02 21:56 格物致知_Tony 阅读(402) 评论(0) 推荐(0) 编辑
MyBatis(三)全局配置文件 之 settings 设置
摘要:Settings 设置 setting:用来设置每一设置项 name:设置项名 value:设置项取项 这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。包含如下的 setting 设置 <settings> <setting name="cacheEnabled 阅读全文
posted @ 2021-09-02 21:56 格物致知_Tony 阅读(488) 评论(0) 推荐(0) 编辑
MyBatis(三)全局配置文件
摘要:一、全局配置文件概述(全局配置文件) The MyBatis configuration contains setting and properties that have a dramatic effect on how MyBatis behave。 MyBatis 的配置文件包含了影响 MyB 阅读全文
posted @ 2021-09-02 19:32 格物致知_Tony 阅读(154) 评论(0) 推荐(0) 编辑
MyBatis(二)HelloWorld 案例
摘要:一、准备工作 1、创建数据库和表信息 DROP DATABASE IF EXISTS mybatis; CREATE DATABASE mybatis; DROP TABLE IF EXISTS tbl_employee; CREATE TABLE IF NOT EXISTS tbl_employe 阅读全文
posted @ 2021-09-02 19:27 格物致知_Tony 阅读(109) 评论(0) 推荐(0) 编辑
MyBatis(一)MyBatis 简介与下载
摘要:一、MyBatis 简介 1、MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架; 2、MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集; 3、MyBatist 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJO( 阅读全文
posted @ 2021-09-02 19:24 格物致知_Tony 阅读(403) 评论(0) 推荐(0) 编辑
JavaWeb 案例10 — 生成验证码
摘要:一、谷歌 kaptcha 图片验证码的使用 1、导入谷歌验证码 kaptcha 的 jar 包 1 <dependency> 2 <groupId>com.github.penggle</groupId> 3 <artifactId>kaptcha</artifactId> 4 <version>2 阅读全文
posted @ 2021-09-01 12:41 格物致知_Tony 阅读(71) 评论(0) 推荐(0) 编辑
JavaWeb 案例9 — 表单重复提交问题
摘要:一、表单重复提交问题 1、方式一 提交完表单。 服务器使用请求转来进行页面跳转。 这个时候, 用户按下功能键 F5, 就会发起最后一次的请求。造成表单重复提交问题。 解决方法: 使用重定向来进行跳转 2、方式二 用户正常提交服务器, 但是由于网络延迟等原因, 迟迟未收到服务器的响应, 这个时候, 用 阅读全文
posted @ 2021-09-01 12:34 格物致知_Tony 阅读(166) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示