码农知识堂 - 1000bd
Python
PHP
JS/TS
JAVA
C/C++
C#
GO
Kotlin
Swift
spring配置数据源
配置数据源
介绍
一、手动配置参数
二、通过配置文件进行属性配置
三、通过spring来创建数据源
介绍
我们在开发中常常需要和数据库打交道,但是我们现在常用的框架,比如mybatis或者他的plus版都需要数据源的配置。接下来我就配置常见的两种数据源druid数据源和c3po数据源。
一、手动配置参数
在进行数据源的配置时,我们需要配置常见的四件套参数:druid、url、password、username。接下来我们就使用手动的方式进行配置。
在配置之前我们先看看都需要导那些坐标。
坐标导好之后,就开始进行手动配置数据源,我们先配置c3po的数据源。很简单,首先的创建一个该数据源的对象,然后就是我刚刚提到的四件套druid、url、password、username。将这些参数配置好了之后就可以进行getConnection操作了。
这里需要注意的一点是,这个druid和url,不同版本的数据库坐标这两个的配置参数有点不太一样。具体的参数可以参考下面的第二张图
。我使用的数据库坐标是8.0.11。
上面是配置c3po的数据源,下面我们来看看druid数据源的配置,也很简单。和上面几乎没有什么区别,唯一不同就是数据源对象名称不一样。其他的几乎都一样。
同样的,需要注意不同版本的druid参数和url参数
。
按理来说,我们已经掌握了,但是大家仔细想想,我们做的东西是给别人用的。客户在是使用我们的产品时能不能来修改我们的源代码。那肯定是不行的。所以,我们不能将参数得配置写死,应该允许用户按照自己的使用情况来进行修改。所以,很明显,上述的方式是不可取得。但是如何解决这一问题呢?接着往下看。
二、通过配置文件进行属性配置
上面我们提到了一个问题,为了解决这个问题,我们引入了properties文件。通过读取该文件里面的属性值来进行配置,从而就可以实现在不改变源码得情况进行属性值得修改。接下来就来看看怎么做。
由于我们创建的是spring的项目,所以,首先我们先在resource目录下创建一个properties文件,名字随便起。我起的是jdbc.properties。然后在该文件里面写上我们需要的参数。
在写好properties文件之后,我们来看看如何读取该文件,很简单,spring已经有相应的工具来读取。我们直接拿来用就行。通过ResourceBundle.getBundle()这个方法就可以实现文件的读取,
注意:这个方法需要一参数,该参数就是文件名称,不需要文件后缀名
。然后利用getString()既可以获取properties文件里面相应的键所对应的值。然后再将该值传递进去。但是再仔细想一想,这样的话还得我们自己来生成这个数据源对象。我们现在学的是什么?Spring呀,他有IOC,那么我们是不是可以将数据源对象的创建交给spring来进行。
三、通过spring来创建数据源
上面我们自己实现数据源的创建,但是为了体现框架的方便性,我们再来看看如何通过框架来完成数据源的创建。
首先,我们得先在resource目录下创建一个xml文件。如下图所示:
然后再使用bean标签来进行数据源对象的创建。如下图;这里为什么要这样写我就不说了,这是属于spring对象管理那一部分的知识。
然后我们按照spring那一套流程就可以获取到该数据源对象了。
看完上面的配置后,我们发现,是不是properties文件没有用到。所以我们来看看如何将propereties文件给添加进去。
首先,我们还是得先创建一个properties文件(和上面的一样),然后在xml文件里面引入这个properties文件。那么该如何引入呢?很简单,首先我们先将context空间给导入,然后按照下图进行编写就行。再导入之后通过${键}来读取properties文件里面的内容。
最后按照spring那一套流程进行数据源对象的获取就行了。
我在这里主要讲解了使用手动配置和配置文件配置数据源的方式,感兴趣的话还可以学习一下如何通过注解的方式来进行配置。
相关阅读:
「秋招」这份各大厂面试万金油手册,吃透保你进大厂
今天刚下jdk11和netbeans12,在打开github的一个文件的时候没有任何反应,我看别人是可以打开的
无重复字符的最长子串 Golang leecode_3
操作系统期末复习笔记
对于PatchGAN的理解
7-4 千手观音 天梯赛
[go]汇编ASM简介
和大于等于 target 的最短子数组 python解答
MASM 64汇编
14.cuBLAS开发指南中文版--cuBLAS中的Level-1函数nrm2()和rot()
原文地址:https://blog.csdn.net/qq_46111881/article/details/125508013
最新文章
沪漂五周年了:我越来越迷茫了
Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
MySQL-Seconds_behind_master的精度误差
[MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
Agent OS :五种驯服不确定性的范式
PortSwigger SQL注入LAB11
数据库即时编译JIT
[Begin]AI Learn Data Day 0
深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
热门文章
十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
奉劝各位学弟学妹们,该打造你的技术影响力了!
五年了,我在 CSDN 的两个一百万。
Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
面试官都震惊,你这网络基础可以啊!
你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
心情不好的时候,用 Python 画棵樱花树送给自己吧
通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
13 万字 C 语言从入门到精通保姆级教程2021 年版
10行代码集2000张美女图,Python爬虫120例,再上征途
小工具
小游戏
Copyright © 2022 侵权请联系
2656653265@qq.com
京ICP备2022015340号-1
京公网安备 11010502049817号