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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
日志服务 SLS,月写入数据量 50GB 1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 快速学习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日志的信息,进入网页之前要输入用户名

和密码

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
2月前
|
XML Java 数据库连接
MyBatis的常见配置
MyBatis 常见配置包括数据库连接、类型别名、映射器等核心模块,合理配置可提升开发效率与系统性能。主要内容涵盖核心配置文件结构、关键配置项详解及配置优先级说明。
306 4
|
4月前
|
Java Spring
Spring Boot配置的优先级?
在Spring Boot项目中,配置可通过配置文件和外部配置实现。支持的配置文件包括application.properties、application.yml和application.yaml,优先级依次降低。外部配置常用方式有Java系统属性(如-Dserver.port=9001)和命令行参数(如--server.port=10010),其中命令行参数优先级高于系统属性。整体优先级顺序为:命令行参数 > Java系统属性 > application.properties > application.yml > application.yaml。
866 0
|
1月前
|
JavaScript Java Maven
【SpringBoot(二)】带你认识Yaml配置文件类型、SpringMVC的资源访问路径 和 静态资源配置的原理!
SpringBoot专栏第二章,从本章开始正式进入SpringBoot的WEB阶段开发,本章先带你认识yaml配置文件和资源的路径配置原理,以方便在后面的文章中打下基础
243 3
|
2月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
482 5
|
3月前
|
SQL XML Java
通过MyBatis的XML配置实现灵活的动态SQL查询
总结而言,通过MyBatis的XML配置实现灵活的动态SQL查询,可以让开发者以声明式的方式构建SQL语句,既保证了SQL操作的灵活性,又简化了代码的复杂度。这种方式可以显著提高数据库操作的效率和代码的可维护性。
257 18
|
2月前
|
传感器 Java 数据库
探索Spring Boot的@Conditional注解的上下文配置
Spring Boot 的 `@Conditional` 注解可根据不同条件动态控制 Bean 的加载,提升应用的灵活性与可配置性。本文深入解析其用法与优势,并结合实例展示如何通过自定义条件类实现环境适配的智能配置。
165 0
探索Spring Boot的@Conditional注解的上下文配置
|
3月前
|
安全 算法 Java
在Spring Boot中应用Jasypt以加密配置信息。
通过以上步骤,可以在Spring Boot应用中有效地利用Jasypt对配置信息进行加密,这样即使配置文件被泄露,其中的敏感信息也不会直接暴露给攻击者。这是一种在不牺牲操作复杂度的情况下提升应用安全性的简便方法。
919 10
|
4月前
|
人工智能 安全 Java
Spring Boot yml 配置敏感信息加密
本文介绍了如何在 Spring Boot 项目中使用 Jasypt 实现配置文件加密,包含添加依赖、配置密钥、生成加密值、在配置中使用加密值及验证步骤,并提供了注意事项,确保敏感信息的安全管理。
1055 1
|
4月前
|
SQL Java 数据库连接
Spring、SpringMVC 与 MyBatis 核心知识点解析
我梳理的这些内容,涵盖了 Spring、SpringMVC 和 MyBatis 的核心知识点。 在 Spring 中,我了解到 IOC 是控制反转,把对象控制权交容器;DI 是依赖注入,有三种实现方式。Bean 有五种作用域,单例 bean 的线程安全问题及自动装配方式也清晰了。事务基于数据库和 AOP,有失效场景和七种传播行为。AOP 是面向切面编程,动态代理有 JDK 和 CGLIB 两种。 SpringMVC 的 11 步执行流程我烂熟于心,还有那些常用注解的用法。 MyBatis 里,#{} 和 ${} 的区别很关键,获取主键、处理字段与属性名不匹配的方法也掌握了。多表查询、动态
147 0
|
Java 数据库连接 mybatis
MyBatis-Spring配置简单了解
在基本的 MyBatis 中,session 工厂可以使用 SqlSessionFactoryBuilder 来创建。而在 MyBatis-spring 中,则使用 SqlSessionFactoryBean 来替代。
980 0