JSP 配置MySQL数据库连接池
连接池可以预先建立一些连接,并且这些连接允许共享,因此这样就节省了每次连接的时间开销。本练习以MySQL数据库为例,通过一个简单的例子,带领读者学习数据库连接池在Tomcat中的配置与使用。具体步骤如下:
(1)创建数据库。在MySQL中创建Student数据库,它有一个表student,此表包含id(int)、name(char)、addr(char)、tel(char)四个字段,分别用来存放学生的编号、姓名、地址、电话的信息。
(2)配置l文件。在Tomcat的安装目录下到文件夹conf,进入该文件夹到l文件,用记事本打开,到如下元素:
<GlobalNamingResources>
…………………………
</GlobalNamingResources>
在上述元素里加入一个子元素,如下所示:
<Resource
name="jdbc/DBPool"
type="javax.sql.DataSource"
password="tmq"
driverClassName="sql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="root"
url="jdbc:mysql://localhost:3306/student"
maxActive="3"/>
name指定连接池的名称;type指定连接池的类,它负责连接池的事务处理;url指定要连接的数据库;driverClassName指定连接数据库使用的驱动程序;username与password分别指定连接数据库的用户名与密码;maxWait指定最大建立连接等待时间,如果超过此时间将接到异常;maxIdle指定连接池中连接的最大空闲数;maxActive指定连接池最大连接数。
(3)配置l文件。在Web应用程序中到l,它在站点的WEB-INF文件夹下。用记事本打开该文件到如下元素:
<web-app>
……………….
</web-app>
在上述元素中加入如下子元素:
<resource-ref>
<description>MySQL数据库连接池配置</description>
<res-ref-name>jdbc/DBPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
Description为描述信息;res-ref-name指定参考数据源名称,同上一步的属性name;res-type为资源类型;res-auth为连接名,res-sharing-scope指定是否可以被共享。
(4)配置l文件。这个文件与l文件所在的位置相同。用记事本打开,到如下元素:
<Context>
………………………………………
</Context>
在上述元素中加入子元素如下:
<ResourceLink
name="jdbc/DBPool" mysql下载配置
type="javax.sql.DataSource"
global="jdbc/DBPool"/>
name与同步骤(2)的name属性值相同,也与步骤(3)的res-ref-name属性值相同;type同样取“javax.sql.DataSource”;global同本步骤的name属性值。
(5)测试配置的数据库连接池。使用已经配置好的Student数据库连接池,从student表中提取数据,其核心代码如下:
<%
DataSource pool=null;
Context env = null;
Connection con=null;
Statement st=null;
ResultSet rs=null;
try {
env = (Context) new InitialContext().lookup("java:comp/env");//检索指定的对象,返回此上下文的一个新实例
pool = (DataSource)env.lookup("jdbc/DBPool");//获得数据库连接池
if(pool==null)
out.println("不到指定连接池");
con= Connection() ;//从池中取得一个连接
ateStatement();
rs = st.executeQuery("select * from students");
} catch(Exception ne) {out.String());}
%>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论