![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MyBatis学习笔记
Macross__
Stay hungry,Stay foolish.
展开
-
MyBatis学习笔记(十二)——MyBatis面试常见题
Mybatis⼀级缓存什么是缓存程序经常要调⽤的对象存在内存中,⽅便其使⽤时可以快速调⽤,不必去数据库或者其他持久化 设备中查询,主要就是提⾼性能Mybatis⼀级缓存简介:⼀级缓存的作⽤域是SQLSession,同⼀个SqlSession中执⾏相同的SQL查询(相同的 SQL和参数),第⼀次会去查询数据库并写在缓存中,第⼆次会直接从缓存中取基于PerpetualCache 的HashMap本地缓存默认开启⼀级缓存失效策略当执⾏SQL时候两次查询中间发⽣了增删改的操作,原创 2020-07-08 16:37:05 · 293 阅读 · 0 评论 -
MyBatis学习笔记(十一)——MyBatis补充
常⻅的数据库类型和java列席对⽐如何获得插⼊的⾃增主键<!-- 获得插入的自增主键--> <insert id="addVideo" parameterType="Video" useGeneratedKeys="true" keyProperty="id" keyColumn="id"> INSERT INTO `video` (`title`, `summary`, `cover_img`, `price`, `create_time.原创 2020-07-08 16:35:51 · 155 阅读 · 0 评论 -
MyBatis学习笔记(九)——MyBatis整合Log4j、延迟加载
日志:Log4ja.Log4j: log4j.jar (mybatis.zip中lib中包含此jar)b.开启日志,conf.xml 如果不指定,Mybatis就会根据以下顺序 寻找日志SLF4J →Apache Commons Logging →Log4j 2 → Log4j →JDK loggingc.编写配置日志输出文件log4j.properties,内容log4j.rootLogger=DEBUG, stdoutlog4j.appender.stdout=org.apac原创 2020-06-11 09:55:04 · 262 阅读 · 0 评论 -
MyBatis学习笔记(八)——一对一、一对多关联查询
关联查询一对一(association)a.业务扩展类核心:用resultType指定类的属性 包含 多表查询的所有字段b.resultMapi.通过 属性成员 将2个类建立起联系2.<resultMap id="Student_card_map" type="Student"> <!--分为主键id和非主键result--> <id property="stuNo" column="stuno"/> <result prope原创 2020-06-11 09:54:31 · 241 阅读 · 0 评论 -
MyBatis学习笔记(七)——动语态SQL、if、where、foreach、输入参数为集合属性、集合、数组、动态数组
//根据姓名和年龄查询学生String statement = "select stuno,stuname from student where stuage = #{stuage} and stuage = #{stuage} "; select stuno,stuname from student where stuname = #{stuName}and stuage = #{stuAge}select stuno,stuname,stuage from student <wher原创 2020-06-11 09:53:23 · 268 阅读 · 0 评论 -
MyBatis学习笔记(六)——输出参数为简单类型、对象类型、HashMap及resultMap
输出参数resultType1.简单类型(8个基本+String)2.输出参数为实体对象类型3.输出参数为实体对象类型的集合虽然输出类型为集合,但是resultType依然写 集合的元素类型(resyltType=“Student”)4.输出参数类型为HashMap --HashMap本身是一个集合,可以存放多个元素, 但是根据提示发现 返回值为HashMap时 ,查询的结果只能是1个学生(no,name);–>结论:一个HashMap 对应一个学生的多个元素(多个属性)原创 2020-06-11 09:52:06 · 382 阅读 · 0 评论 -
MyBatis学习笔记(五)——入参为HashMap、MyBatis调用存储过程执
输入对象为HashMap:where stuage= #{stuAge}用map中key的值 匹配 占位符#{stuAge},如果匹配成功 就用map的value替换占位符mybatis调用存储过程<select id="queryCountByGradeWithProcedure" statementType="CALLABLE" parameterType="HashMap" > { CALL queryCountByGradeWithProcedure( #{gNam原创 2020-06-11 09:51:00 · 380 阅读 · 0 评论 -
MyBatis学习笔记(四)——两种取值符号以及ParameterType为简单、对象、嵌套对象类型
输入参数:parameterType1.类型为 简单类型(8个基本类型+String).#{}、${}的区别a..#{任意值}.${value} ,其中的标识符只能是valueb.#{}自动给String类型加上’’ (自动类型转换)${} 原样输出,但是适合于 动态排序(动态字段)select stuno,stuname,stuage from student where stuname = #{value}select stuno,stuname,stuage from stu原创 2020-06-11 09:50:20 · 656 阅读 · 0 评论 -
MyBatis学习笔记(三)——属性文件、全局参数、别名、类型转换器、resultMap
优化1.可以将配置信息 单独放入 db.properties文件中,然后再动态引入 db.properties: k=v引入之后,使用${key}2.MyBatis全局参数在conf.xml中设置3.别名 conf.xmla.设置单个别名b.批量设置别名 除了自定义别名外,MyBatis还内置了一些常见类的别名。类型处理器(类型转换器)1.MyBatis自带一些常见的类型处理器int - number2.自定义MyBatis类型处理器java -原创 2020-06-11 09:49:25 · 189 阅读 · 0 评论 -
MyBatis学习笔记(二)——MyBatis约定及基于动态代理方式的增删改查
mapper动态代理方式的crud (MyBatis接口开发):原则:约定优于配置硬编码方式abc.javaConfiguration conf = new Configuration();con.setName(“myProject”) ;配置方式:abc.xmlmyProject约定:默认值就是myProject具体实现的步骤:1.基础环境:mybatis.jar/ojdbc.jar、conf.xml、mapper.xml2.(不同之处)约定的目标: 省略掉statement,原创 2020-06-11 09:47:48 · 156 阅读 · 0 评论 -
MyBatis学习笔记(一)——MyBatis配置及入门示例
mybatis: ibatis:apache 2010 ibatis-> google colde ,MybatisMyBatis可以简化JDBC操作,实现数据的持久化 。ORM:Object Relational Mappingperson对象 person表ORM:概念 ,Mybatis是ORM的一个实现/Hibernateorm可以是的开发人员 像操作对象一样 操作数据库表。开发mybatis程序从步骤:1.配置mybatisconf.xml:配置数据库信息原创 2020-06-11 09:46:34 · 170 阅读 · 0 评论