Tomcat配置MySQL和Oracle数据库数据源

描述:
最原始的数据库使用就是打开一个连接并进行使用,使用过后一定要关闭连接释放资源。由于频繁的打开和关闭连接对jvm包括数据库
都有一定的资源负荷,尤其应用压力较大时资源占用比较多容易产生性能问题。由此使用连接池的作用就显现出来,他的原理其实不复杂:
先打开一定数量的数据库连接,当使用的时候分配给调用者,调用完毕后返回给连接池,注意返回给连接池后这些连接并不会关闭,而是
准备给下一个调用者进行分配。由此可以看出连接池节省了大量的数据库连接打开和关闭的动作,对系统性能提升的益处不言而喻。
几个概念:
最小连接–应用启动后随即打开的连接数以及后续最小维持的连接数。
最大连接数–应用能够使用的最多的连接数
连接增长数–应用每次新打开的连接个数
举个例子说明连接池的运作:
假设设置了最小和最大的连接为10,20,那么应用一旦启动则首先打开10个数据库连接,但注意此时数据库连接池的正在使用数字为0–因为你并没有使用这些连接,而空闲的数量则是10。然后你开始登录,假设登录代码使用了一个连接进行查询,那么此时数据库连接池的正在使用数字为1、空闲数为9,这并不需要从数据库打开连接–因为连接池已经准备好了10个给你留着呢。登录结束了,当前连接池的连接数量是多少?当然是0,因为那个连接随着事务的结束已经返还给连接池了。然后同时有11个人在同一秒进行登录,会发生什么:连接池从数据库新申请(打开)了一个连接,连同另外的10个一并送出,这个瞬间连接池的使用数是11个,不过没关系正常情况下过一会儿又会变成0。如果同时有21个人登录呢?那第21个人就只能等前面的某个人登录完毕后释放连接给他。这时连接池开启了20个数据库连接–虽然很可能正在使用数量的已经降为0,那么20个连接会一直保持吗?当然不,连接池会在一定时间内关闭一定量的连接还给数据库,在这个例子里数字是20-10=10,因为只需要保持最小连接数就好了,而这个时间周期也是连接池里配置的。

Tomcat配置数据库数据源,通过配置数据源可以保证始终有数据库连接对象,需要用的时候直接引用,用完以后直接关闭即可。而如果是JDBC普通连接方法,每一个对象连接都需要经过从加载到关闭,这样一来势必会降低程序效率

步骤:
1.下载MySQL或者Oracle驱动放到Tomcat安装目录的lib目录中(下面以MySQL作为演示,Oracle操作一样,只需要更改两条语句即可)
在这里插入图片描述
2.进入Tomcat安装目录的conf目录中并打开server.xml
在这里插入图片描述
3.在server.xml中的节点前加入以下语句(server.xml图片截图在下)

<Context path="/tianxin" docBase="F:\JavaWeb" reloadable="true">
		<Resource
			name="jdbc/dbmysql"
			auth="Container"
			type="javax.sql.DataSource"
			factory="org.apache.tomcat.dbcp.dbcp2.BasicDataSourceFactory"
			maxTotal="10"
			maxIdle="3"
			maxWaitMillis="10000"
			username="root"
			password="tianxin"
			driverClassName="com.mysql.jdbc.Driver"
			url="jdbc:mysql://localhost:3306/tianxin"/>	
        </Context>

*注意:是配置的虚拟路径,如果不需要虚拟路径则只需要把Resource整个内容写中间如下:和是必须的,配置内容写在Resource中,Resource又是放在中间:

<Context>
	<Resource
		name="jdbc/dbmysql"
		auth="Container"
		type="javax.sql.DataSource"
		maxTotal="10"
		maxIdle="3"
		maxWaitMillis="10000"
		username="root"
		password="tianxin"
		driverClassName="com.mysql.jdbc.Driver"
		url="jdbc:mysql://localhost:3306/tianxin" />	
  </Context>

*解释:

name=“jdbc/dbmysql” // 数据源名
auth=“Container” // 容器负责资源的连接
type=“javax.sql.DataSource” // 数据源名称对应的类型是javax.sql.DataSource
maxTotal=“10” // 最大连接数:注意老版是maxActive,maxActive在新版Tomcat中会发出警告
maxIdle=“3” // 数据无连接时保存的数据库连接对象数量
maxWaitMillis=“10000” // 最大等待时间:注意老版是maxWait,maxWait在新版Tomcat中会发出警告
username=“root” // MySQL用户名
password=“tianxin” // 数据库连接密码
driverClassName=“com.mysql.jdbc.Driver” // 驱动名称

url=“jdbc:mysql://localhost:3306/tianxin” // 数据库名

·截图
在这里插入图片描述
*如果是配置Oracle的话需要更改其中两项,别的根据需要更改

    ·driverClassName="oracle.jdbc.driver.OracleDriver" 

·url=“jdbc:oracle:thin:@localhost:1521:tianxin”

    ·tianxin是oracle数据库实例名,安装的时候设置的,如果遗忘可以根据下面方法找回

    1).win+R打开运行框输入:services.msc

在这里插入图片描述
2).在打开的服务中找到Oracle的:OracleServerTIANXIN,TIANXIN就是Oracle的实例名
在这里插入图片描述
4.在自己的项目(注意是自己项目)的WEB-INF下的web.xml中配置下面信息

<resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/dbmysql</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>

*截图:
在这里插入图片描述
5.启动Tomcat数据库,看后台时候有报错,如果无则代表配置成功

6.在数据库操作类中获取连接池的连接:

Context context = new InitialContext();

DataSource dataSource = (DataSource)context.lookup(“java:comp/env/jdbc/dbmysql”);

Connection con =dataSource.getConnection();

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值