JDBC连接池技术
一.连接池技术
1.加载数据库驱动程序;
2.通过JDBC建立数据库连接;
3.访问数据库,执行SQL语句;
4.断开数据库连接。
二.使用方法
三.实例分析
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> </head> <body> <%@page import="javax.sql.*,javax.naming.*"%> <% long beginTime=System.currentTimeMillis(); int n=500; ResultSet rs=null; Statement st=null; Connection con=null; for(int i=0;i<n;i++) { try { Context ctx=new InitialContext(); //获得一个上下文对象 DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/pubs"); //通过上下文对象在JNDI中查找指定名字的数据源 con=ds.getConnection();//通过数据源获得一个连接池 String sql="select title,type,price from titles "; st=con.createStatement(); rs=st.executeQuery(sql); while(rs.next()) { rs.getString("title"); rs.getString("type"); rs.getString("price"); } } catch(Exception e) { out.print(e.getMessage()); } finally { if(rs!=null) rs.close(); if(st!=null) st.close(); if(con!=null) con.close(); } } long endTime=System.currentTimeMillis(); out.print("用连接池作500次查询耗时:"+(endTime-beginTime)+"毫秒"); %> </body> </html>
第3步:新建一个名为exam623.jsp 的JSP页面,用JDBC驱动程序直接访问pubs/titles表500次。
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> </head> <body> <%@page import="javax.sql.*,javax.naming.*"%> <% long beginTime=System.currentTimeMillis(); int n=500; ResultSet rs=null; Statement st=null; Connection con=null; for(int i=0;i<n;i++) { try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String url="jdbc:sqlserver://localhost:1433;databaseName=pubs;user=sa;password="; con = DriverManager.getConnection(url); String sql="select title,type,price from titles "; st=con.createStatement(); rs=st.executeQuery(sql); while(rs.next()) { rs.getString("title"); rs.getString("type"); rs.getString("price"); } rs.close(); st.close(); con.close(); } catch(Exception e) { out.print(e.getMessage()); } finally { if(rs!=null) rs.close(); if(st!=null) st.close(); if(con!=null) con.close(); } } long endTime=System.currentTimeMillis(); out.print("直接用JDBC连接作500次查询耗时:"+(endTime-beginTime)+"毫秒"); %> </body> </html>
(2)这个不用多数,效果看得见!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。