JAP关联MyBatis
关联映射
1.在软件开发中,类与类之间最普遍的关系就是关联关系,而且关联是有方向。以角色(Role)和用户(User)为例,一个用户角色有多个用户,而一个用户只能属于一个角色。
2.从User到 Role部具)比*怎个Hser对象只会引用一个Role对象,因此在User类中应该定义一个Role类型的属性,来引用所关联的Role对象.
3.从Role到User是一对多关联,这意味着每个Role对象会引用一直User对象,因此在Role类中应该定义一个集合类型的属性,来引用所有关联的User对象.
4.如果仅有从User 到 Role 的关联,或者仅右从Role到 User 的关联,就称为单向关联。如果同时包含两种关联,就称为双向关联。数据之间一对多或者多对一的关系,通常涉及两张表,“多”方表通过外键引用“一”方表的主键来实现一对多的关联.
单项多对一关联
@ManyToOne注解映射多对一关联关系,targetEntity属性表示关联实体类型,
@JoinColumn注解映射关联的外键字段,如不指定,则生成一张新表维护两个对象之间的关系.
Spring Boot 集成MyBatis
1 .Mybatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。
2.Mybatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。
3.Mybatis 只使用简单的XML和注解来配置和映射基本数据类型、Map接口和POJO到数据库记录。
他的优点:
(1)SQL被统一提取出来,便于统一管理和优化.
(2)SQL和代码解耦,将业务逻辑和数据服务逻辑分离,使系统的设计更清晰,更易维护.更易单元测试.
(3)提供映射标签,支持对象与数据库的ORM字段关系映射.
(4)提供对象关系映射标签,支持对象关系组件维护.
(5)灵活书写动态SQL,支持各种条件来动态生成不同的SQL
他的缺点:
(1)编写SQL语句是时工作量很大,尤其是字段多,关联表多时,更加如此.
(2)SQL语句依赖于数据库,导致数据库移植性很差.
MyBatis几个重要的概念:
Mapper 配置:可以使用基于XML的Mapper配置文件来实现,也可以使用基于Java注解的MyBatis注解来实现,设置可以直接使用MyBatis提供的API实现.
Mapper接口:是指自行定义的一个数据操作接口,类似于通常所说的DAO接口.早期的Mapper接口需要自定义去实现,现在MaBatis会自动为Mapper接口成绩动态代理对象.Mapper接口的方法通常与Mapper配置文件中的select,insert,update,delete等XML结点存在一一对应关系.
Executor:MyBatis中所有的Mapper语句的执行都是通过Executor进行的,Executor是MyBatis的一个核心接口.
SqlSession:是MyBatis的关键对象,是执行持久化操作的独享,类似于JDBC中的Connection,SQLSession对象完成包含以数据库为背景的所有执行SQL操作的方法,它的底层封装了JDBC连接,可以用SQLSession实例来直接执行被映射的SQL语句.
SqlSsessionFactory:是MyBatis的关键对象,它是单个数据库映射关系经过编译后的内存镜像.SQLSessionFactory 对象的示例可以通过 SQLSessionFactory对象类获得,而SQLSessionFactoryBuilder则可以从XML配置文件或一个预先定制的Configuration的实例构建出.
Spring Boot集成MyBatis
MyBatis-Spring-Boot-Starter
MyBatis-Spring-boot-starter是MyBatis帮助我们快速集成Spring Boot 提供的一个组件包,使用这个组件可以做到以下几点:
构建独立的应用
几乎可以零配置
需要很少的XML配置
JAP关联MyBatis相关推荐
- MyBatis一对多双向关联——MyBatis学习笔记之七
处理has-one关系需要用到association元素,而处理has many关系则需要用到collection元素.例如本例中,假设一 名教师可同时指导多名学生,下面就来介绍如何使用collect ...
- 面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
来自:Java建设者 初识 MyBatis MyBatis 是第一个支持自定义 SQL.存储过程和高级映射的类持久框架.MyBatis 消除了大部分 JDBC 的样板代码.手动设置参数以及检索结果.M ...
- java执行sql文件_面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL.存储过程和高级映射的类持久框架.MyBatis 消除了大部分 JDBC 的样板代码.手动设置参数以及检索结果.MyBatis 能够支持 ...
- MyBatis -- Spring -- SqlSessionFactoryBean
符: Mybatis-config.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE ...
- mybatis 分页需要的jar包下载_064、MyBatis
一.什么是框架 a)框架是偷懒的程序员将代码进行封装, 之后进行重复使用的过程. b)框架其实是一个半成品, 以连接数据库为例, 连接数据库使用的驱动, url, 用户名, 密码必须告知框架. c)程 ...
- java执行sql文件_面试官:MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL.存储过程和高级映射的类持久框架.MyBatis 消除了大部分 JDBC 的样板代码.手动设置参数以及检索结果.MyBatis 能够支持 ...
- spring boot 集成mybatis连接oracle数据库
1. POM文件添加依赖 <!-- Mybatis --><dependency><groupId>org.mybatis.spring.boot</grou ...
- mybatis plus 事务管理器_学习MyBatis 框架
1. 框架是什么? a 框架就就是写好的功能架构 一些重复的代码的深度的封装 b 框架也是一个半成品 调用同时 也需要告诉框架一些信息 c一般以配置文件方式告知框架 多数会使用Xml作为框架的配置文件 ...
- mybatis查询mysql数据库很慢_mybatis查询大量数据库
初识 MyBatis MyBatis 是第一个支持自定义 SQL.存储过程和高级映射的类持久框架.MyBatis 消除了大部分 JDBC 的样板代码.手动设置参数以及检索结果.MyBatis 能够支持 ...
最新文章
- R语言为dataframe添加新的数据列(横向拼接、Appending columns,Unioning columns):使用R原生方法、data.table、dplyr等方案
- linux 集群配置ssh无密码访问
- 关于使用TestNG的retry问题
- 常用的PHP正则表达式汇总
- python入门神器_爬虫 (一) 神器准备篇
- 卷积和池化后特征图的大小~
- freebsd 安装mysql_Freebsd中mysql安装及使用笔记
- 计算机信息管理自荐信个人简历,计算机信息专业英文自荐信
- 古代皇帝的某祖某宗,有什么讲究
- 每天学点Linux:一
- 贝叶斯(Bayes)决策理论
- Django学习路线之Django自带模板语言DTL
- 苹果电脑App Store下载失败
- 自然风景Mac高清动态壁纸分享来了
- 【元器件学习笔记—电阻】(7)——电阻串并联电路
- subfigure matlab,(转)LaTeX技巧:subfigure排版并排放置两图
- 基于JavaSwing开发书店管理系统+论文 毕业设计 课程设计 大作业
- 苹果的福利被“羊毛党”薅废了
- 机械加工工艺规程的制订
- Microbiome | 西农韦革宏团队揭示植物驯化塑造小麦根际微生物组组装和代谢功能...
热门文章
- 从零开始的腾讯云使用体验-1-Linux用户创建与设置、apt软件源设置
- 关于VC++6.0 安装过程中提出vssetup.tff,不能删除的问题及在WIN7兼容性设置问题。
- 利用纯净语音和噪声合成不同信噪比的训练数据
- GEE学习总结(7)——MODIS 土地利用产品数据
- photoshop学习
- nginx端口转发(80端口到tomcat的8080端口)具体步骤以及配置
- tlc5620输出三角波流程图_TLC5620构成模数数模转换电路的设计
- 三菱FX2NPLC 常用基本电路
- 快盘做网站服务器,搭建基于金山快盘的Git服务器
- jdk1.8 hashMap的put学习