时间:2021-07-01 10:21:17 帮助过:40人阅读
数据库,所以就需要很多次重复的加载驱动,建立连接等操作,这样一方面写程序不方便,加大了程序量,另一方面,还有导致数据库的性能急剧下降,那么怎么解决这个问题呢?
我所学到的方法就是通过JDBC数据源和连接池的方式来解决这个问题。利用DataSource来建立数据库的连接不需要加载JDBC驱动,也不需要DriverManager类,通过向一个JNDI服务器查询来得到DataSource对象,然后调用DataSource对象的getConnection()方法来建立数据库的连接。下面代码是一个使用DataSource来建立数据库的连接的实例:
- <span style="font-family: "times new roman", times; font-size: 16px"><em id="__mceDel"><span style="color: #000000"><em id="__mceDel">//创建连接和语句对象</em><br>Connection conn=null; <br>Statement stmt</span>=<span style="color: #0000ff">null</span><span style="color: #000000">;
- <br></span><span style="color: #0000ff">try</span><span style="color: #000000">{
- Context ctx</span>=<span style="color: #0000ff">new</span><span style="color: #000000"> InitialContext();<br> //javax.naming.Context接口定义了将对象和名字绑定,<br> //以及通过名字查询对象的方法lookup()。<br>
- DataSource ds</span>=(DataSource)ctx.lookup(<span style="color: #800000">"</span><span style="color: #800000">java:comp/env/jdbc/calculation</span><span style="color: #800000">"</span><span style="color: #000000">);
- conn</span>=<span style="color: #000000">ds.getConnection();
- stmt</span>=<span style="color: #000000">conn.createStatement();
- String sql</span>=<span style="color: #800000">"</span><span style="color: #800000">insert into biaodashi values(‘</span><span style="color: #800000">"</span>+result+<span style="color: #800000">"</span><span style="color: #800000">‘)</span><span style="color: #800000">"</span><span style="color: #000000">;
- stmt.execute(sql);
- stmt.close();
- conn.close();
- }
- </span><span style="color: #0000ff">catch</span><span style="color: #000000">(Exception e){
- System.</span><span style="color: #0000ff">out</span><span style="color: #000000">.println(e);
- }</span></em></span>
下面介绍一下连接池技术:
连接池技术预先建立多个数据库连接对象,然后将连接对象保存到连接池中,党客户请求到来时,从池中取出一个连接对象为客户服务,当请求完成后,客户程序调用close()方法,将连接对象放回池中。
那么,那么在eclipse下怎么使用这项技术呢,首先就得配置JDBC数据源:
1.打开一个web工程,在webContent目录下的META-INF目录下新建一个叫context的xml文件,
2.打开context.xml文件,以下是context.xml的完整内容(可以直接复制粘贴到你的context.xml文件里(*代表的是自己根据自己的实际情况填写)):
- <span style="font-family: "times new roman", times; font-size: 16px"><span style="color: #0000ff"><?</span><span style="color: #ff00ff">xml version="1.0" encoding="UTF-8"</span><span style="color: #0000ff">?></span>
- <span style="color: #0000ff"><</span><span style="color: #800000">Context </span><span style="color: #ff0000">path</span><span style="color: #0000ff">="/*"</span><span style="color: #ff0000"> reloadable</span><span style="color: #0000ff">="true"</span><span style="color: #0000ff">></span>
- <span style="color: #008000"><!--</span><span style="color: #008000"> 配置数据源 </span><span style="color: #008000">--></span>
- <span style="color: #0000ff"><</span><span style="color: #800000">Resource </span><span style="color: #ff0000">auth</span><span style="color: #0000ff">="Container"</span><span style="color: #ff0000"> driverClassName</span><span style="color: #0000ff">="com.mysql.jdbc.Driver"</span><span style="color: #ff0000"> maxActive</span><span style="color: #0000ff">="100"</span><span style="color: #ff0000">
- maxldle</span><span style="color: #0000ff">="30"</span><span style="color: #ff0000"> maxWait</span><span style="color: #0000ff">="10000"</span><span style="color: #ff0000"> name</span><span style="color: #0000ff">="jdbc/*"</span><span style="color: #ff0000"> password</span><span style="color: #0000ff">="****"</span><span style="color: #ff0000"> type</span><span style="color: #0000ff">="javax.sql.DataSource"</span><span style="color: #ff0000">
- url</span><span style="color: #0000ff">="jdbc:mysql://localhost:3306/*?autoReconnect=true"</span><span style="color: #ff0000"> username</span><span style="color: #0000ff">="root"</span><span style="color: #0000ff">/></span>
- <span style="color: #0000ff"></</span><span style="color: #800000">Context</span><span style="color: #0000ff">></span></span>
这里需要对以上的配置文件进行基本的解释说明:
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>之间(*代表的是自己根据自己的实际情况填写))
- <span style="font-family: "times new roman", times; font-size: 16px"><span style="color: #0000ff"><</span><span style="color: #800000">resource-ref</span><span style="color: #0000ff">></span>
- <span style="color: #0000ff"><</span><span style="color: #800000">description</span><span style="color: #0000ff">></span>MySQL DBCP<span style="color: #0000ff"></</span><span style="color: #800000">description</span><span style="color: #0000ff">></span>
- <span style="color: #0000ff"><</span><span style="color: #800000">res-ref-name</span><span style="color: #0000ff">></span>jdbc/*<span style="color: #0000ff"></</span><span style="color: #800000">res-ref-name</span><span style="color: #0000ff">></span>
- <span style="color: #0000ff"><</span><span style="color: #800000">res-type</span><span style="color: #0000ff">></span>javax.sql.DataSource<span style="color: #0000ff"></</span><span style="color: #800000">res-type</span><span style="color: #0000ff">></span>
- <span style="color: #0000ff"><</span><span style="color: #800000">res-auth</span><span style="color: #0000ff">></span>Container<span style="color: #0000ff"></</span><span style="color: #800000">res-auth</span><span style="color: #0000ff">></span>
- <span style="color: #0000ff"></</span><span style="color: #800000">resource-ref</span><span style="color: #0000ff">></span></span>
这里<res-ref-name></res-ref-name>之间的内容代表的就是上面配置Context.xml文件里name属性的值。
至此,eclipse下JDBC数据源与连接池的配置就弄好了,这个时候最上面的那个实例就可以正常运行了。
eclipse下jdbc数据源与连接池的配置及功能简介
标签:基本 print containe container cat 服务 命名 rom source