![](https://img-blog.csdnimg.cn/20190829001955480.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MyBatis
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。
萌宅鹿同学
目前在百度工作
展开
-
【MyBatis笔记】0-MyBatis简介
MyBatis简介简介MyBatis 历史MyBatis特点为什么要使用 MyBatis?JDBC 缺点Hibernate 缺点MyBatis 简介 MyBatis 历史 MyBatis 原是 apache 的一个开源项目 iBatis;2010年6月这个项目由 apache software foundation 迁移到了 google code,并且改名为MyBatis 。 iBATIS 一词...原创 2019-08-29 09:15:50 · 262 阅读 · 0 评论 -
【MyBatis笔记】16-多对多关系建表
多对多关系建表多对多关系多对多关系建表原则domain 多对多关系 一个老师可以教多个学生,一个学生可以被多个老师教。 一个学生可以选择多门课程,一门课程可以被多个学生选择。 一个用户可以选择多个角色,一个角色可以被多个用户选择。 多对多关系建表原则 原则:创建一个中间表,中间表至少有两个字段,分别作为外键指向多对多双方的主键。 实例分析:一个老师可以教多个学生,一个学生可以被多个老师教。 首...原创 2019-09-02 13:07:45 · 1492 阅读 · 2 评论 -
【MyBatis笔记】10-多对一左连接查询&分步查询(查询所有订单及订单对应的客户)
左连接查询(级联查询) 回顾一下:左连接查询,将左边表(order)里的全部内容查出,右边表(customer)查满足条件的。 SELECT * FROM `order` AS o LEFT JOIN `customer` AS c on o.cust_id = c.cust_id; 那么在 MyBatis 中如何查询呢? 首先我们已经将 domain 类与数据库属性对应,并且创建好了 Map...原创 2019-09-01 23:29:59 · 980 阅读 · 0 评论 -
【MyBatis笔记】13-一对多左连接查询&分步查询(查询所有客户及客户对应的订单)
一对多左连接查询 场景:我们想要查询出所有的客户,并且把每个客户对应的订单也查出来。这时候可以使用左连接查询。 那么如何在 MyBatis 中实现左连接查询呢? 给客户的 domain 增添一个字段来表示对应的订单:private List<Order> orders = new ArrayList<>(); @Setter @Getter //使用注解生成 get 与...原创 2019-09-01 20:59:13 · 1489 阅读 · 0 评论 -
【MyBatis笔记】12-多对一添加操作(添加新客户及对应的新订单)
多对一添加操作 场景:现在想要添加一个新客户对应一个新订单,那么要怎么来添加呢? 分析:由于添加订单时,客户对订单是一对多的关系,所以添加订单的时候必须要指明一位客户。 要同时添加新客户以及一个新订单,并且两者是对应关系,那么应当先将客户添加进来,再添加订单,同时这个订单的外键(cust_id)指向了刚刚添加的客户的主键(cust_id)。 CustomerMapper 接口中添加一个方法: /*...原创 2019-09-01 19:58:44 · 563 阅读 · 0 评论 -
【MyBatis笔记】11-分步查询懒加载
分步查询——懒加载模式懒加载模式示例不使用懒加载使用懒加载aggressiveLazyLoadinglazyLoadTriggerMethods 所谓懒加载,也称延时加载,是指不一下子加载完全部资源。需要用到哪些资源才去加载这些资源,用不到的资源,就不去加载他,以达到节约资源,优化的目的。分步查询中存在懒加载现象。 懒加载模式示例 不使用懒加载 首先看一下不使用懒加载的情况下,是如何运行的。 我...原创 2019-09-01 18:57:13 · 252 阅读 · 0 评论 -
【MyBatis笔记】09-一对多关系建表
多表操作表之间关系一对多关系建表原则级联查询association 分步查询 表之间关系 一对一关系:一夫一妻。 一对多关系: 一个部门有多个员工,一个员工只能属于某一个部门。 一个班级有多个学生,一个学生只能属于一个班级。 多对多关系: 一个老师可以教多个学生,一个学生可以被多个老师教。 一个学生可以选择多门课程,一门课程可以被多个学生选择。 一个用户可以选择多个角色,一个角色可以被...原创 2019-09-01 13:03:11 · 660 阅读 · 2 评论 -
【MyBatis笔记】08-输出类型
输出类型输出简单类型输出 Map 类型key:列名 value:列名对应的值key:自己指定的列 value:自定义对象resultMap 输出简单类型 CustomerMapper.java:返回值为简单类型。 public interface CustomerMapper { /*查询总数*/ public Integer getAccountCustomer(); } C...原创 2019-09-01 00:50:46 · 106 阅读 · 0 评论 -
【MyBatis笔记】07-MyBatis 核心配置文件
MyBatis 核心配置文件properties 定义属性及读取属性文件settings 设置运行时行为typeAliases 类型别名定义单个别名批量定义别名typeHandlers 类型处理器Plugins(后续有文章专门介绍这个)Environments 运行环境databaseIDProvider 定义数据库厂商mappers 加载映射文件mapper resource=" "mapper...原创 2019-08-31 22:41:46 · 331 阅读 · 0 评论 -
【MyBatis笔记】06-Mapper动态代理
Mppaer 动态代理创建 Mapper 工程定义接口的要求测试类Mapper 中参数传递单个参数多个参数@param命名参数多个参数封装成 Map多个参数之 POJO 之前我们一直都使用传统开发模式DAO,即定义接口,然后定义实现类。这个其实是较为繁琐的,MyBatis 中提供了 Mapper 动态代理的方法,操作起来十分简洁,只需要定义满足要求的接口,然后通过 sqlSession 获取到 M...原创 2019-08-30 20:46:31 · 857 阅读 · 0 评论 -
【MyBatis笔记】05-传统开发模式DAO
传统开发模式DAO定义接口 CustomerDao.java实现接口 CustomerDaoImpl.java测试类 在传统开发模式DAO下,我们自己先定义好接口,然后再去定义实现类,在实现类中实现接口的操作。到时候只需要创建一个 dao 对象,即可调用其中的方法。 定义接口 CustomerDao.java 在 dao 包下,创建一个接口文件 CustomerDao.java,在其中写上数据库的...原创 2019-08-30 17:23:26 · 276 阅读 · 0 评论 -
【MyBatis笔记】04-插入操作&更新操作&删除操作
保存更新删除插入操作获取插入的最后一个id更新操作删除操作 查询操作在之前的笔记中~ 插入操作 映射文件 Customer.xml : 插入数据的标签为 insert,与查询 select 区分开来。 parameterType 是输入参数类型,这里指定为 Customer 对象,即需要传入一个 Customer 类型的参数。 由于传入参数不是单个简单类型值,#{} 中的名字必须与类的属性对应。 ...原创 2019-08-30 00:50:20 · 676 阅读 · 0 评论 -
【MyBatis笔记】03-映射文件的sql语句中 #{} 和 ${} 的区别以及实现模糊查询
映射文件的sql语句中 #{} 和 ${} 区别以及实现模糊查询sql 语句中的 #{}#{} 模糊查询错误用法#{} 实现模糊查询sql 语句中的 ${}${} 实现模糊查询#{} 与 ${} 对比 sql 语句中的 #{} 表示一个占位符号,通过 #{} 可以实现 preparedStatement 向占位符中设置值。 自动进行 java 类型和 jdbc 类型转换。 可以有效防止 sql ...原创 2019-08-29 23:33:18 · 576 阅读 · 0 评论 -
【MyBatis笔记】02-MyBatis配置SQL打印
MyBatis 配置SQL打印 在 SqlMappingConfig.xml 中配置以下代码: <!--配置sql打印--> <settings> <setting name="logImpl" value="STDOUT_LOGGING"/> </settings> 运行效果:会显示 SQL 语句,查询结果,总共几条数据,最后把数据封装成...原创 2019-08-29 23:56:18 · 325 阅读 · 0 评论 -
【MyBatis笔记】01-MyBatis入门程序
MyBatis入门程序1. 下载 Mybatis 核心包2. 创建工程,引入 MyBatis 核心包及依赖包3. 创建 customer 表,建立与表对应的 domain使用 lombok,开启注解创建 Customer 类4. 创建 MyBatis 核心配置文件 SqlMappingConfig.xml5.创建与表对象的关系映射 Mapping 文件编写 sql 语句6.在核心配置文件当中引入 ...原创 2019-08-29 23:56:05 · 360 阅读 · 0 评论 -
【MyBatis笔记】17-多对多做左连接查询(查询老师,并且把关联的学生也查出来)
多对多左连接查询 老师对学生是多对多的关系,把中心放在老师上,一个老师可以教多个学生,实际上老师对学生也可以理解为一对多的关系。 场景:查询老师,并且把关联的学生也查出来。 Teacher.java 映射文件: @Getter@Setter@ToString public class Teacher { private Integer teacher_id; private Str...原创 2019-09-02 17:35:59 · 912 阅读 · 0 评论