![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MyBatis
Heart of Ocean
正在学习java的小白
展开
-
MyBatis(十八)——MyBatis运行原理
1. 涉及到的几个常用类 Resources MyBatis 中IO 流的工具类 作用:加载配置文件 SqlSessionFactoryBuilder() 构建器 作用:创建SqlSessionFactory 接口的实现类 XMLConfigBuilder MyBatis 全局配置文件内容构建器类 作用:负责读取流内容并转换为JAVA 代码. Configuration 封装了全局配置文件所有配...原创 2019-12-25 11:32:05 · 102 阅读 · 0 评论 -
MyBatis(十七)——MyBatis注解
为了简化配置文件。 Mybatis的注解简化mapper.xml文件。 如果涉及动态SQL仍然使用mapper.xml文件。 mapper.xml和注解可以共存。 配置方式: (1)mybatis.xml中<mappers>两种配置方式 配置方式一: <mappers> <package name="com.ouc.mapper"/> &...原创 2019-12-25 10:31:32 · 76 阅读 · 0 评论 -
MyBatis(十六)——使用Auto Mapping结合别名实现多表查询
仅仅适用于查询对象 只能使用多表联合查询 要求:查询出的列别和属性名相同 实现方式: "."在SQl中是关键字符,两侧添加反单引号。 <mapper namespace="com.ouc.mapper.StudentMapper"> <select id="selAll" resultType="student"> select t.tid `teacher.ti...原创 2019-12-25 09:35:58 · 286 阅读 · 0 评论 -
MyBatis(十五)——<resultMap>实现关联集合对象(N+1方式和联合查询方式)
1.N+1方式 实现步骤: 在Teacher中添加List<student> package com.ouc.pojo; import java.util.List; public class Teacher { private int tid; private String tname; private List<Student> list; public...原创 2019-12-24 22:09:10 · 334 阅读 · 0 评论 -
MyBatis(十四)——<resultMap>实现关联单个对象(N+1方式和联合查询方式)
1.N+1方式 (1) N+1查询方式,先查询出某个表的全部信息。根据这个表的信息查询另一个表的信息。 (2)与业务装配的区别:在service里面写的代码,由mybatis完成装配。 实现步骤: 实体类 【注意】在Student实现类中包含一个Teacher对象。 package com.ouc.pojo; public class Student { private int sid; ...原创 2019-12-24 20:37:44 · 871 阅读 · 0 评论 -
MyBatis(十三)——MyBatis的<resultMap>实现单表映射
<resultMap>标签写在mapper.xml中,由程序员控制SQL查询结果与实体类的映射关系。 其中,MyBatis默认使用Auto Mapping特性。 使用<resultMap>标签时,<select>标签不写resultType属性,而是使用resultMap属性引用<resultMap>标签。 使用resultMap实现单表映射关系...原创 2019-12-24 19:19:10 · 249 阅读 · 0 评论 -
MyBatis(十二)——MyBatis实现多表查询(三种方式)
MyBatis实现多表查询(三种方式) 业务装配:对两个表编写单表查询语句,在业务(service)把查询的两个结果进行关联。 使用Auto Mapping特性,在实现两表联合查询时通过别名完成映射。 使用Mybatis的<resultMap>标签进行实现 多表查询时,类中包含另一个类的对象的分类 单个对象 集合对象 ...原创 2019-12-24 18:42:58 · 606 阅读 · 0 评论 -
MyBatis(十一)——MyBatis缓存(一级缓存和二级缓存)
一级缓存 Mybatis对缓存提供支持,但是在没有配置的默认情况下,它只开启一级缓存,一级缓存只是相对于同一个SqlSession而言。所以在参数和SQL完全一样的情况下,我们使用同一个SqlSession对象调用一个Mapper方法,往往只执行一次SQL,因为使用SelSession第一次查询后,MyBatis会将其放在缓存中,以后再查询的时候,如果没有声明需要刷新,并且缓存没有超时的情况下,S...转载 2019-12-23 22:38:01 · 184 阅读 · 0 评论 -
MyBatis(十)——动态SQL
根据不同的条件需要执行不同的SQL命令,成为动态SQL。 MyBatis中动态SQL在mapper.xml中添加逻辑判断。 常用的逻辑判断: ①<if> ②<where> ③<chose><where><otherwise> ④<set> ⑤<Trim> ⑥<bind> ⑦<foreach&g...原创 2019-12-23 22:24:44 · 150 阅读 · 0 评论 -
MyBatis(九)——MyBatis多参数传递
一.#{}方式 实现步骤: 在接口中声明方法 public interface FlowerMapper { Flower selByIdName(int id,String name); } 在mapper.xml中添加 <select id="selByIdName" resultType="flower"> select * from flower where id...原创 2019-12-23 11:12:02 · 54 阅读 · 0 评论 -
MyBatis(八)——MyBatis接口绑定方案
作用:实现创建一个接口后把mapper.xml由mybatis生成接口的实现类;通过调用接口对象就可以获取mapper.xml中编写的Sql。 mybatis和spring整合时使用的就是这个方案。 实现步骤: (1)创建一个接口。第一:接口包名和接口名与mapper.xml中<mapper>namespace相同。第二,接口中方法名和mapper.xml标签的id属性相同。 (2...原创 2019-12-23 10:20:41 · 142 阅读 · 0 评论 -
MyBatis(七)——增、删、改的实现
一. 基本概念 事务回滚:如果在一个事务中某个SQL执行事务,希望回到事务的原点,保证数据库数据的完整性。 在MyBatis中默认是关闭了JDBC的自动提交功能。 (1)每一个SqlSession默认都是不自动提交事务; (2)session.commit()提交事务; (3)openSession(true)。自动提交。setAutoCommit(true). MyBatis底层是对JDBC的...原创 2019-12-22 21:55:30 · 82 阅读 · 0 评论 -
MyBatis(六)——<typeAliases>标签(别名)
1.系统内置别名:把类型全小写 2.给某个类起别名 (1)全局配置文件 <typeAliases> <typeAlias type="com.ouc.pojo.People" alias="peo"/> </typeAliases> (2)PeopleMapper.xml中通过peo引用People实体类 <select id="sel...原创 2019-12-22 21:04:52 · 134 阅读 · 0 评论 -
MyBatis(五)——parameterType属性
在XXXMapper.xml中<select><delete>等标签的parameterType属性可以控制参数类型。 sqlSession的selectList()和selectOne()的第二个参数,selectMap()的第三个参数都表示方法的参数。 例如: Flower flower = session.selectOne("com.ouc.mapper.Flo...原创 2019-12-22 20:38:36 · 492 阅读 · 0 评论 -
MyBatis(四)——<settings>标签(日志输出)
在mybatis全局配置文件中通过<settings>标签控制mybatis全局开关。 在mybatis.xml中开启log4j <settings> <setting name="logImpl" value="LOG4J"/> </settings> log4j中可以输出指定内容的日志(控制某个局部内容的日志级别) (1)命名...原创 2019-12-22 19:29:23 · 627 阅读 · 0 评论 -
MyBatis(三)——三种查询方式
selectList() 返回值 List<resultType属性控制> 【注意】适用于查询结果都需要遍历的需求 mybatis.xml配置: <select id="selAll" resultType="com.ouc.pojo.Flower"> select * from flower </select> 测试类: List<...原创 2019-12-22 15:35:14 · 231 阅读 · 0 评论 -
MyBatis(二)——数据库连接池复习
1. 数据库连接池定义 数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。 2. 影响因素 数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数制约。无论这些...原创 2019-12-22 10:15:25 · 329 阅读 · 0 评论 -
MyBatis(一)——MyBatis简介以及环境搭建
MyBatis简介 MyBatis 本是apache的一个开源项目原名叫做iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。它是一个基于Java的数据访问层框架,底层是对JDBC的封装。 环境搭建 1. 导入jar jar 作用 asm-3.3.1.jar cglib依赖包 ...原创 2019-12-20 16:53:53 · 151 阅读 · 0 评论