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:


接口:


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

另一个多对多查询:


删除映射文件,测试:

====
小结:


浙公网安备 33010602011771号