MyBatis
MyBatis学习笔记
smith789
这个作者很懒,什么都没留下…
展开
-
模拟MyBatis插件的执行过程
MyBatis插件 插件概述 MyBatis允许用户自定义拦截器允许拦截: Executor类里的update() query() commit()等方法 ParameterHanlder类里的getParameterObject() setParameters()等方法 ResultSetHandler类里的handleResultSets()、handleOutputParameters()...原创 2020-02-12 20:13:50 · 207 阅读 · 0 评论 -
SpringBoot整合MyBatis
maven依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.4.RELEASE</version> </pare...原创 2020-02-04 18:31:44 · 173 阅读 · 0 评论 -
MyBatis和SQL注入
MyBatis和SQL注入 什么是SQL注入? 在正常的sql里拼上“drop或delete”等危险sql,导致执行正常sql的时候,对数据库数据造成危害。 如何防止SQL注入? 1、尽量避免使用常见的数据库名和数据库结构。SQL注入需要攻击者本身对于数据库的结构有足够的了解才能成功,必须写对sql语句才生效。 2、使用正则表达式等字符串过滤手段限制数据项的格式、字符数目。 MyBatis中的SQ...原创 2020-01-22 20:47:14 · 350 阅读 · 0 评论 -
泛型、反射、动态代理
泛型和动态代理 泛型 泛型是什么? 将类型参数化。类、方法都可以用泛型。 public class Student<M,N> { private M m; private N n; public Student(M m, N n) { this.m = m; this.n = n; } public M getM() { return m...原创 2020-01-13 22:54:57 · 405 阅读 · 0 评论 -
MyBatis中的日志模块源码分析
MyBatis中的日志模块源码分析 # 概览 MyBatis源码依赖的开源日志组件有: <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.30</version>...原创 2020-01-11 14:25:56 · 592 阅读 · 0 评论 -
MyBatis一级缓存和二级缓存
一级缓存 一级缓存存在于SqlSession的生命周期中。在同一个SqlSession中查询时,执行的方法、参数、结果会封装成一个CacheKey然后放到一个Map中。如果再次执行相同的方法、参数,判断是否同一个CacheKey,如果是,直接返回Map缓存对象中的结果,无需入库。 默认启用。如果要关闭需要配置flushCache。 <select id="selectByPrimaryKey...原创 2020-01-10 08:19:10 · 625 阅读 · 0 评论 -
MyBatis查询结果映射方法例子
高级结果映射 MyBatis可以轻松的将一对一、一对多的查询结果映射成复杂的组合关系。 表结构 customer_login是客户表。 customer_inf是客户信息扩展表。 customer_login_log是客户登录日志表。 customer_login和customer_inf的关系是1:1. customer_login和customer_login_log的关系是1:N。 假设有...原创 2020-01-08 21:30:29 · 1120 阅读 · 0 评论