随笔分类 -  MyBatis框架

摘要:简述 从8月2日到昨天9月10日,历时一个多月,共计30篇博客,把MyBatis的基础学完了,肥肠苏福~ 本篇博客会对mybatis的知识做一个自我总结,并附上各个配置文件的代码,方便以后项目的构建。 知识总结 首先,MyBatis是一个持久层框架,直接和数据库交互,通过注解或者xml配置的方法,可 阅读全文
posted @ 2020-09-11 20:58 艾尔夏尔-Layton 阅读(163) 评论(0) 推荐(0) 编辑
摘要:mybatis的一级缓存是sqlsession的存储区域,不用手动开启,但二级缓存需要手动配置 然后在IUserDao中加入操作的配置,在类前加入CacheNamespace注解,设置为true,就可以开启二级缓存了 阅读全文
posted @ 2020-09-10 18:28 艾尔夏尔-Layton 阅读(229) 评论(0) 推荐(0) 编辑
摘要:前期工作 创建我们的account类 创建IAccountDao接口 测试类 一对一查询 如果我们啥都没操作,只会查出来所有账户,并不会显示用户信息,和xml一样,我们也要在实体类里加入一对一的映射 除此之外我们还要配置results注解 前三个是account本来的映射,第四个就是一对一关联,pr 阅读全文
posted @ 2020-09-10 17:09 艾尔夏尔-Layton 阅读(260) 评论(0) 推荐(0) 编辑
摘要:我们之前在xml配置中可以使用resultMap配置实体类名和标列名映射的映射 现在用注解怎么配呢? 首先先把实体类的属性名改了,并生成他们的getset方法 然后怎么解决映射方式呢,第一种方式是使用别名,但这会给开发工作带来麻烦 mybatis推出了第二种方式——使用results注解,resul 阅读全文
posted @ 2020-09-10 10:39 艾尔夏尔-Layton 阅读(6757) 评论(0) 推荐(0) 编辑
摘要:前期准备 我们新建个工程,把初始化都弄好 SqlMapConfig的配置 查询 然后在dao接口开始我们的注解工作,先来写查询的注解 然后写我们的测试类 测一下,没有问题 保存 方法及其注解 测试类 运行一下,帅! 更新 方法及其注解 测试类 跑一下,奈斯~ 删除 方法及其注解 测试类 运行一下55 阅读全文
posted @ 2020-09-09 23:55 艾尔夏尔-Layton 阅读(143) 评论(0) 推荐(0) 编辑
摘要:二级缓存指的是mybatis中SqlSessionFactory对象的缓存,由同一个SqlSessionFactory创建的SqlSession共享其缓存。 它的结构是这样的,由SqlSessionFactory创建的若干个sqlsessin共享工厂内部的二级缓存。 我们写出如下测试代码 但我们看到 阅读全文
posted @ 2020-09-07 21:45 艾尔夏尔-Layton 阅读(125) 评论(0) 推荐(0) 编辑
摘要:一级缓存 它指的是mybatis中sqlsession对象的缓存。 当我们执行查询后,查询的结果会同时存到sqlsession为我们提供的一块区域,该区域的结构是个map。 当我们再次查询同样的数据,这样mybatis会去sqlsession中查看是否有,有的话会直接拿出来用。 当sqlsessio 阅读全文
posted @ 2020-09-07 00:14 艾尔夏尔-Layton 阅读(167) 评论(0) 推荐(0) 编辑
摘要:什么是缓存 缓存是内存中的临时数据,用于减少与数据库交互的次数,提高执行效率。 什么数据适用缓存 经常查询并且不经常改变,数据的正确与否对最终结果影响不大。 什么数据不适用缓存 经常改变的数据,或者是数据的正确与否对最终结果的影响很大。 例如股市的牌价,商品的库存,银行的汇率。 阅读全文
posted @ 2020-09-06 23:56 艾尔夏尔-Layton 阅读(165) 评论(0) 推荐(0) 编辑
摘要:连接池 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个。它可以减少我们获取连接所消耗的时间,连接池里面有若干连接,每个线程需要连接的时候就取一个出来,用完了就把连接放回去,连接池本质上就是一个存储连接的容器,也可以理解为一个集合对象且该集 阅读全文
posted @ 2020-09-06 08:39 艾尔夏尔-Layton 阅读(224) 评论(0) 推荐(0) 编辑
摘要:概念 我们设想一个场景,在用户-角色一对多的情况下,假如我们有一个用户,它有100个账户。在查询用户的时候要不要把关联的账户查询出来,在查询账户的时候要不要把关联的用户查询出来? 前者在内存中是这样的,用户对象里有账户列表的引用,这是非常大的开销,所以我们想用的时候查出来,不用的时候不查出来 所以我 阅读全文
posted @ 2020-09-01 22:16 艾尔夏尔-Layton 阅读(263) 评论(0) 推荐(0) 编辑
摘要:这次我们来实现多对多查询,我们考虑用户和角色这两个关系,角色有很多种比如说院长,校长什么的。一个用户可能有多个角色,一个角色可以赋予多个用户。这样用户和角色两个实体类就是多对多的。 现在我们要实现查询用户时,可以同时得到用户所包含的角色信息。当我们查询角色时,可以同时得到角色的所赋予的用户信息。 前 阅读全文
posted @ 2020-09-01 11:20 艾尔夏尔-Layton 阅读(480) 评论(0) 推荐(0) 编辑
摘要:这次我们来实现一对多查询的实现,要求在查询user时返回其附属的所有account。 我们来到IUserDao,方法还是IUserDao,加点注释 我们的实体类也要加入一对多的关系映射,也就是加入从表的集合,并且生成它的getset方法 因为不是所有人都有账户,我们的sql语句就要改动一下,同时我们 阅读全文
posted @ 2020-08-30 23:29 艾尔夏尔-Layton 阅读(299) 评论(0) 推荐(0) 编辑
摘要:前期工作 首先我们建立一张用户表,一张账户表,使用户表和账户表之间实现一对多的关系,用户表我们之前已经创好了是user,现在我们来创账户表,账户表的外键是用户表的id 然后我们把之前的动态sql项目拷贝一份,dao接口只留这些 把user实体类的成员名改成和表的列名一样,然后生成他们的get,set 阅读全文
posted @ 2020-08-30 16:49 艾尔夏尔-Layton 阅读(279) 评论(0) 推荐(0) 编辑
摘要:简述 sql语句是支持动态查询的,支持if,when等标签进行判断。 我们现在新建个工程用于动态sql语句的实现。 <if>标签 首先我们在dao接口新建个方法,这个方法用于根据传入的参数进行查询 然后我们在xml文档写我们的配置,在写sql语句的时候我们就要用到动态sql的标签<if>,if标签里 阅读全文
posted @ 2020-08-26 23:04 艾尔夏尔-Layton 阅读(113) 评论(0) 推荐(0) 编辑
摘要:MyBatis的事务处理是通过,SqlSession对象的commit和rollback方法实现事务的提交和回滚。 我们从sqlsession的commit一路点进去跟踪,找到的最后是调用connection的commit方法 在执行日志里我们看到执行前把事务自动提交设置为了false 其实我们在创 阅读全文
posted @ 2020-08-24 11:39 艾尔夏尔-Layton 阅读(1019) 评论(0) 推荐(0) 编辑
摘要:之前我们讲过,在xml文档中的parameterType可以随便写,可以是int,INT,INTEGER等,那是因为这些名字都被注册了 在sqlmapconfig中,我们可以自己定义个别名 现在在dao接口的xml配置文件里可以直接写user这个别名了 拿查询所有测一下,完全没有问题 同时还有另一种 阅读全文
posted @ 2020-08-22 21:23 艾尔夏尔-Layton 阅读(831) 评论(0) 推荐(0) 编辑
摘要:之前说过我们实体类的属性名和数据库列名是一致的,那如果是不一致的呢 现在我们再把测试类中相关的代码改好 还有一个地方就是我们的xml配置,我们把成员变量名改了,就找不到keyProperty,还有OGNL表达式找不到相关成员变量 所以我们把相关的成员变量名改了 现在我们的更新,保存的操作都能正常执行 阅读全文
posted @ 2020-08-21 14:14 艾尔夏尔-Layton 阅读(690) 评论(0) 推荐(0) 编辑
摘要:在我们xml的配置中,parameterType用于表示参数的类型,这里可以传int,也可以传类,MyBatis用ognl表达式解析对象字段的值 OGNL表示式是阿帕奇开发出来的,全称叫Object Graphic Navigation Language——对象图导航语言。它通过对象的取值方法获取数 阅读全文
posted @ 2020-08-20 23:16 艾尔夏尔-Layton 阅读(3862) 评论(0) 推荐(0) 编辑
摘要:简述 当我们插入一条元组时,因为id是自增长的,所以我们无需指定id,那么怎么知道我刚插进去的元组的id是多少呢。 这是我们用到了这条sql语句——SELECT LAST_INSERT_ID();获得上次插入的id 我们运行一下 可以看到我们刚插入的元组的id 实现 我们在xml配置里干这件事 ke 阅读全文
posted @ 2020-08-19 15:24 艾尔夏尔-Layton 阅读(167) 评论(0) 推荐(0) 编辑
摘要:查询总记录条数 和前面的差不多,就是sql语句变了 这里的返回值类型是int,没有参数 写一下测试类 打印出来是6个,奈斯~ 其他的avg,min都是这样实现,这里就不敲了 阅读全文
posted @ 2020-08-19 15:03 艾尔夏尔-Layton 阅读(2174) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示