今天在做四则运算网页版的时候遇到了一个困惑,由于需要把每个产生的式子存进

数据库,所以就需要很多次重复的加载驱动,建立连接等操作,这样一方面写程序不方便,加大了程序量,另一方面,还有导致数据库的性能急剧下降,那么怎么解决这个问题呢?

  我所学到的方法就是通过JDBC数据源和连接池的方式来解决这个问题。利用DataSource来建立数据库的连接不需要加载JDBC驱动,也不需要DriverManager类,通过向一个JNDI服务器查询来得到DataSource对象,然后调用DataSource对象的getConnection()方法来建立数据库的连接。下面代码是一个使用DataSource来建立数据库的连接的实例:

//创建连接和语句对象
Connection conn=null;
Statement stmt=null;

try{
Context ctx=new InitialContext();
     //javax.naming.Context接口定义了将对象和名字绑定,
     //以及通过名字查询对象的方法lookup()。
DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/calculation");
conn=ds.getConnection();
stmt=conn.createStatement();
String sql="insert into biaodashi values('"+result+"')";
stmt.execute(sql); stmt.close();
conn.close();
}
catch(Exception e){
System.out.println(e);
}

  下面介绍一下连接池技术:

连接池技术预先建立多个数据库连接对象,然后将连接对象保存到连接池中,党客户请求到来时,从池中取出一个连接对象为客户服务,当请求完成后,客户程序调用close()方法,将连接对象放回池中。

  那么,那么在eclipse下怎么使用这项技术呢,首先就得配置JDBC数据源:

1.打开一个web工程,在webContent目录下的META-INF目录下新建一个叫context的xml文件,

2.打开context.xml文件,以下是context.xml的完整内容(可以直接复制粘贴到你的context.xml文件里(*代表的是自己根据自己的实际情况填写)):

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/*" reloadable="true">
<!-- 配置数据源 -->
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="100"
maxldle="30" maxWait="10000" name="jdbc/*" password="****" type="javax.sql.DataSource"
url="jdbc:mysql://localhost:3306/*?autoReconnect=true" username="root"/>
</Context>

这里需要对以上的配置文件进行基本的解释说明:

Context path="/*",这是虚目录,等于给你真正的数据源文件起了一个别名,*可以随便命名;

name="jdbc/*",这是指定资源相对于java:comp/env 上下文的JNDI名,*可以随便命名,但是要记住,下面连接数据库的时候要用。

password=“****”是你的数据库密码。

url="jdbc:mysql://localhost:3306/*?autoReconnect=true"

为指定连接数据库的URL。

(只需要把*号部分换成你数据库的名字即可,其余部分可以不动。)

  

  接下来就是web.xml文件的配置:

1.打开web.xml文件,在<web-app></web-app>之间添加如下代码:

(可以直接复制粘贴到你的web.xml文件里<web-app></web-app>之间(*代表的是自己根据自己的实际情况填写))

<resource-ref>
<description>MySQL DBCP</description>
<res-ref-name>jdbc/*</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

这里<res-ref-name></res-ref-name>之间的内容代表的就是上面配置Context.xml文件里name属性的值。

 

至此,eclipse下JDBC数据源与连接池的配置就弄好了,这个时候最上面的那个实例就可以正常运行了。

eclipse下jdbc数据源与连接池的配置及功能简介的更多相关文章

  1. JDBC数据源连接池的配置和使用实例

    个人学习参考所用,勿喷! 使用JDBC建立数据库连接的两种方式: 1.在代码中使用DriverManager获得数据库连接.这种方式效率低,并且其性能.可靠性和稳定性随着用户访问量得增加逐渐下降. 2 ...

  2. springboot添加多数据源连接池并配置Mybatis

    springboot添加多数据源连接池并配置Mybatis 转载请注明出处:https://www.cnblogs.com/funnyzpc/p/9190226.html May 12, 2018  ...

  3. 深入理解Spring Boot数据源与连接池原理

    ​ Create by yster@foxmail.com 2018-8-2 一:开始 在使用Spring Boot数据源之前,我们一般会导入相关依赖.其中数据源核心依赖就是spring‐boot‐s ...

  4. 《深入理解mybatis原理3》 Mybatis数据源与连接池

    <深入理解mybatis原理> Mybatis数据源与连接池 对于ORM框架而言,数据源的组织是一个非常重要的一部分,这直接影响到框架的性能问题.本文将通过对MyBatis框架的数据源结构 ...

  5. SSM项目下Druid连接池的配置及数据源监控的使用

    一,连接池的配置 在pom.xml中添加,druid的maven信息 <dependency> <groupId>com.alibaba</groupId> < ...

  6. Spring(Bean)4 配置数据源、连接池

    <!-- 配置数据源 Mysql c3p0: 连接池. <bean id="dataSource" class="com.mchange.v2.c3p0.Co ...

  7. C3P0连接池详细配置

    C3P0连接池详细配置 转自http://msq.javaeye.com/blog/60387 <c3p0-config> <default-config> <!--当连 ...

  8. 配置数据库连接池,Tomcat6.0 连接池的配置

    Tomcat6.0 连接池的配置1.本人当前使用的Tomcat版本为:6.0.20,oracle为稳定的9i版本 2.下文为方便起见,依习惯以%Tomcat_Home%表示Tomcat安装的目录,本人 ...

  9. spring+mybatis+c3p0数据库连接池或druid连接池使用配置整理

    在系统性能优化的时候,或者说在进行代码开发的时候,多数人应该都知道一个很基本的原则,那就是保证功能正常良好的情况下,要尽量减少对数据库的操作. 据我所知,原因大概有这样两个: 一个是,一般情况下系统服 ...

随机推荐

  1. bootstrap学习之路

    接触bootstrap也半年有余,从一开始不知道如何使用,到知道其各个模块的具体功能,再到提炼哪些使用的比较多,再此又体会到bootstrap源码的精髓,通过oocss写的类使其感觉更有易用性,开始本 ...

  2. OpenGL(十八) 顶点数组和抗锯齿(反走样)设置

    顶点数组函数可以在一个数组里包含大量的与顶点相关的数据,并且可以减少函数的调用.使用顶点数组需要先启用顶点数组功能,使用glEnableClientState函数启用顶点数组,参数可以是GL_VERT ...

  3. matlab进行离散点的曲线拟合

    原文:matlab进行离散点的曲线拟合 ployfit是matlab中基于最小二乘法的多项式拟合函数.最基础的用法如下: C=polyfit(X,Y,N) 其中: X : 需要拟合的点的横坐标 Y:需 ...

  4. 特殊存储过程——触发器Trigger

    触发器类型 insert 触发器delete 触发器update 触发器 Inserted和Deleted两个临时表的作用 Inserted:对于插入记录操作来说,插入表里存放的是要插入的数据:对于更 ...

  5. win10 uwp 萤火虫效果

    原文:win10 uwp 萤火虫效果 本文在Nukepayload2指导下,使用他的思想用C#写出来. 本文告诉大家,如何使用 win2d 做出萤火虫效果. 安装 win2d 安装win2d的方法请使 ...

  6. 浅谈.NET(C#)与Windows用户账户信息的获取

    原文:浅谈.NET(C#)与Windows用户账户信息的获取 目录 1. 用户账户名称 - 使用Environment类 2. 用户账户信息 - 使用WindowsIdentity和IdentityR ...

  7. Linux 下 Redis 服务 Shell启动脚本

    # chkconfig: 2345 10 90 # description: Start and Stop redis  PATH=/usr/local/bin:/sbin:/usr/bin:/bin ...

  8. 教你如何快速使用Github

    以前看过几篇github的使用教程,感觉还是不是很清晰,自从看到了这篇,通俗易懂,也学会基本的使用了,在此为大家推荐.(转自知乎,为了能让更多的人看到,请允许我使用 “原创”,如果侵权请联系.) Gi ...

  9. C函数实现返回多个值的方法

    C语言中,一个函数最多只能实现一个返回值. int func (int b) { int a=5; if (a>b) return a; else return b; return  0; } ...

  10. Windows窗体原理及控件WM_DRAWITEM和子类化重绘演示文件

    http://download.csdn.net/detail/wenzhou1219/6783959