mybatis
唐火
开始人工智能之路了!!!
展开
-
[mybatis]动态sql_bind_绑定
bind <!-- public List<Employee> getEmpsTestInnerParameter(Employee employee);--> <select id="getEmpsTestInnerParameter" resultType="com.atguigu.mybatis.bean.Employee"> <!--<bind name = "_lastName" value = "'%'+lastName+'%'"/>原创 2022-01-26 09:45:40 · 380 阅读 · 0 评论 -
[mybatis]Configuration XML_databaseidProvider
databaseidProvider原创 2022-01-26 09:44:49 · 136 阅读 · 0 评论 -
[mybatis]逆向工程MGB基本编写
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"> <generatorConfiguration> <c原创 2022-01-26 09:46:09 · 167 阅读 · 0 评论 -
[mybatis]缓存_缓存原理图
原创 2022-01-26 09:46:20 · 149 阅读 · 0 评论 -
[mybatis]缓存_缓存有关的设置以及属性
缓存有关的设置以及属性 全局配置中的设置 和缓存有关的设置/属性原创 2022-03-06 19:34:57 · 526 阅读 · 0 评论 -
[mybatis]缓存_二级缓存使用&细节
二级缓存 开启全局二级缓存 <setting name="cacheEnabled" value="true"/> 去mapper.xml中配置使用二级缓存 <cache></cache> <cache eviction="FIFO" flushInterval="60000" readOnly="false" size="1024" ></cache> cache中的配置 type = “”:指定自定义缓存的全类名;实现Cache原创 2022-01-26 09:45:13 · 93 阅读 · 0 评论 -
[mybatis]缓存_一级缓存_一级缓存失效的四种情况
1.sqlSession不同 @Test public void test05() throws IOException { SqlSessionFactory sqlSessionFactory = getSqlSessionFactory(); SqlSession sqlSession01 = sqlSessionFactory.openSession(); try { EmployeeMap..原创 2022-01-24 11:18:43 · 661 阅读 · 0 评论 -
[mybatis]缓存_一级缓存
@Test public void test05() throws IOException { SqlSessionFactory sqlSessionFactory = getSqlSessionFactory(); SqlSession sqlSession = sqlSessionFactory.openSession(); try { EmployeeMapper mapper = sqlSes..原创 2022-01-24 11:18:38 · 60 阅读 · 0 评论 -
[mybatis]缓存机制介绍_一级缓存&二级缓存
两级缓存: 一级缓存:(本地缓存):sqlSession级别的缓存。一级缓存是一直开启的;sqlSession级别的一个Map 与数据库同一次会话期间查询到的数据会放在本地缓存中。 以后如果需要获取相同的数据,直接从缓冲中拿,没必要再去查询数据库; 二级缓存:(全局缓存);基于namespace级别的缓存;一个namespace对应一个二级缓存; 工作机制: 1.一个会话,查询一条数据,这个数据就会被放在当前会话的一级缓存中; 2.如果会话关闭;一级缓存中的数据会被保存到二级缓存中;新..原创 2022-01-26 09:45:17 · 200 阅读 · 0 评论 -
[mybatis]动态sql_sql_抽取可重用的sql片段
sql 抽取可重用的sql片段,方便后面引用 1.sql抽取:经常将要查询的列名,或者插入用的列名抽取出来方便引用 2.include来引用已经抽取的sql <sql id = "insertColumn"> employee_id,last_name,email </sql> <sql id = "insertColumn"> employee_id,last_name,email,${testColumn} </sql> 引用外部定义原创 2022-01-24 11:18:35 · 218 阅读 · 0 评论 -
[mybatis]动态sql_内置参数_parameter&_databaseid
mybatis内置参数 mybatis默认还有两个内置参数: _parameter;代表整个参数 单个参数:_parameter就是这个参数 多个参数:参数会被封装为一个map; _parameter就是代表这个map _databaseId;如果配置了DatabaseIdProvider标签 _databaseId就是代表当前数据库的别名 public List<Employee> getEmpsTestInnerParameter(Employee empl原创 2022-01-26 09:45:25 · 211 阅读 · 0 评论 -
[mybatis]动态sql_foreach_遍历集合&批量插入
foreach collection:指定要遍历的集合 list类型的参数会特殊处理封装在map中,map的key就叫list item:将当前遍历出的元素赋值给指定的变量 #{变量名}就能取出变量的值也就是当前遍历出的元素 separator:每个元素之间的分隔符 open:遍历出所有结果拼接一个开始的字符 close:遍历出所有结果拼接一个结束的字符 index:索引。遍历list的时候 index就是索引 遍历map的时候index表示的就是map的key,item就是原创 2022-01-24 11:18:13 · 1348 阅读 · 0 评论 -
[mybatis]动态sql_set_与if结合的动态更新
因为sql语句拼装后,set语句后面可能会多一个逗号,所以要用set标签 set <!-- public void updateEmp(Employee employee);--> <update id="updateEmp"> update tb1_employee <set> <if test = "lastName!=null"> last_name = #{lastName}, </i.原创 2022-01-24 11:18:10 · 405 阅读 · 0 评论 -
[mybatis]动态sql_choose_分支选择
choose 如果带了id就用id查,如果带了lastName就用lastName查;只会进入其中一个 public List<Employee> getEmpByConditionChoose(Employee employee); <!-- public List<Employee> getEmpByConditionChoose(Employee employee);--> <select id="getEmpByConditionC原创 2022-01-24 11:18:07 · 170 阅读 · 0 评论 -
[mybatis]动态sql_if_where_trim判断&OGNL
OGNL if 要求:查询员工,要求,携带了哪个字段查询条件就带上这个字段的值 //携带了哪个字段查询条件就带上这个字段的值 public List<Employee> getEmpsByConditionIf(Employee employee); <!-- public List<Employee> getEmpsByConditionIf(Employee employee);--> <select id="getEmpsByCondit原创 2022-01-24 11:17:53 · 370 阅读 · 0 评论 -
[mybatis]动态sql介绍
Dynamic SQL One of the most powerful features of MyBatis has always been its Dynamic SQL capabilities. If you have any experience with JDBC or any similar framework, you understand how painful it is to conditionally concatenate strings of SQL together, ma.原创 2022-01-24 11:17:47 · 66 阅读 · 0 评论 -
[mybatis]映射文件_select_resultMap_discriminator鉴别器
discriminator 鉴别器:mybatis可以使用discriminator判断某列的值,然后根据某列的值改变封装行为 封装Employee: 如果查出的是女生;就把部门信息查询出来,否则不查询 如果查出的是男生;把last_name这一列的值赋给email <resultMap id="MyEmpDis" type="com.atguigu.mybatis.bean.Employee"> <id column="id" propert原创 2022-01-26 09:45:04 · 137 阅读 · 0 评论 -
[mybatis]映射文件_select_resultMap_关联查询_association分步查询&延迟加载
Employee表: Department表: public interface DepartmentMapper { public Department getDeptById(Integer id); } public interface EmployeeMapperPlus { public Employee getEmpByIdStep(Integer id); } <!-- public Department getDeptB原创 2022-01-26 09:44:19 · 159 阅读 · 0 评论 -
[mybatis]映射文件_select_resultMap_关联查询
普通方式 public class Employee { private Integer id; private String lastName; private String email; private String gender; private Department dept; } public class Department { private Integer id; private String departmentName原创 2022-01-24 11:17:33 · 102 阅读 · 0 评论 -
[mybatis]select_resultMap_自定义结果集映射规则
resultMap 自定义某个javaBean的封装规则 type:自定义规则的Java类型 id:唯一id方便引用 指定主键列的封装规则 id:定义主键底层会有优化 column:指定哪一列 property:指定对应的javaBean属性 public interface EmployeeMapperPlus { public Employee getEmpById(Integer id); } <?xml version="1.0" encoding="UTF-8"原创 2022-01-24 11:17:25 · 197 阅读 · 0 评论 -
[mybatis]映射文件_select_返回集合(List,Map)
select返回List public interface EmployeeMapper { public List<Employee> getEmpsByLastNameLike(String lastName); } <!-- public List<Employee> getEmpsByLastNameLike(String lastName);--> <!--resultType;如果返回的是一个集合,要写集合中元.原创 2022-01-23 10:22:28 · 1753 阅读 · 0 评论 -
[mybatis]映射文件_参数处理_#取值时指定参数相关规则
jdbcType通常需要在某种特定的条件下被设置: 在我们数据为null的时候,有些数据库可能不能识别mybatis对null的默认处理。比如Oracle(报错);原创 2022-01-23 09:21:20 · 301 阅读 · 0 评论 -
[mybatis]log4j
引入依赖: <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> 在资源文件下写一个log4j配置文件: <?xml version="1.0" en.原创 2022-01-23 09:15:36 · 64 阅读 · 0 评论 -
[mybatis]映射文件_参数处理_#和$取值区别
#{}:可以获取map中的值或者pojo对象属性的值 ${}:可以获取map中的值或者pojo对象属性的值 区别: #{}:是以预编译的形式,将参数设置到sql语句中,相当于原生jdbc的PreparedStatement;防止sql注入 ${}:取出的值直接拼接在sql语句中;会有安全问题; 大多情况下,我们取参数的值都应该去使用#{}; DEBUG 01-23 09:00:50,805 ==> Preparing: select * from tb1_employee wher.原创 2022-01-23 09:10:27 · 285 阅读 · 0 评论 -
[mybatis]映射文件_参数处理
参数处理 单个参数:mybatis不会做特殊处理 #{参数名}:取出参数值原创 2022-01-23 08:29:41 · 329 阅读 · 0 评论 -
[mybatis]Mapper XML Files_获取自增主键的值
useGeneratedKeys = “true”;使用自增主键获取主键值策略 keyProperty;指定对应的主键属性,也就是mybatis获取主键值后,将这个值封装给javaBean的对应属性 <insert id="addEmp" useGeneratedKeys="true" keyProperty="id" > insert into tb1_employee(last_name,email,gender) values(#{lastName.原创 2022-01-23 01:28:34 · 408 阅读 · 0 评论 -
[mybatis]Mapper XML Files_CUD
The true power of MyBatis is in the Mapped Statements. This is where the magic happens.原创 2022-01-23 00:57:11 · 212 阅读 · 0 评论 -
[mybatis]sqlSessionFactory.openSession()
第一个是不会自动提交的 第二个带参数的是会自动提交的原创 2022-01-23 00:49:09 · 867 阅读 · 0 评论 -
[mybatis]全局配置文件标签顺序
properties settings typeAliases typeHandlers objectFactory objectWrapperFactory reflectorFactory plugins environments databaseIdProvider mappers原创 2022-01-23 00:36:49 · 159 阅读 · 0 评论 -
[mybatis]Configuration XML_mappers
mappers 将sql映射注册到全局配置中 mapper 注册一个sql映射 resource:引用类路径下的sql映射文件 url:引用网络路径或者磁盘路径下的sql映射文件 class:引用(注册)接口 1.有sql映射文件,映射文件名必须和接口同名,并且放在与接口同一目录下; 2.没有sql映射文件,所有的sql都是利用注解写在接口上 <!-- Using classpath relative resources --> <mappers> <m原创 2022-01-23 00:17:15 · 432 阅读 · 0 评论 -
[mybatis]Configuration XML_environments
enviroments transactionManager There are two TransactionManager types (i.e. type="[JDBC|MANAGED]") that are included with MyBatis: • JDBC – This configuration simply makes use of the JDBC commit and rollback facilities directly. It relies on the connectio原创 2022-01-22 21:05:00 · 88 阅读 · 0 评论 -
[mybatis]typeHandlers日期类型的处理
原创 2022-01-22 20:40:44 · 185 阅读 · 0 评论 -
[mybatis]Configuration XML_typeHandlers
typeHandlers原创 2022-01-22 20:38:27 · 209 阅读 · 0 评论 -
[mybatis]Configuration XML_typeAliases and Alias
typeAliases typeAlias:为某个java类型起别名 type:指定要起别名的类型全类名;默认别名就是类名小写;employee alias:指定新的别名 起别名 配置文件: <typeAliases> <typeAlias type="com.atguigu.mybatis.bean.Employee"></typeAlias> </typeAliases> 映射文件: <select id="原创 2022-01-22 20:33:28 · 232 阅读 · 0 评论 -
[mybatis]Configuration XML_settings
settings settings包含很多重要的设置项 setting:用来设置每一个设置项 name:设置项名 value:设置项取值 mapUnderscoreToCamelCaseEnables 开启驼峰命名法 <settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> Employee: package com.atgui原创 2022-01-22 20:17:45 · 236 阅读 · 0 评论 -
[mybatis]Configuration XML_properties
全局配置文件(Configuration XML) mybatis可以使用properties来引入外部properties配置文件的内容 resource:引入类路径下的资源 url:引入网络路径或者磁盘路径下的资源 process 项目结构: mybatis-config.xml: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org原创 2022-01-22 18:31:56 · 183 阅读 · 0 评论 -
[mybatis]接口式编程
While this approach works, and is familiar to users of previous versions of MyBatis, there is now a cleaner approach. Using an interface (e.g. BlogMapper.class) that properly describes the parameter and return value for a given statement, you can now exec.原创 2022-01-22 18:20:29 · 491 阅读 · 0 评论 -
[mybatis]Getting Started
总体流程 1.根据xml配置文件(全局配置文件)创建一个SqlSessionFactory对象 2.sql映射文件;配置了每一个sql,以及sql的封装规则等 3.将sql映射文件注册在全局配置文件中 4.写代码 1)根据全局配置文件得到SqlSessionFactory 2)使用sqlSession工厂,获取到sqlSession对象使用他来执行增删改查,一个sqlSession就是代表和数据库的一次会话,用完关闭 3)使用sql的唯一标志来告诉MyBatis执行哪个sql,sql都是保存在sql映射文原创 2022-01-22 17:32:38 · 373 阅读 · 0 评论