1.操作数据库,完成建表等操作

答:这里用的数据库是mysql,可以用Navicat for MySQL或者Webyog_SQLyog可视化工具进行连接数据库,如下:

springboot+mybatis逆向工程项目学习(5)连接数据库_数据库

先前用过了Navicat for MySQL,这里用Webyog_SQLyog,安装到E盘:

springboot+mybatis逆向工程项目学习(5)连接数据库_连接池_02

然后新建连接,可以连接成功,如下:

springboot+mybatis逆向工程项目学习(5)连接数据库_java_03

导入数据库文件,发现导入不成功:

springboot+mybatis逆向工程项目学习(5)连接数据库_连接池_04

然后因为有错误,所以直接复制代码到询问执行,就可以看到数据库的表:

springboot+mybatis逆向工程项目学习(5)连接数据库_mysql_05

springboot+mybatis逆向工程项目学习(5)连接数据库_mysql_06


2.了解连接池,以及druid连接池

连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的​​线程​​使用,类似jdbc管理数据库连接。连接池是将已经创建好的连接保存在池中,当有请求来时,直接使用已经创建好的连接对数据库进行访问。这样省略了创建连接和销毁连接的过程。这样性能上得到了提高。

基本原理是这样的:

(1)建立数据库连接池对象(服务器启动)。

(2)按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。

(3)对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。

(4)存取数据库。

(5)关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接)。

(6)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)

druid连接池是为监控而生的数据库连接池,它是阿里巴巴开源平台上的一个项目。Druid是Java语言中最好的数据库连接池,Druid能够提供强大的监控和扩展功能。它可以替换DBCP和C3P0连接池。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池,是一个各方面都优越的连接池。

这里首先导入连接池的包:

在 pom.xml 文件中引入 druid-spring-boot-starter 依赖:

springboot+mybatis逆向工程项目学习(5)连接数据库_java_07

再加上连接mysql的依赖,如下:

springboot+mybatis逆向工程项目学习(5)连接数据库_数据库_08

在 application.yml 中配置数据库连接:

springboot+mybatis逆向工程项目学习(5)连接数据库_spring_09

3.熟练使用mybatis以及逆向工程

tk.mybatis 是在 MyBatis 框架的基础上提供了很多工具,让开发更加高效。

在 pom.xml 文件中引入 mapper-spring-boot-starter 依赖,该依赖会自动引入 MyBaits 相关依赖:

springboot+mybatis逆向工程项目学习(5)连接数据库_数据库_10

在application.yml里配置 MyBatis,如下:

springboot+mybatis逆向工程项目学习(5)连接数据库_数据库_11

这里创建一个通用的父类接口,但不能被SpringbootThymeleafApplication扫描到,所以不能装到同一个目录下。

主要作用是让 DAO 层的接口继承该接口,以达到使用 tk.mybatis 的目的。

springboot+mybatis逆向工程项目学习(5)连接数据库_mysql_12

       下面就是介绍MyBatis的逆向工程,这里先使用,使用 MyBatis 的 Maven 插件生成代码,这样我们无需手动编写 实体类、DAO、XML 配置文件,只需要使用 MyBatis 提供的一个 Maven 插件就可以自动生成所需的各种文件便能够满足基本的业务需求,如果业务比较复杂只需要修改相关文件即可。

        在 pom.xml 文件中增加 mybatis-generator-maven-plugin 插件:

springboot+mybatis逆向工程项目学习(5)连接数据库_spring_13

configurationFile:是自动生成所需的配置文件路径。

这里在 src/main/resources/generator/ 目录下创建 generatorConfig.xml 配置文件:

springboot+mybatis逆向工程项目学习(5)连接数据库_spring_14

在 src/main/resources 目录下创建 jdbc.properties 数据源配置:

springboot+mybatis逆向工程项目学习(5)连接数据库_连接池_15

修改数据库名字如下,其他要修改dao还有实体类:

springboot+mybatis逆向工程项目学习(5)连接数据库_java_16

springboot+mybatis逆向工程项目学习(5)连接数据库_java_17

springboot+mybatis逆向工程项目学习(5)连接数据库_mysql_18

springboot+mybatis逆向工程项目学习(5)连接数据库_spring_19

       这里的主键是id,表中的主键就是id。打开mvn mybatis-generator:generate,就可以在entiy自动生成,改下表的名字,在mapper也会自动创建一些东西。

springboot+mybatis逆向工程项目学习(5)连接数据库_spring_20

       出现一个错误,说的是"Host '192.168.149.1' is not allowed to connect to this MySQL server",原因是mysql未开启mysql远程访问权限导致。

       这时候我们就用cmd去访问下你的mysql下面的user表。具体解决方法如下:

(1)连接服务器: mysql -u root -p

(2)看当前所有数据库:show databases;

(3)进入mysql数据库:use mysql;

(4)查询下你的用户名为root下host字段的参数: select 'host' from user where user='root';

如果你看到是localhost,OK,我们只需要改掉这个参数成通配符就OK了

(5)update user set host =’%'where user =’root’;

(6)flush privileges;

springboot+mybatis逆向工程项目学习(5)连接数据库_连接池_21

正确后就可以看到生成的数据库的三张表和xml文件:

新建下面的biz.EmpBiz类:

springboot+mybatis逆向工程项目学习(5)连接数据库_连接池_22

在controller包里面新建一个EmpController类:

springboot+mybatis逆向工程项目学习(5)连接数据库_mysql_23

生成一个EmpBiz对象,然后构建一个处理GET请求的方法,如下:

springboot+mybatis逆向工程项目学习(5)连接数据库_java_24

然后return "emp"会跳转到emp页面中。

springboot+mybatis逆向工程项目学习(5)连接数据库_数据库_25


4.理解项目的整体流程,运行的主要方式

在SpringBoot入口程序需要配置dao层的扫描,指定在哪个包下面,如下:

springboot+mybatis逆向工程项目学习(5)连接数据库_连接池_26

可以看到数据库里面的东西已经出来了,如下:

springboot+mybatis逆向工程项目学习(5)连接数据库_spring_27

dao层:创建数据库。

biz服务层,没有做实际东西。

controller控制层:从server拿到数据然后跳转到前端。

前端是为了界面的构建。

前后端用类似${emp.id}传达数据,或者用json文件格式传递数据。

开始先在SpringbootThymeleafApplication文件的SpringBoot入口程序需配置dao层接口的扫描。