C(1):Mybatis
文章平均质量分 93
愚公要移山
这个作者很懒,什么都没留下…
展开
-
Mybatis学习(6)单表的CURD操作-使用mapper动态代理
在前面的例子中自定义Dao接口实现类的时候发现这样一个问题:Dao接口的实现类其实并没用干什么实质性的工作,它仅仅就是通过SqlSession的相关API定位到映射文件mapper中 相应的id的sql语句中,真正对DB进行操作的是由框架通过mapper中的SQL完成的。所以,Mybatis框架就抛开了Dao的实现类,直接定位到映射文件mapper中的相应SQL语句,对DB进行操作。这种对D...原创 2018-11-27 22:10:29 · 245 阅读 · 0 评论 -
Mybatis学习(7)单表的CURD操作-动态SQL
在前面已经介绍了两种情况,属性名与查询字段名不一致的情况,还有Mapper动态代理的情况,本篇博客将考虑第三种情况,使用动态SQL。动态SQL,主要是解决查询条件不确定的情况:在程序运行期间,根据用户提交的查询条件进行查询。提交的条件不同,执行的SQL语句也不同。若将每种可能的情况均逐一列出,对所有的查询条件进行排列组合,那么将会出现大量的SQL语句。此时,可以使用动态SQL来解决...原创 2018-12-05 22:20:40 · 267 阅读 · 0 评论 -
Mybatis学习(8)多表之一对多关联查询
在之前的博客当中都是单表的增删改查操作,现在考虑一个稍微复杂一点也更贴近真实情况的问题。关联查询。关联查询分为四种情况:一对一关联查询 一对多关联查询 多对一关联查询 多对多关联查询本篇博客先考虑一种情况,一对多关联查询。以国家和部长之间的一对多关系进行演示。先看整个项目的目录结构:1、定义实体在定义实体的时候,若定义的是双向关联,也就是说双方的属性中都有对象的属性作为域属...原创 2018-12-18 21:35:20 · 200 阅读 · 0 评论 -
Mybatis学习(9)多表之多对一关联查询
上篇博客学习了一对多查询,这次看多对一。这次同样适用国家和部长的例子,由于实体,数据库一样。这里直接给出代码。还是先给出项目结构图1、定义实体 2、定义数据库国家表:country部长表:minister 3、定义接口public interface IMinisterDao { Minister selectMinisterById(int...原创 2018-12-18 21:53:40 · 184 阅读 · 0 评论 -
Mybatis学习(10)多表之自关联查询
自关联就是自己既可以充当一方,又可以充当多方。比如说新闻栏目,既可以做父栏目(一方),也可以做子栏目(多方)。而反映到数据库中只有一张表,这张表只有一个外键,一级栏目没有父栏目所以将外键设为0,子栏目有外键值。下面以新闻栏目为例讲解。下面分两种情况:充当一方和充当多方1、建表(newslabel)2、以一对多方式处理(充当一方)这种情况也就是充当父栏目,通过查询父栏目,可以找到...原创 2018-12-25 22:26:07 · 415 阅读 · 0 评论 -
Mybatis学习(11)多表之多对多查询
多对多查询指的是,一个学生可以选择很多门课程,一门课程可以有很多个学生去选择。此时两者的关系就需要一个中间表来建立,比如说选课表。一、定义实体由于讨论的是学生和课程之间的关系,所以,先定义实体(由于我数据库有了student 所以这里以student2代替)public class Student2 { private Integer sid; private String sn...原创 2019-01-21 14:29:36 · 360 阅读 · 0 评论 -
Mybatis学习(12)多表之延迟加载
前言什么是延迟加载?比较官方的意思是:在进行关联查询的时候,按照设置延迟规则推迟对关联对象的select查询。举一个例子。比如说我要查询一个订单的数据,但是我在查询订单的时候可能也会查这个订单的用户,但是如果我要用到这个订单用户信息的时候再去加载,此时也就是用户信息推迟一段时间加载。就用到了延迟加载技术。那么延迟加载有什么好处呢?他可以有效地减少数据库的压力。一、延迟加载的时机My...原创 2019-01-21 15:43:07 · 225 阅读 · 0 评论 -
Mybatis学习(13)查询缓存之一级缓存
设置缓存的目的就是为了提高查询访问速度。mybatis根据缓冲区的作用域划分为两种:一级查询缓存和二级查询缓存基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。也就是当SqlSession结束后,该SqlSession中的一级缓存也就不存在了。myb...原创 2019-01-21 16:58:55 · 266 阅读 · 0 评论 -
Mybatis学习(14)查询缓存之内置二级缓存
前言mybatis查询缓存的作用域是根据映射文件mapper的namespace划分的,相同namespace的mapper查询数据存放在同一个缓存区域中。不同namespace下的数据互不干扰。无论是一级缓存还是二级缓存都是按照namespace进行分别存放的。但是一级、二级缓存的不同之处在于,SqlSession一旦关闭,则SqlSession中的数据将不存在,但是二级缓存的生命周期会...原创 2019-01-21 18:38:59 · 209 阅读 · 0 评论 -
Mybatis学习(15)查询缓存之ehcache二级缓存
Mybatis并不擅长缓存数据,因此引入了第三方缓存产品。如何使用ehcache来进行缓存呢?一、导入jar包https://github.com/mybatis/ehcache-cache/releases这里有两个jar包,一个是ehcache的核心jar包,另外一个是mybatis与ehcache整合的jar包。二、添加ehcache.xml文件将解压...原创 2019-01-21 20:30:44 · 251 阅读 · 0 评论 -
Mybatis学习(5)单表的CURD操作-属性名与查询字段不相同
在上一篇博客当中已经对单表的增删改查操作有课基本的认识,但是之前的增删改查操作都是在理想条件下完成的,也就是在没有出现其他情况的条件下出现的。现在考虑一下非理想条件下的情况。当属性名字与查询字段名字不相同的情况,resultTpye可以将查询结果直接映射为实体bean对象的条件是,SQL查询的字段名与实体Bean的属性名一致。因为在将查询结果转换为指定类型的对象时,系统自动将查询结果字段名称作...原创 2018-11-27 21:20:17 · 207 阅读 · 0 评论 -
Mybatis学习(4)单表的CURD操作
第一个例子就列举了简单插入的操作,接下来详细的描述每一个操作1、搭建测试环境有了之前的例子,这个是在之前的例子上面进行修改。1.1 修改Dao接口IStudentDaopublic interface IStudentDao { void insertStu(Student student); void insertStuCacheId(Student student);...原创 2018-11-22 22:31:25 · 346 阅读 · 0 评论 -
Mybatis学习(1)Mybatis入门
SSM框架学习了很久,但是因为自己是分开学的,所以没有一个清楚地认识,在这里想在放假之前(还有两个多月)对SSM框架从认识到掌握有一个提高。这篇文章是第一篇文章,在写文章的过程中也能对所有的知识有一个回顾还有了解,我是看的动力节点的视频,所以大部分内容也会按照上面的来写。1 框架主要是先对框架的基本概念有一个认识,因为学的就是框架,到最后学完了却不知道框架到底是什么可不行,看百度百科的结...原创 2018-11-19 22:11:19 · 144 阅读 · 0 评论 -
Mybatis错误:查询语句老是出现构造器找不到
我就是使用Mybatis实现简单地查询功能。 解决办法:在学生类里面添加了一个默认的构造函数,问题解决原创 2018-09-24 22:17:19 · 661 阅读 · 0 评论 -
Mybatis学习(2)第一个Mybatis程序
首先看需求,这一个Mybatis的功能是:将Student信息写入到DB中先看一下我的项目结构:1 基本程序1.1 导入jar包(1)Mybatis的核心jar包和依赖jar包(2)Mysql的驱动jar包(3)Junit测试的jar包,核心jar包还有依赖jar包我已经将这些包上传到CSDN中,链接是:https://download.csdn.net/dow...原创 2018-11-21 22:36:48 · 166 阅读 · 0 评论 -
Mybatis学习(3)第一个Mybatis程序的说明与解释
在上篇博客当中只是对第一个Mybatis的创建步骤进行演示,这篇博客将主要针对于第一个Mybatis程序的进一步说明和运行的原理。还是先看一下我的项目结构com.test.beans存放实体类Student com.test.dao存放接口IStudent与映射文件mapper,当然还有接口的实现 com.test.mytest存放了测试类 com.test.util存放了工具类...原创 2018-11-22 14:45:55 · 150 阅读 · 0 评论 -
Mybatis学习(15)学习总结
原创 2019-01-21 22:01:05 · 118 阅读 · 0 评论