Bootstrap

JavaEE进阶-----mybatis操作数据库(新手教程)

1.创建项目

我们创建项目的时候需要注意下面的这个内容:

1)maven项目;

2)选择配置:我们之前使用的这个lombok和这个web还是要继续选择的;

与之前的这个不同的是,我们借助这个Mybatis操纵数据库的时候,需要勾选下面的这两个选项

image-20241126102058489

而且这个springboot的版本也是有限制的,不可以是过高的版本呢,否则这个mybatis frameword=k是无法进行使用的,因此我把这个spring的版本降低成为了这个图上面显示的这个3.3.6版本,3.4是无法使用这个框架的,这个时候会弹出来这个提示,打击可以自己尝试一下:

image-20241126102401152

2.mysql相关操作

无非就是建库建表的这个操作,其中这个数据库创建我是使用的这个sql-yog客户端该工具,无论怎么样都是只要把这个表创建出来就可以了;

image-20241126123347966

下面的这个就是mysql语句,方便大家自己使用:

CREATE DATABASE `mybatis-example`;

USE `mybatis-example`;

CREATE TABLE `t_emp`(
  id INT AUTO_INCREMENT,
  emp_name CHAR(100),
  age INT,
  emp_salary DOUBLE(10,5),
  PRIMARY KEY(id)
);

INSERT INTO `t_emp`(emp_name,age,emp_salary) VALUES("tom",18,200.33);
INSERT INTO `t_emp`(emp_name,age,emp_salary) VALUES("jerry",19,666.66);
INSERT INTO `t_emp`(emp_name,age,emp_salary) VALUES("andy",20,777.77);

创建之后是在这个表里面插进去三个记录;

3.安装插件

这个插件是用来帮助我们实现这个定义的接口的,特别好用,后续会使用到的

image-20241126104455301

4.工程创建

4.1Bean文件夹

因为我们是使用的这个mybatis对于我们的这个数据库里面的这个内容进行操纵的,因此我们可以在这个项目里面创建一个类,这个类里面的这个内容就是我们的这个表里面的这个相关字段,方便我们后期返回这个相关的数据内容;

这个文件里面的这个属性和我们的这个数据库的表里面的这个内容保持一致即可,但是因为我们的这个java里面是使用的这个小驼峰的命名规则,因此这个地方我们不可以使用这个字段的那样的这个中间使用横线进行连接的这个方式,需要进行修改一下;

注意这个使用的全部是包装类,Integer和这个Double都是的,而不是我们的这个基本数据类型,我第一次就是因为把这个double写成了基本数据类型,错了好久没找到原因~~

image-20241126123900319

4.2Dao文件夹

这个文件夹就是对于我们的这个接口的里面的方法进行定义,我们这个地方的定义表示的就是我们的这个map是使用的这个mybatis进行操作的,这样就可以做到这个见名知意;

我们的这个里面的方法的这个参数就是我们的这个emp对象,参数就是我们的id,这个的意思就是我们想要通过这个id获取这个数据库里面的这个用户的相关的信息,原本我们应该是对于这个接口里面的这个内容直接实现的,但是现在我们把这个内容放到这个xml文件里面完成;

image-20241126124154910

下面就是介绍一下这个xml文件如何引入到我们的这个项目里面去,就是把我们的这个鼠标放到这个接口的名字上面,就会出现如图的情况,我们选择这个more action选项;

image-20241126105729801

接下来,我们就会看到下面的这个情况,我们选择这个generate mapper of xml这个选项,这个就是我们上面安装的这个插件实现的这个效果;

image-20241126105640711

接下来,会让我们选择这个xml文件的位置,我们一般是吧这个文件放到这个resources目录下面去:我们可以新建这个文件夹存放这个xml文件的内容;

这个文件创建之后,就像图上面的这个样子:这个大鸟和小鸟之间是可以进行跳转的,因为我们的这个xml文件里面的这个内容就是对于这个dao里面的这个文件的接口进行实现,所以这个是可以跳转的;

4.3xml文件内容解读

对于这个文件里面的内容:

1)select表示的就是我们的这个标签,其实就是我们的sql语句,除了这个select标签,我们的这个里面还可以有这个insert标签之类的,其实就是我们学习的这个增删查改的这个操作;
2)这个select就是成对的这个标签,标签里面的这个id=""这个引号里面的就是我们的这个接口的名字,直接复制过来即可;
3)resulttype就是这个返回值的类型,也就是我们的这个emp类,但是这个地方写的是这个类的全路径,可以使用下面的这个方法进行获取(就是把我们的这个鼠标放到这个emp类的上面,出现下面的这个内容)直接复制粘贴过去就可以了
image-20241126125328314
4)这个标签里面的这个内容就是我们的这个sql语句,因为我们的这个字段和我们的java里面的属性名字不一样,因此我们需要处理一下,否则无法找到这个;
5)id=#{id}这个就是不让这个写死,也就是我们#{}里面的这个参数就是我们的接口参数,我们的这个需要那个id的内容,我们的这个地方就会读取到;

image-20241126124817421

4.4配置文件

1)第三行表示的是 我们的数据库的相关信息;
2)第4,5行分别表示的就是用户名和密码;
3)第六行的这个内容是可以自动填充的,不需要手写,是一个类似于驱动器的内容;
4)第10行就是我们的xml文件的地址,xml/**.xml前面的这个xml就是我们的这个文件夹的名字,因为我们的这个xml文件夹和我们的这个配置文件的层级是一样的(相对于这个项目而言),因此我们可以直接使用这个相对路径的写法,后面的这个xml表示的是我们的这个配置文件,前面的两个型号表示的就是即使我们的这个xml文件很多,层级很多,我们只找xml后缀的文件;

image-20241126125702014

4.5测试文件

创建这个对象(接口实现的),依赖注入,使用方法传递参数id=1获取这个相关的信息即可;

image-20241126130204026

只要程序跑起来,而且没有错误,就证明我们的这个程序是ok的(但是如果像我一样是第一次接触,可能会遇到很多的问题,但是中就是可以解决的);

只要程序跑起来,而且没有错误,就证明我们的这个程序是ok的(但是如果像我一样是第一次接触,可能会遇到很多的问题,但是中就是可以解决的);

image-20241126130300350

;