一对一模型介绍

 

用户表和订单表的关系为: 一个用户有多个订单,一个订单只从属于一个用户 一对一查询的需求: 查询一个订单,与此同时查询出该订单所属用户

 

订单环境搭建

 

可以在上节课的环境下接着下面的操作,我就是这样的。虽然下面写的环境搭建是全部操作,但是如果你用上节课的环境的话,第4、5、6、8步就不需要跟着我做了

 

具体过程:

 

第一步: 确保数据库的test库里面有user表(上节课的)和orders表,并且orders表内是如下数据

 

第二步: 在src/main/java目录下新建domain.Order类,写入如下

 

第三步: 在src/main/java目录下新建mapper.OrderMapper接口,写入如下

 

第四步: 在src/main/resources目录下新建File,文件名为jdbc.properties,写入如下

 

第五步: 在src/main/resources目录下新建File,文件名为log4j.properties,写入如下

 

第六步: 在src/main/resources目录下新建File,文件名为sqlMapConfig.xml,写入如下

 

第七步: 在src/main/resources目录下新建com/huanf/mapper目录,里面新建OrderMapper,xml,写入如下

第八步: 在pom.xml里面写入如下

 

订单一对一 -- 实现

 

具体操作如下:

 

第一步: 在src/main/java/com.huanf/domain目录新建User类,写入如下

 

第二步: 在src/main/resources目录下新建com/huanf/mapper目录,里面新建OrderMapper.xml,写入如下

 

第三步: 在src/main/resources的com/huanf/mapper目录,里面新建UserMapper.xml,写入如下

 

第四步: 在src/test/java目录下新建com.huanf.test目录,里面新建MyBatisTest类,写入如下,并执行测试test1

 

订单一对一 -- 实现 -- 稍微优化一下

 

具体操作:

 

第一步: 将OrderMapper.xml修改为如下

 

第二步: 在MyBatisTest类,执行测试test1

到此,一对一模型我们已经学习完毕,接下来是一对多和多对多

 

一对多模型介绍

 

用户表和订单表的关系为: 一个用户有多个订单,一个订单只从属于一个用户 一对多查询的需求: 查询一个用户,与此同时查询出该用户具有的多个订单

注意我们会继续使用上面一对一模型的数据库数据,以及已经写了的代码。具体操作如下

 

第一步: 由于我们之前做过时间类型转换的演示,所以为不影响这节课的演示,我们将上次做的时间类型转换演示产生的数据删掉

 

第二步: 在src/main/java/com.huanf/mapper目录下新建UserMapper接口,写入如下

 

第三步: 在User类添加如下,并添加对应的get和set方法,以及toString方法

 

第四步: 将UserMapper.xml修改为如下

 

第五步: 在MyBatisTest类添加如下,并执行测试test2

 

多对多模型介绍

 

用户表和角色表的关系为: 一个用户有多个角色,一个角色被多个用户使用 多对多查询的需求: 查询用户同时查询出该用户具备的所有角色

多对多模型环境搭建,具体操作如下

 

第一步: 在你的D盘新建ssm_a_16_0_test.sql目录,里面放入test.sql文件。打开datagrip软件,右键你的@localhost数据库服务,点击Run SQL Script,选择你的test.sql文件路径,然后回车,你的数据库就会多一个test库。我已经把test.sql文件打包放到"SSM框架\阅读\a_16_0素材"里面。 简单概括一下: 这一步,我们需要导入test.sql文件的数据,实际用的时候,我们只需要用的里面的sys_role、sys_user_role表,以及上面一直演示的user表。共3张表,不用管sys_user_role是谁的中间表

第二步: 新建Role类,写入如下

 

第三步: 在User类添加如下,并添加对应的get和set方法,以及toString方法

 

第四步: 在UserMapper接口添加如下

 

第五步: 在sqlMapConfig.xml添加如下

 

第六步: 在UserMapper.xml添加如下

 

第七步: 在MyBatisTest添加如下,执行测试test3