Mybatis
devp_yang
当你觉得太累的时候,说明...你正走在上坡路,坚持走过去,就会有进步,每一步,都会到达一个新高度。目光所及,每一处,都有新风景。轻松,是留给走下坡路的人,不要在本该奋斗的年纪,选择了安逸,你爬得高,走得远,不是为了让世界看到,而是为了,看到更广阔的世界。
展开
-
MyBatis14 缓存
1、缓存简介缓存是存在内存中的临时数据。它可以帮助我们减少和数据库的交互,减少系统开销,提高系统效率。经常查询并且不常修改的数据可以放入缓存。2、mybatis 缓存MyBatis 内置了一个强大的事务性查询缓存机制,它可以非常方便地配置和定制。默认情况下,只启用了本地的会话缓存(一级缓存默认开启),它仅仅对一个会话(sqlSession级别)中的数据进行缓存。要启用全局的二级缓存(nameSpace级别),只需要在你的 SQL 映射文件中添加一行:<cache/>映射语句文件中的原创 2020-07-24 16:10:35 · 102 阅读 · 0 评论 -
MyBatis13 动态sql
1、动态 SQL 是什么动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。2、if 标签<select id="findActiveBlogLike" resultType="Blog"> SELECT * FROM BLOG WHERE state = ‘ACTIVE原创 2020-07-24 15:03:26 · 96 阅读 · 0 评论 -
MyBatis12 结果集映射
1、准备工作数据库脚本-- 老师表create table `teacher`(id int(10) not null,name varchar(30) DEFAULT null,primary key (id)) engine=INNODB default charset=utf8;-- 插入数据insert into teacher values (1,'Jack');-- 学生表create table student(id int(10) not null,name v原创 2020-07-23 18:58:55 · 142 阅读 · 0 评论 -
MyBatis11 mybatis的注解开发
1、使用注解开发前提<!-- 核心文件注册的时候要用class --><mappers> <mapper class="com.study.dao.UserMapper"/></mappers>2、一些注解使用@Select("select * from tb_user")List<User> queryUserList();// 存在多个参数的情况下必须使用@Param,单个的时候可以省略@Select("select原创 2020-07-23 16:02:18 · 111 阅读 · 0 评论 -
MyBatis10 mybatis的执行流程
1、getResourceAsStream 读取全局配置文件,获得输入流String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);源码public static InputStream getResourceAsStream(String resource) throws IOException { return getResourceAs原创 2020-07-23 15:37:31 · 118 阅读 · 0 评论 -
MyBatis09 分页
1、方式一:limit分页 <select id="queryUserList" resultMap="userMap"> select * from tb_user limit 0,3 </select>2、方式二:RowBounds分页 @Test public void test01(){ SqlSession sqlSession = MybatisUtil.getSqlSession();原创 2020-07-23 09:42:42 · 77 阅读 · 0 评论 -
MyBatis08 日志配置
1、为啥配置日志如果我们想在控制台,或者日志输出打印出 sql 执行过程及语句,需要配置相应的日志2、第一种:标准工厂日志配置 <!-- 设置:配置缓存,懒加载,驼峰,日志实现等功能 --> <settings> <!-- 开启驼峰映射 --> <setting name="mapUnderscoreToCamelCase" value="true"/> <!-- 配置日志 SLF4J原创 2020-07-23 07:16:56 · 128 阅读 · 0 评论 -
MyBatis07 映射结果集初识
1、为什么要映射结果集当数据库字段名和我们实体类中的属性名不一致的情况下,数据库查询的结果无法注入到属性中2、简单映射 <resultMap id="userMap" type="User"> <!-- column对应数据库字段,property对应对象属性--> <result column="password" property="pwd"/> </resultMap> <select i原创 2020-07-22 17:23:41 · 95 阅读 · 0 评论 -
MyBatis03 增删改查入门案例
基础环境搭建见上一篇博客 https://blog.csdn.net/weixin_43365369/article/details/888907911、查询在 mapper 类中编写接口public interface UserDao { // 查询全部用户 List<User> queryUserList(); // 根据id查询用户 User getUserById(int id);}在 mapper 配置文件中编写 sql &l原创 2020-07-18 12:26:17 · 110 阅读 · 0 评论 -
MyBatis02 快速入门
动态代理Mapper实现类传统CRUD中存在的问题① 每个模块都需要编写一个接口及对应的实现类,并且还需要编写一个Mapper文件;② 在实现类的每个方法中,使用Mybatis的方式很相似,都是增删改查;我们能否只编写接口及mapper文件,不用写实现类,mybatis提供了接口的动态代理来简化开发Mapper接口的动态代理实现条件① 映射文件中的namespace必须和接口的全路...原创 2019-03-29 13:43:32 · 196 阅读 · 0 评论 -
MyBatis06 生命周期和作用域
延迟加载立即加载:不管用不用,马上查询。延迟加载:等到用的时候才真正发起查询。采用之前的配置方式肯定是做不到延迟加载的,因为我们是通过一个sql语句查询所有的信息。为了测试延迟加载的效果,我们必须把Order查询和User或OrderDetai查询分开。只有当我们需要用到Order中的User或OrderDetail时,才会去查询User或OrderDetail。编写接口: /** ...原创 2019-03-29 15:21:23 · 147 阅读 · 0 评论 -
MyBatis05 配置解析
多表查询表之间关系划分数据库中多表之间存在着三种关系,也就是系统设计中的三种实体关系。如下图所示:一对一查询假设订单和用户的关系是一对一。需求:查询订单,同时还要查询出订单所属的用户信息。编写接口/** * 根据订单号查询订单信息以及该订单所属的用户 * @param number * @return */ public Order findOrderUser...原创 2019-03-29 14:51:37 · 223 阅读 · 0 评论 -
MyBatis04 Map传值和模糊查询
动态SQLMyBatis的一个强大的特性之一就是它的动态SQL能力,提供了OGNL表达式动态生成SQL的功能,动态SQL有:ifchoose,when,otherwisewhere,setforeachif作用:判断语句定义接口 /** * 根据用户名模糊查询 * @param userName * @return */ public List<U...原创 2019-03-29 14:10:38 · 333 阅读 · 0 评论 -
MyBatis01 简介
MyBatis是什么MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。JDBC的不...原创 2019-03-19 20:25:56 · 197 阅读 · 0 评论