第五章:Spring细分一如何让mapper文件夹下的SQL语句对数据库生效,jdbc和mybatis-config.xml
创始人
2024-02-05 06:46:44
0

从 XML 中构建 SqlSessionFactory

先学会xml文件的方式后,再从Maven构建项目就简单很多。
Mybatis官网链接
提示:这里对文章进行总结:
数据库连接可以在容器启动的时候就先进行一定数量的连接,放在连接池当中,等待调用。
举例子:jdbc.initialSize1=50
常用连接池功能不仅仅局限于连接,还能对sql语句进行监控管理、处理异常、管理事务作用。
项目代码中已经创建mapper文件夹,并且创建xml,里面写了sql语句,如何让其对应数据库连接并生效对数据库操作呢?举例子:关注MapperScannerConfigurer配置。

第一步:配置数据源jdbc.properties(配置多个)

这里配置2个数据源为例子
对应mapper.xml的所在文件夹一般是对某个数据库操作的。
数据源的属性名可以自定义,但是xml 配置中就必须统一
比如jdbc.username数据源中可以改其他名,只要配置在数据源xml中对即可。

--------------------------------------数据源__1----------------------------------------#驱动器
driveConfigClass1=com.mysql.jdbc.Driver
url1=jdbc\:mysql\://localhost\:3306/DataBase_Name?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
username1=
password1=
#连接池初始化时初始化的数据库连接数,当项目第一次进行增,删,改,查的时候,连接池会初始化,这个时候会根据initialSize参数初始化数据库连接放入连接池中。
initialSize1=50
#最大空闲数
maxIdle1=300
#最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请
minIdle1=50
#最大激活数
maxActive1=300
#用来验证数据库连接的有效性
validationQuery1=select 1--------------------------------------数据源__2----------------------------------------#驱动器
driveConfigClass2=com.mysql.Driver
url2=:mysql\://localhost\:3306/DataBase_Name?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
name=
word=
#连接池初始化时初始化的数据库连接数,当项目第一次进行增,删,改,查的时候,连接池会初始化,这个时候会根据initialSize参数初始化数据库连接放入连接池中。
initialSize2=10
#最大空闲数
maxIdle2=15
#最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请
minIdle2=10
#最大激活数
maxActive2=15
#用来验证数据库连接的有效性
validationQuery2=select 1
testOnBorrow=true--------------------------------------数据源__3----------------------------------------#配置驱动
sqlServerDrive=com.microsoft.sqlserver.jdbc.SQLServerDriver
url3=jdbc:sqlserver://localhost;database=DataBase_Name
usernameTEST=
passwordTEST=
#最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请
initialSizeTest=15
minIdleTEST=15
maxIdleTEST=1200
#最大激活数
maxActiveTEST=1200
testOnBorrow=true

第二步:配置数据源的Mybatis全局配置

首要的配置数据库sql语句执行日志,监控和管理,而log4.properties配置是对非sql日志监控
这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。 下表描述了设置中各项设置的含义、默认值等。
在使用mybatis框架时,首先导入其对应的jar包,并进行相应的配置,所以得对配置文件的每个参数都得了解。一个完全的mybatis配置文件结构如下:
mybatis-Config.xml常用配置注解包括获取数据库连接实例的数据源(DataSource)以及决定事务作用域和控制方式的事务管理器(TransactionManager)




  
#一个配置完整的 settings 元素的示例如下:

#	全局性地开启或关闭所有映射器配置文件中已配置的任何缓存。
#  	延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。 特定关联关系中可通过设置 fetchType 属性来覆盖该项的开关状态。#	允许 JDBC 支持自动生成主键,需要数据库驱动支持。如果设置为 true,将强制使用自动生成主键。尽管一些数据库驱动不支持此特性,但仍可正常工作(如 Derby)。
#常用配置默认的执行器。SIMPLE 就是普通的执行器;REUSE 执行器会重用预处理语句(PreparedStatement); BATCH 执行器不仅重用语句还会执行批量更新。#日志 关于mysql语句运行的日志
#  	允许使用方法签名中的名称作为语句参数名称。 为了使用该特性,你的项目必须采用 Java 8 编译,并且加上 -parameters 选项。(新增于 3.4.1)

#类型别名(typeAliases)


#分页插件

第三步:将前两步的配置注入到Bean类的属性值中

文件名 springContext-dao.xml

#将数据源的值注入到三个Bean中,这里只是注入了数据源1,另外连个一次类推
1.DruidDataSource链接学习:

数据库连接池当用户不使用的时候,并没有断开与数据库的连接,而是将连接放到连接池当中,
否则每次连接会耗费极大的连接资源。
Druid连接池是阿里巴巴开源的数据库连接池项目。Druid连接池为监控而生,
内置强大的监控功能,监控特性不影响性能。功能强大,能防SQL注入,内置Loging能诊断Hack应用行为。

2.SqlSessionFactoryBean

浏览器和服务器之间的会话通过Session标记,Session用来维护无状态请求之间的状态的信息。
因此SqlSession是客户端与数据库Server之间建立的会话,并维护了客户端和数据库Server的一些状态信息。
1.SqlSession是关联到具体数据库连接的,实现了SqlSession接口,可以执行sql命令、获取mapper和管理事务
2.SqlSessionFactoryBean是生产SqlSessionFactory的一种工厂Bean;
3.SqlSessionFactory是一种生产SqlSession的工厂,其能力(方法 )就是打开一个会话(客户端和数据库Server)
4.SqlSession是代表数据库连接客户端和数据库Server之间的会话信息;
5.SqlSessionTemplate是SqlSession的一个具体实现。

3.MapperScannerConfigurer
此配置会扫描所在项目的文件夹下的所有接口,然后创建各自接口的动态代理类。这样,Service就可以注入dao的实例了。
mybatis-spring提供了MapperScannerConfigurer这个类,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBean。


#将jdbc文件引用到这个文件

--------------#为将 数据源1	注入到Bean中-----------------------					#引用dataSource_ID1 给sqlsession	
--------------#为将 数据源3	注入到Bean中-----------------------#将jdbc文件引用到这个文件

--------------#为将 数据源3	注入到Bean中-----------------------				#引用dataSource_ID3 给sqlsession	

总结

此篇配置文件会在接下来几个章节被引用

提示:这里对文章进行总结:

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...