MyBatis

创建一张表:

 创建一个maven项目,idea要用2018及已下的版本,2019版本有bug:

然后添加依赖:

 

 编写pojo:

 

 编写核心配置文件:SqlMapConfig.xml:

 

 配置具体要用sql的映射配置文件:

 然后在核心配置文件中关联映射文件:

 

 创建一个操作sql的测试类:

 

 

 

 

 

 ====

配置maven版本:

 

 ===

实现插入功能:

 

 测试插入方法:

 

 由于关系到事务操作,这样写还不行,为了把步骤看得更清楚,我们先引入日志log4j:

 

 加入日志依赖:

由于之前没有提交事务,所以自动回滚了,所以现在要添加提交事务操作:

 

 

===

为了查询最后插入的用户的id,并且把这个id值存入到pojo中的user中,加入一个sql语句:

 

 

 如果主键id是32位的uuid:

 

 小结:

 

 ====

实现删除操作:

 

根据id更新数据:

 

 测试:

 

 根据id查询用户:

 

 测试:

 

 ====

根据用户名模糊查询:

 

 测试:

 

 注意

 

 

 

小结:

 

 

===================

创建properties配置文件,把数据库连接的信息抽取出来

 

 

 

 ==

做点测试:

在使用连接池的情况下:

 

 ===

配置别名:

 

 批量定义别名

 

 

 

 

 

 ===

创建配置文件模板:

 

 就可以直接用了:

 

 ====

创建映射文件模板:

 

 直接用:

 

 再用同样的方法配置jdbc.properties和日志的配置文件模板。

内容:

 

 

 

 小结:

 

 =============

先用传统方法实现DAO层,先创建个新项目,导入依赖:

 

 创建pojo文件:

 

 补充:取消合并中间空文件夹:

 

 创建DAO接口:

 

 加入方法:

 

 创建数据库配置文件,映射配置文件,日志配置文件,数据库信息配置文件:

 

 ==

补充,关掉其他的模块:

 

 ===

编写映射配置文件:

 

 下面的username单词写错了:

 创建接口实现类,添加方法:

 

 

 

 

 

 

 

 

 

 

 

 

 创建测试类:

 

 代码优化:

创建一个工具类:

 

 改造service层代码:

 

 ==============

代理开发方式:

 

 接口文件和pojo文件都一样

 

 创建三个配置文件:

 

 创建映射文件的时候,要跟接口的路径保持一致:

 

 要打包一下:

 

 打完包的效果就是让接口文件和映射文件在一个包下面:

 

 

 

 创建测试类:

 

 

 

小结:

 

 

 ===

统一配置maven信息:

 

 

 

 创建数据库表的时候,给每个字段加别名:

 

======================

动态sql:

先导入一个新工程,看视频。

在接口中加入多条件查询的方法:

 

 在映射文件中写方法:

 

 测试:

 

 

 优化sql:

====

 

 在接口中加入方法:

 

 写映射文件:

 

 测试:

 ====

sql片段抽取:

 

 ======

编写类型转换器:

在数据库新建一个表:

 

 

 

 创建pojo:

 

 编写接口:

 

 编写映射文件:

 

 当没有用到类型转换器时的问题:

测试:

 

 报错:

 

 创建一个类型转换器:

 

 配置类型转换器:

 

 再次测试就不会报错了。

===========

用分页助手:

导入依赖:

 

 引入依赖之后去更新maven仓库:

 

 核心配置文件配置插件:

 

 

使用插件测试:

 

 分页插件中提供了分页的类:

 

 可以通过这个得到分页信息:

 

 

====================

一对多,多对一,多对多:

创建两个表:

 

 插入一下信息:

 

 

 

做一个查询:

 

 

 ==

创建pojo:

 

 

 

 创建接口和映射文件:

 

 

 

 测试:

 

 得到的结果不完全:

 

 所以要改造SQL,要进行映射:

 

 可以改得更易懂:

 

 =====

一对多:

修改下user的属性:

 

 要实现的SQL语句是:

 

 修改一下sql语句:

 

 

 

 测试:

 

 ==========

多对多:

用户信息查询职位:

创建两个表(其中一个是中间表):

 

 

 

 修改pojo类:

 

 

 

 编写接口方法:

 

 要实现的SQL:

 

 稍微修改一下:

编写映射文件:

 

 

 测试:

 

 =====

用职位信息查询用户:

创建接口和方法:

 

要实现的sql:

 

 

 

 编写映射文件:

 

 

 测试:

 

 

 

 ======

 

 一对一:

pojo类:

 

 接口方法:

 

 

 

 

映射文件:

 

 

 

 测试:

 

===== 

一对多:

pojo:

 

 

 

 接口:

 

 

 

 映射文件:

 

 

 

 

 测试:

 

 开启全局延迟加载:

 

 注解:

 

 用注解操作:

pojo:

 

 接口:

 

 加上注解:

 

 

 

 这样就可以把映射文件删除。

测试(测试方法跟以前都是一样的):

 

 

 

 ===========

 多对一:

 

 

 

 删除映射文件;

maven那边clean一下;

测试:

 

 ====

一对多:

 

 

 

 删除映射文件,maven要clean;

测试:

 

 =====

多对多:

pojo:

 

 

 

 接口:

 

 

 

 删除映射文件,测试就好啦:

 

 

另一个多对多查询:

 

 

 

 删除映射文件,测试:

 

 ====

小结:

 

posted @ 2021-05-12 11:24  即墨非音  阅读(55)  评论(0)    收藏  举报