文章目录
- 1.项目创建
- 2.mybatis的使用
- 2.1创建初始页面
- 2.2补充yml文件
- 2.3navicate表
- 2.4用户类的编写
- 2.5查询接口
- 2.6运行测试
- 3.细节说明
- 3.1java开发规范
- 3.2关于包
- 3.3持久层代码
- 4.测试文件
- 4.1如何生成
- 4.2生成位置
- 4.3补充方法
- 5.配置mybatis日志
- 6.参数传递
- 6.1单个参数
- 6.2多个参数
- 7.参数的重命名
- 8.通过浏览器访问
1.项目创建
之前的学习过这个mybatis相关的这个入门的知识,但是又太久没有使用了,所以今天又重新熟悉了一下,这个项目的创建就是选择的这个springboot下面的这个maven项目,这个项目里面我们需要引入这个spring web和这个lombok以及我们的mysql driven即驱动,然后就是他的mybatis framework这个框架,直接创建即可;
我们的这个mybatis区别于这个传统的这个JDBC链接主要是因为我们的这个
2.mybatis的使用
2.1创建初始页面
下面的这个就是我们的项目页面,但是最开始我们的这个项目啊里面只会有这个pom.xml配置文件和我们的这个resource下面的这个application配置文件,我自己是在这个地方把我们的配置文件修改成为了这个yml配置文件;
2.2补充yml文件
我们需要按照这个yml文件的这个具体的语法进行指定,其中这个用户名和密码就是我们的数据库的信息,而且这个url里面的这个3306后面的就是我们的数据库的名字,其他的内容都是不变的,我们直接cv即可;
2.3navicate表
因为我们的这个mybatis针对于这个数据库进行操作,但是前提还是你的这个数据库里面需要有东西,对把,所以我自己就是在这个navicate这个工具里面使用下面的这个表进行操作;
2.4用户类的编写
下面的这个就是我们在这个src下面新建包包model,这个里面写上我们的这个userinfo的相关的信息,也就是我们上面的这个数据库里面的这个表的相关的这个属性,使用对应的数据类型,其中这个里面的创建时间和修改时间属于我们的规范,在下面是会进行说明的;
2.5查询接口
我们在目录下面新建接口,里面的就是进行查询的相关的方法,我们的这个接口外面添加上这个mapper注解,里面的这个list就是我们想要打印的基本数据单元(每一个用户的信息都是一个list);
@select注解后面的这个内容就是我们的SQL语句,表示的就是对于我们的用户表进行查询;
2.6运行测试
在这个项目里面有这个test类,我们点进去之后创建我们的这个接口的对象,并且在这个contextLoad方法里面去调用我们的接口里面的查询语句,把这个结果进行打印输出即可;
运行之后,我们发现打印的内容正是我们的数据库里面的用户表里面的用户的相关的信息:
3.细节说明
3.1java开发规范
delete_flag:删除的标志
1)物理删除:就是delete删除方法;
2)逻辑删除:就是update进行更新,但是原来的这个数据其实还是存在的,只不过被更新掉了,原来的数据还是会保留的;
3.2关于包
日期类型使用的是Date是我们的这个util包下面的,而不是sql下面的;
3.3持久层代码
我们的这个mapper就是持久层,我们可以新建这个mapper包:
下面的这个12行使方法的实现;(xml实现或者注解的方式实现)注解的方式对于简单的查询更加常用,我们这个地方使用的是注解的方式;
13行是我们的方法的声明;
4.测试文件
4.1如何生成
我们上面使用的是我们的这个test里面的这个测试文件,下面的这个是我们自己生成的测试文件:
首先就是在我们的mapper下面生成这个generate
选择这个里面的test
对于下面的这个选项进行勾选:
4.2生成位置
添加注解:下面的这个注解就是我们的spring的运行的环境;
4.3补充方法
16行:加载spring的运行环境;
17行三角号:执行所有的测试方法;
33行:执行当前的这个测试的方法;
我们在这个20行创建我们的这个mapper;
15行的这个注解就是为了我们去打印这个日志准备的;
关于:我们的这个测试文件里面有这个setup和teardown,我们打印的这个日志里面可以看出来,这个setup是在我们的这个测试文件之前进行打印的,而这个teardown是在我们的这个查询内容之后进行打印的;
5.配置mybatis日志
需要在我们的yml里面添加上下面的这个内容,我们的日志为方便我们查看这个相关的错误信息;
下面就是我们的输出的这个日志内容:输入内容和输出内容
前面的两行的这个箭头朝右边,表示的是我们的查询语句和我们的参数(我们的这个里面暂时是没有涉及到参数的);
后面的这个箭头的方向发生了变化,这个打印的就是我们的输出的信息;
下面这个日志就说明我们的这个sql语句是有问题的,方便我们快速的定位问题;
6.参数传递
6.1单个参数
当只有一个参数的时候,我们的注解里面的这个#{}里面的内容可以和我们的参数名字是一样的,也可以是不一样的;
我们接着生成这个测试文件:传递这个id参数,我们就会发现查询到指定的信息;
6.2多个参数
当涉及到多个参数的时候:我们的这个参数的名字必须一样,否则就会报错;
这个结果也是可以查询出来的:
7.参数的重命名
把userid参数绑定到了这个id,因此我们可以在这个注解里面使用这个重命名之后的这个名字,也就是id;
书用这个param绑定之后,原来的这个名字就不可以使用了;
1)默认是方法的参数名字;
2)使用param重命名之后,使用重命名之后的名字;
8.通过浏览器访问
我们上面的这些都是使用的测试用例,如果哦我们想要通过浏览器路径进行访问,这个时候需要新建包包:
controller使用注入的service:
service使用注入的mapper:
我们上面的这些都是使用的测试用例,如果哦我们想要通过浏览器路径进行访问,这个时候需要新建包包:
controller使用注入的service:
service使用注入的mapper:
然后我们使用controller里面的这个路径进行访问就可以在数据库里面查询到对应的结果;