开发者学堂课程【高校精品课-厦门大学 -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下面,
连接用的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有关的配置,其中有初始连接数,
整个应用起来,最开始会建三个连接,最小连接词的数量,因为随着连接的减少,它会删掉已经存在的连接,存在的最小数是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日志的信息,进入网页之前要输入用户名
和密码。