SpringBoot的MyBatis工程配置|学习笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
日志服务 SLS,月写入数据量 50GB 1个月
简介: 快速学习SpringBoot的MyBatis工程配置

开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术SpringBoot的MyBatis工程配置学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/80/detail/15923


SpringBoot的MyBatis工程配置

 

1、Redis Demo工程在 Mybatis下面,可以看到它下面有一个目录是sql,有databatis sql 的语句,语句用来建用户和 databatis,当把 Mybatis装好后,要把上面的语句拷贝到 sql命令行中执行,执行的结果就会在数据库建出 demouser的用户和密码,会把

demo 数据库所有的权限都赋给 demouser所有的用户。

2、工程配置文件在 application.yaml中,跟之前的配置文件相比增加关于数据库连接

springboot datasource下面,

image.png

连接用的jdbc驱动,oomall demo 文件中引入依赖,连接关键字,数据库连接在本机上面,本机数据库是 mysql8.0,连接字的后面和mysql5.7不一样的地方是它加了servertimezone,标识当前的时区是上海时区,北京的时间,设置数据库的用户名和密码,time不是直接连接数据库,利用了一个阿里 drvid的连接词,每次使用sql语句都会跟数据库建立连接,抓一个sql语句,返回一个结果,用完之后关闭连接,数据库可以支持的同时连接数是有限的,同时支持的越多,内存的开销就越大,mysql抓好之后再动它,同时连接数是100-200,每一次 sql语句的执行就会建一次连接,关掉,这样会比较慢,引进阿里 drvid的连接词,连接词是它会先建立好一些连接,在每次使用sql语句时不用每次都建立和关闭连接,从连接词中拿出一个连接运行sql即可。

3、Schema 和 data两个设置分别指向两个 sql的语句,Schema.sql

和data.sql,Schema.sql 主要放建表语句,data.sql主要放初始化数据语句,后面有跟drvid有关的配置,其中有初始连接数,

image.png

整个应用起来,最开始会建三个连接,最小连接词的数量,因为随着连接的减少,它会删掉已经存在的连接,存在的最小数是3,最大数是10,最多会建十个数据库的连接,如果操作语句超过了最大连接数,需要设置最大等待时间600,参数非常有意义,如果应用是数据库的应用,把线程数设置很大,没有把数据库同时连接数

设大,就会是瓶颈,所以要均衡设置参数,要让整个系统运转比较流畅

如果想监控 drvid连接词情况,可以配置 stat-view-servlet,监控网页,可以看连接词的工作情况,可以给监控网页设置用户名和密码,login-username和 login-password,enabled打开,url pattern 是监控网页的路径,在 drvid的目录下面,mysql的配置是在drvid中非常重要的配置,因为可以通过 mysql日志发现数据库里面运行比较慢的 sql,从而优化sql语句,现在数据里面打开了 mysql的日志,mysql的定义是超过一百毫米 sql的语句会写到日志中,mysql的日志需要被写到日志文件中,在之前的日志中用了 logback的日志,logback 是非常快的日志框架,它的配置文件在初始下面logback的配置文件中,打开logback配置文件可以看到第一项中配置的是所写的目录名,当前的测试代码配置在当前的目录下面会开一个目录,如果打包成 jar 包配置到服务器上,需要修改配置文件,把配置文件写在服务器某一个目录下面,就可以在外面看到整个系统运行情况,logback 配置文件中最主要的内容是 appender,appender 是输出日志,在现在的版本中可以看到定义了三个 appender,一个是标准的 stdout,用来输出到标准书上 console看到的内容,在里面定义了输出的格式以及输出的字符集,第二个是file输出到文件的appender,定义的是时间的原则,按照时间的预估数生成日志文件,appender主要是生成系统在这一级所有的日志,它是按照每天的方式生成一个文件,所有的日志保留30天,30天之前的日志文件会把它删掉,后面定义格式以及定义允许每个文件的大小,10兆,大于10兆就会开新的文件,第三个 appender是关于 drvid文件的输出,时间滚动的方式,跟之前的方式不一样,并不需要每天独立生成 mysql的日志文件,所以 drvidfile会把当前记录的mysql文件写在log中,rollplicy会把历史的记录放在后面,按照产生日期的值,写到log文件中,注意 rollplicy里面定义的timebasefilenamingandtriggeringolicy,它会触发机制是它的文件大小大于20

兆,把当前文件产生新的文件放到目录中,而且没有删除它的限制。

输出的格式加 deny,日志只记录 error级别的日志,最后定义的是真正输出的logger,对于 drvid的包会定义到标准的输出到 drvid文件中,定义另外一个logger,logger 是另外一个应用程序的输出,输出级别是 ferror,默认定义标准输出文件上,这就是 logback的配置。

4、因为已经引入l ogback配置的依赖,当数据库程序起来之后,会读取 logback 中的配置信息,把相关信息写到配置文件中,数据库跑起来,配置了drvid的部分,进行测试跑完之后,会发现 test前面加了configuration,跑完之后看数据库里面跑完的数据和跑之前的数据一样,这是关于数据源的设置,使用jdbc的方式连接mysql数据库,中间通过阿里巴巴的连接池使得可以保持多个数据库的连接,提高速度。

5、Mybatis中 Log-imol默认注释掉,设置主要作用是 mysql对于 Mybatis的操作转换成为sql语句,看产生的 sql语句是什么,也许是 sql语句写的有问题,需要看运行时 sql语句,可以把 Log-imol注释打开,会把所有的 sql语句输出到控制台上。

6、在 pom文件中和没有加 Mybatis的pom文件相比增加了pagehelper,虽然现在没有用pagehelper,pagehelper 是用来进行分页,当查询多条语句时进行分页,不会一次从数据库中查太多的数据。

Mysql jdbc 的驱动 commector-java,Mybatis-spring-boot-starter,用阿里巴巴的drvid,看跑起来的状态,虽然配置了阿里巴巴的 drvid,进行测试,跑完之后看数据库中跑的数据跟跑之前的数据一样,是因为在测试类的前面加了autoconfigrurewockmvc标签,标签会使得测试类测试过的方法都在一个事物中间执行,而且每一个方法结束时事务会回滚,测试之前的数据和测试完成以后数据库里面的数据会恢复成原先的样子,用 springboot跑起来,通过 localhost8080访问,看 drivd监控的网页,输入l ocalhost8080,join,就可以看到 drivd的监控网页,在里面可以看到 sql的日志和 mysql日志的信息,进入网页之前要输入用户名

和密码

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
14天前
|
SQL 监控 druid
springboot-druid数据源的配置方式及配置后台监控-自定义和导入stater(推荐-简单方便使用)两种方式配置druid数据源
这篇文章介绍了如何在Spring Boot项目中配置和监控Druid数据源,包括自定义配置和使用Spring Boot Starter两种方法。
|
1天前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
23 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
14天前
|
Java 数据库连接 数据库
spring复习05,spring整合mybatis,声明式事务
这篇文章详细介绍了如何在Spring框架中整合MyBatis以及如何配置声明式事务。主要内容包括:在Maven项目中添加依赖、创建实体类和Mapper接口、配置MyBatis核心配置文件和映射文件、配置数据源、创建sqlSessionFactory和sqlSessionTemplate、实现Mapper接口、配置声明式事务以及测试使用。此外,还解释了声明式事务的传播行为、隔离级别、只读提示和事务超时期间等概念。
spring复习05,spring整合mybatis,声明式事务
|
14天前
|
SQL XML Java
mybatis复习01,简单配置让mybatis跑起来
文章介绍了MyBatis的基本概念、历史和特点,并详细指导了如何配置MyBatis环境,包括创建Maven项目、添加依赖、编写核心配置文件、创建数据表和实体类、编写Mapper接口和XML配置文件,以及如何编写工具类和测试用例。
mybatis复习01,简单配置让mybatis跑起来
|
17天前
|
Java 数据库连接 数据库
SpringBoot 整合jdbc和mybatis
本文详细介绍了如何在SpringBoot项目中整合JDBC与MyBatis,并提供了具体的配置步骤和示例代码。首先,通过创建用户实体类和数据库表来准备基础环境;接着,配置Maven依赖、数据库连接及属性;最后,分别展示了JDBC与MyBatis的集成方法及其基本操作,包括增删查改等功能的实现。适合初学者快速入门。
SpringBoot 整合jdbc和mybatis
|
2天前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
7 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
2天前
|
数据采集 监控 Java
SpringBoot日志全方位超详细手把手教程,零基础可学习 日志如何配置及SLF4J的使用......
本文是关于SpringBoot日志的详细教程,涵盖日志的定义、用途、SLF4J框架的使用、日志级别、持久化、文件分割及格式配置等内容。
9 0
SpringBoot日志全方位超详细手把手教程,零基础可学习 日志如何配置及SLF4J的使用......
|
2天前
|
Java 数据库连接 mybatis
Springboot整合Mybatis,MybatisPlus源码分析,自动装配实现包扫描源码
该文档详细介绍了如何在Springboot Web项目中整合Mybatis,包括添加依赖、使用`@MapperScan`注解配置包扫描路径等步骤。若未使用`@MapperScan`,系统会自动扫描加了`@Mapper`注解的接口;若使用了`@MapperScan`,则按指定路径扫描。文档还深入分析了相关源码,解释了不同情况下的扫描逻辑与优先级,帮助理解Mybatis在Springboot项目中的自动配置机制。
Springboot整合Mybatis,MybatisPlus源码分析,自动装配实现包扫描源码
|
27天前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
14天前
|
XML Java 关系型数据库
springboot 集成 mybatis-plus 代码生成器
本文介绍了如何在Spring Boot项目中集成MyBatis-Plus代码生成器,包括导入相关依赖坐标、配置快速代码生成器以及自定义代码生成器模板的步骤和代码示例,旨在提高开发效率,快速生成Entity、Mapper、Mapper XML、Service、Controller等代码。
springboot 集成 mybatis-plus 代码生成器