Topic: 关于数据库连结池的问题? |
Print this page |
1.关于数据库连结池的问题? | Copy to clipboard |
Posted by: sun7bear Posted on: 2006-05-06 19:55 <!--测试数据源--> <%@ page contentType="text/html; charset=gb2312" %> <%@ page import="javax.naming.Context" %> <%@ page import="javax.sql.DataSource"%> <%@ page import="javax.naming.InitialContext"%> <%@ page import="java.sql.*"%> <% DataSource ds = null; try{ Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); //从Context中lookup数据源。 ds = (DataSource)envCtx.lookup("jdbc/DBPool"); if(ds!=null) { out.println("已经获得DataSource!"); out.println("<br>"); Connection conn = ds.getConnection(); Statement stmt=conn.createStatement(); ResultSet rst=stmt.executeQuery("select * from book"); out.println("以下是从数据库中读取出来的数据"); while(rst.next()) { out.println("bookName:"+rst.getString("bookName")); out.println("<br>"); } } else out.println("连接失败!"); } catch(Exception ne) { out.println(ne); } %> 我用如上jsp文件连接到mssql2000,结果显示如下错误 已经获得DataSource! org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.) 已经获得数据源,但为什么不能取的mssql2000中的数据呢? |
2.Re:关于数据库连结池的问题? [Re: sun7bear] | Copy to clipboard |
Posted by: sunjavaduke Posted on: 2006-05-06 23:18 实例讲解:使用连接池连接MS SQL SERVER 2000 连接MS SQL SERVER 2000时要把msbase.jar,mssqlserver.jar,msutil.jar三个文件复制到%Tomcat 5.0%\common\lib中,这是它的驱动程序,然后要设定Tomcat的server.xml,它位于%Tomcat 5.0%\conf\server.xml,需要建立一个站点,代码如下:添加到server.xml中的</host>前面。 <Context path="\Project" reloadable="true" docBase="Project"> <Resource name="jdbc/Project" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/Project"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>maxActive</name> <value>100</value> </parameter> <parameter> <name>maxIdle</name> <value>30</value> </parameter> <parameter> <name>maxWait</name> <value>10000</value> </parameter> <parameter> <name>username</name> <value>sa</value> </parameter> <parameter> <name>password</name> <value>sunjavaduke</value> </parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <name>url</name> <value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Project;user=sa;password=sunjavaduke;</value> </parameter> </ResourceParams> </Context> server.xml配置完成之后,就可以对数据库进行操作了,具体代码如下: <%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*,javax.naming.*,javax.sql.*" errorPage="" %> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=gb2312"> <title>连接池连接MS SQL SERVER 2000<title> </head> <body> <% out/print("使用连接池连接MS SQL SERVER 2000<br>"); out.println("<br>"); Context ctx=null; DataSource ds=null; Statment stmt=null; ResultSet rs=null; Connection con=null; ResultSetMetaData md=null; try{ ctx=new InitialContext(); ds=(DataSource)ctx.lookup("java:comp/env/jdbc/Project"); con=ds.getConnection(); stmt=con.createStatment(); rs=stmt.excuteQuery("select * from Test"); md=rs.getMetaData(); out.print(md.getColumnLabel(1)+" "); out.print(md.getColumnLabel(2)+"<br>"); while(rs.next()){ out.print(rs.getInt(1)+" "); out.print(rs.getString(2)+"<br>"); } }catch(Exception e){ out.print(e); }finally{ if(rs!=null) rs.close(); if(stmt!=null) stmt.close(); if(con!=null) con.close(); } %> </body> </html> |
3.Re:关于数据库连结池的问题? [Re: sun7bear] | Copy to clipboard |
Posted by: sunjavaduke Posted on: 2006-05-06 23:19 希望对你有些帮助。 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |