1.操作数据库,完成建表等操作
答:这里用的数据库是mysql,可以用Navicat for MySQL或者Webyog_SQLyog可视化工具进行连接数据库,如下:
先前用过了Navicat for MySQL,这里用Webyog_SQLyog,安装到E盘:
然后新建连接,可以连接成功,如下:
导入数据库文件,发现导入不成功:
然后因为有错误,所以直接复制代码到询问执行,就可以看到数据库的表:
2.了解连接池,以及druid连接池
连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用,类似jdbc管理数据库连接。连接池是将已经创建好的连接保存在池中,当有请求来时,直接使用已经创建好的连接对数据库进行访问。这样省略了创建连接和销毁连接的过程。这样性能上得到了提高。
基本原理是这样的:
(1)建立数据库连接池对象(服务器启动)。
(2)按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。
(3)对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。
(4)存取数据库。
(5)关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接)。
(6)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)
druid连接池是为监控而生的数据库连接池,它是阿里巴巴开源平台上的一个项目。Druid是Java语言中最好的数据库连接池,Druid能够提供强大的监控和扩展功能。它可以替换DBCP和C3P0连接池。Druid提供了一个高效、功能强大、可扩展性好的数据库连接池,是一个各方面都优越的连接池。
这里首先导入连接池的包:
在 pom.xml 文件中引入 druid-spring-boot-starter 依赖:
再加上连接mysql的依赖,如下:
在 application.yml 中配置数据库连接:
3.熟练使用mybatis以及逆向工程
tk.mybatis 是在 MyBatis 框架的基础上提供了很多工具,让开发更加高效。
在 pom.xml 文件中引入 mapper-spring-boot-starter 依赖,该依赖会自动引入 MyBaits 相关依赖:
在application.yml里配置 MyBatis,如下:
这里创建一个通用的父类接口,但不能被SpringbootThymeleafApplication扫描到,所以不能装到同一个目录下。
主要作用是让 DAO 层的接口继承该接口,以达到使用 tk.mybatis 的目的。
下面就是介绍MyBatis的逆向工程,这里先使用,使用 MyBatis 的 Maven 插件生成代码,这样我们无需手动编写 实体类、DAO、XML 配置文件,只需要使用 MyBatis 提供的一个 Maven 插件就可以自动生成所需的各种文件便能够满足基本的业务需求,如果业务比较复杂只需要修改相关文件即可。
在 pom.xml 文件中增加 mybatis-generator-maven-plugin 插件:
configurationFile:是自动生成所需的配置文件路径。
这里在 src/main/resources/generator/ 目录下创建 generatorConfig.xml 配置文件:
在 src/main/resources 目录下创建 jdbc.properties 数据源配置:
修改数据库名字如下,其他要修改dao还有实体类:
这里的主键是id,表中的主键就是id。打开mvn mybatis-generator:generate,就可以在entiy自动生成,改下表的名字,在mapper也会自动创建一些东西。
出现一个错误,说的是"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;
正确后就可以看到生成的数据库的三张表和xml文件:
新建下面的biz.EmpBiz类:
在controller包里面新建一个EmpController类:
生成一个EmpBiz对象,然后构建一个处理GET请求的方法,如下:
然后return "emp"会跳转到emp页面中。
4.理解项目的整体流程,运行的主要方式
在SpringBoot入口程序需要配置dao层的扫描,指定在哪个包下面,如下:
可以看到数据库里面的东西已经出来了,如下:
dao层:创建数据库。
biz服务层,没有做实际东西。
controller控制层:从server拿到数据然后跳转到前端。
前端是为了界面的构建。
前后端用类似${emp.id}传达数据,或者用json文件格式传递数据。
开始先在SpringbootThymeleafApplication文件的SpringBoot入口程序需配置dao层接口的扫描。