目录
需要那些依赖
需要的配置文件的内容
配置好对应的数据url,数据库用户名,数据库密码,Mybatis自动帮我们连接
使用示范
- 将我们数据库的一行数据封装为一个对象
Mybatis围绕数据库读写的解决方案,解决问题:每次从头写JDBC都太麻烦了
- 动态拼接SQL
- ORM,程序员直接把表映射当成类,把表中的记录映射成一个对象,表的结构简单,关系不复杂,使用ORM更方便
- Mybatis偏向ORM,@Mapper接口(映射器),但是对动态的SQL支持还不错,主要还是因为Mybatis的市场占有率比较高
Mybatis的基本原理
- 其基本原理还是对象代理那套
- 我们作为mybatis的用户需要提供一些信息
1接口:接口中写明了各种各样的方法
2需要告诉mybatis接口的这些方法
- 需要执行的是哪条SQL(关联SQL)
- 参数化的SQL,如何匹配方法中的参数和SQL里面的参数(参数匹配)
- 查询出来的表记录结果,如何和方法的返回值(一般对象)引进映射(结果映射)
3Mybatis根据我们准备的接口+相关的这些准备工作,提供好一个对象的代理,来完成JDBC的整套流程(支持注解或者XML)
注解形式
关联SQL和参数化SQL
方法的返回值(查询的)
- 返回一条记录:User这种,对象其实就是一个有约束的Map ,类似于Map
- 返回一批记录:List>/Set>,就类似于List
XML形式
文件配置(用来找xml文件的位置)
XML文件的配置
对应代理类的样式
代理对象的调用
XML形式下的两种结果映射
- 在我们上面的例子对象的属性名和我们的数据库中字段名是一样的,所以不需要做结果映射,但是对应不上的时候,就需要我们自己来处理
- 让SQL语句去靠近对面的命名,也就是完全给SQL的字段起别名
- 给mybatis一个映射关系,让mybatis帮我们进行映射
- 注解也可以进行映射,但是比较麻烦,这里先不学
方法返回值跟使用注解差不多(就是一个使用注解实现,一个使用XML文件配置实现)
- 在配置文件中,告诉mybatis,咱的XML路径所在
- 准备好了XML文件,并且和@Mapper接口建立关系
- 为接口的每个方法建立 1进行相关方法的绑定和返回类型的确定2要执行的SQL ,参数化SQL(或者关联SQL) 3返回结果映射
直接使用注解的方式,更方便,但是做一些复杂的需求的时候不是很方便,使用XML的方式,做需求的相对跟合适(ResultMap,动态SQL),两者可以配合使用
插入操作
XML形式
- 首先还是配置Spring的配置文件,能让Spring扫描到这个xml文件
- XML文件,让我们的XML文件和对应执行sql的代理类连接起来,然后为对应的方法配置SQL语句和相关设置
- 我们这里新用了一个@Component的注解,表示Spring在运行的时候能够启动这个类的run方法
注解形式
修改操作
- 明确Param的作用,和没有Param修饰的时候,为什么又可以对应
删除操作
- 也可以用User对象自动去对应,这里就不掩饰了,跟前面的操作是一样的
实现批量插入
我们想将userList的数据都插入到数据库,怎么做到呢?
回忆一下纯SQL是如何一次插入多条数据,怎么写?
insert into 表名(属性....) values(属性值...),(属性值...),(属性值...),这里到底有多少个(...),我们是不知道的,这里依赖的就是userList.size,一定是在运行阶段把SQL写完成,所以我们需要动态SQL
批量删除操作
批量查询