
Mybatis
Mybatis
杭州小哥哥
记录学习笔记
展开
-
Mybatis中的#{}和${}的区别是什么
mybatis原创 2022-09-03 11:33:59 · 83 阅读 · 0 评论 -
Mybatis优缺点
mybatis原创 2022-09-03 11:28:20 · 150 阅读 · 0 评论 -
A query was run and no Result Maps were found for the Mapped Statement
mybatis原创 2022-09-02 15:42:26 · 1566 阅读 · 0 评论 -
Mybatis中resultMap使用
原创 2021-04-05 21:18:12 · 169 阅读 · 0 评论 -
Mybatis中注解@MapKey的使用详解
MyBatis查询一些记录,数据涉及到两个表里的数据,需要连表查询,但我MyBatis的返回结果不想创建新的DO对象,因此使用@MapKey注解返回一个Map集合。含义:@MapKey注解用于mapper.xml文件中,一般用于查询多条记录中各个字段的结果,存储在Map中。Map结构的示例如下:Map<Long, Map<String, String>>。范型类型可以修改。Map的key:一般存储每条记录的主键,也可以用其他值表示,主要取决于Dao层@MapKey注解后面的字段原创 2021-04-05 21:08:49 · 42981 阅读 · 5 评论 -
Mybatis返回Map
返回一条记录的mapresultType=“map“ key就是列名,值就是对应的值多条记录封装成一个mapSelect返回类型中是返回Map时,是对方法中是否存在注解@MapKey,这个注解我也是第一次看到,当时我也以为是纯粹的返回单个数据对象的Map类型,但是发现还是有些不同的,这个可以用来返回多条记录我查了一下MapKey的用法,这里加上MapKey注解后,还有指定一个字段作为返回Map中的key,这里一般也就是使用唯一键来做k...原创 2021-04-05 20:50:54 · 13309 阅读 · 0 评论 -
Mybatis select元素返回List
原创 2021-04-05 20:42:03 · 599 阅读 · 0 评论 -
Mybatis中的#号与$符号的区别
1、#{变量名}可以进行预编译、类型匹配等操作,2、#{变量名}会转化为jdbc的类型。3、${变量名}不进行数据类型匹配,直接替换。4、#方式能够很大程度防止sql注入。5、$方式无法方式sql注入。6、$方式一般用于传入数据库对象,例如传入表名。7、尽量多用#方式,少用$方式。8、#会自动加双引号,$不会加双引号这两个符号在mybatis中最直接的区别就是:#相当于对数据 加上 单引号,$相当于直接显示数据(只讨论字符串类型的)。1、#对传入的参数视为字符串,也就..原创 2021-04-05 20:07:52 · 10573 阅读 · 1 评论 -
MyBatis参数名称解析器-ParamNameResolver解析
ParamNameResolverParamNameResolver是一个参数名解析器,负责把方法的参数按顺序解析出来并进行标注主要用来处理接口形式的参数,最后会把参数处放在一个map中map的key为参数的位置,value为参数的名字package org.apache.ibatis.reflection; import org.apache.ibatis.annotations.Param;import org.apache.ibatis.binding.MapperM.原创 2021-04-05 15:00:57 · 543 阅读 · 0 评论 -
Mybatis查询传递单个参数和传递多个参数用法
一:单个参数,Mybatis不会做特殊处理二:多个参数,Mybatis会做特殊处理1:传递多个多个参数时候,第一种写法如下比如传递了两个参数,用 #{param1} and #{param2}取值2:传递多个多个参数时候,第二种写法如下在接口的多个参数前分别加上@param注解...原创 2021-04-04 11:28:38 · 2015 阅读 · 0 评论 -
Mybatis中@Param的用法和作用
用注解来简化xml配置的时候,@Param注解的作用是给参数命名,参数命名后就能根据名字得到参数值,正确的将参数传入sql语句中我们先来看Mapper接口中的@Select方法package Mapper; @Mapperpublic interface Mapper { @Select("select s_id id,s_name name,class_id classid from student where s_name= #{aaaa} and class_id = #{bbbb原创 2021-04-04 11:14:50 · 1241 阅读 · 0 评论 -
Mybatis用#{}从传递过来的参数中取值
原创 2021-04-04 10:12:13 · 233 阅读 · 1 评论 -
mybatis使用statement.getGenreatedKeys(); useGeneratedKeys=”true”;使用自增主键获取主键值策略和Oracle不支持自增,Oracle使用序列
parameterType: 参数类型, 可以省略mysql支持自增主键,自增主键的获取, mybatis也是利用statement.getGenreatedKeys();useGeneratedKeys=”true”;使用自增主键获取主键值策略keyProperty;指定对应的主键属性,也就是mybatis获取到主键值以后,将这个值封装给javaBean的哪个属性...原创 2021-04-03 12:54:02 · 307 阅读 · 0 评论 -
Mybatis openSession.commit()手动提交数据和openSession.commit(true)自动动提交数据
openSession.commit(true)自动提交数据原创 2021-04-03 12:41:43 · 1400 阅读 · 0 评论 -
Mybatis框架中SqlSessionFactory
首先SqlSessionFactory与SqlSession都是同一个接口SqlSessionFactory是通过SqlSessionFactoryBuilder的build方法创建的而build方法创建的是一个SqlSessionFactory的实现类,叫DefaultSqlSessionFactory然后这个实现类主要用的设计模式是建造者(build)模式,而里面最终要达到的一个目的是为了创建出DefaultSqlSession,这个是SqlSession的实现类.前面说了SqlSe..原创 2021-04-01 08:38:26 · 1592 阅读 · 0 评论 -
Mybatis之SqlSession简析
在 MyBatis 中,SqlSession 是其核心接口。在 MyBatis 中有两个实现类,DefaultSqlSession 和 SqlSessionManager。SqlSession是Mybatis的一个核心类,简单点就是执行sql的,Mybatis的一级缓存应该就在这个级别上的,实际上一级缓存在Executor中实现的,下个文章介绍。先看看SqlSession中的方法DefaultSqlSession 是单线程使用的,而 SqlSessionManager 在多线程环境下.原创 2021-04-01 08:35:21 · 2069 阅读 · 0 评论 -
为什么要要使用MyBatis
原创 2021-03-31 23:19:40 · 239 阅读 · 0 评论