|
这个主题共有 5 回复 / 1 页 [
]
|
|
|
|
|
|
TOMCAT的项目,是不是必须自己写数据库连接池???TOMCAT能自己配置连接池,而不需要自己写连接池了吗?请哪位高手解答一下?
|
发表: 2003年08月26日 11:21
|
回复
|
|
|
TOMCAT的项目,是不是必须自己写数据库连接池???TOMCAT能自己配置连接池,而不需要自己写连接池了吗?请哪位高手解答一下
|
|
|
|
|
|
Re: TOMCAT的项目,是不是必须自己写数据库连接池???TOMCAT能自己配置连接池,而不需要自己写连接池了吗?请哪位高手解答一下?
|
发表: 2003年08月29日 11:34
|
回复
|
|
不是,jakarta工程提供了一个已经写好的连接池DBCP, 请参考下面的http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-datasource-examples-howto.html
|
|
|
|
|
|
但是,我配置好了。datasource找到了。。。但是CONNETION连接的时候就没连上。。。
|
发表: 2003年08月30日 09:22
|
回复
|
|
但是,我配置好了。datasource找到了。。。但是CONNETION连接的时候就没连上。。我一头雾水,不知道该怎么办??哪位大虾直到一下??谢谢!! server.xml 配置: <!--<Context path="/DBTest" docBase="DBTest" debug="5" reloadable="true" crossContext="true"> --> <Context path="" docBase="ROOT" debug="0"/>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_DBTest_log." suffix=".txt" timestamp="true"/>
<Resource name="jdbc/MysqlDB" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/MysqlDB"> <parameter> <name>factory</name> <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value> </parameter>
<!-- Maximum number of dB connections in pool. Make sure you configure your mysqld max_connections large enough to handle all of your db connections. Set to 0 for no limit. --> <parameter> <name>maxActive</name> <value>100</value> </parameter>
<!-- Maximum number of idle dB connections to retain in pool. Set to 0 for no limit. --> <parameter> <name>maxIdle</name> <value>30</value> </parameter>
<!-- Maximum time to wait for a dB connection to become available in ms, in this example 10 seconds. An Exception is thrown if this timeout is exceeded. Set to -1 to wait indefinitely. --> <parameter> <name>maxWait</name> <value>10000</value> </parameter>
<!-- MySQL dB username and password for dB connections --> <parameter> <name>username</name> <value>root</value> </parameter> <parameter> <name>password</name> <value></value> </parameter>
<!-- Class name for mm.mysql JDBC driver --> <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter>
<!-- The JDBC connection url for connecting to your MySQL dB. The autoReconnect=true argument to the url makes sure that the mm.mysql JDBC Driver will automatically reconnect if mysqld closed the connection. mysqld by default closes idle connections after 8 hours. --> <parameter> <name>url</name> <value>jdbc:mysql://localhost:3306/frc?autoReconnect=true</value> </parameter> </ResourceParams> </Context>
WEB-APP ROOT下WEB。XML配置: <?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app> <display-name>Welcome to Tomcat</display-name> <!-- <description> Welcome to Tomcat </description> --> <description>MySQL Test App</description> <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/MysqlDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app> 测试程序: <%@ page contentType="text/html;charset=GBK"%>
<%@ page import="javax.naming.Context" %> <%@ page import="javax.sql.DataSource"%> <%@ page import="javax.naming.InitialContext"%> <%@ page import="java.sql.*"%> <% try{ out.println("查询数据库"+"<br>");
Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env"); //获取连接池对象
Object obj = (Object) ctx.lookup("jdbc/MysqlDB");
//类型转换
javax.sql.DataSource ds = (javax.sql.DataSource)obj;
out.println("查询数据库1"+"<br>"); Connection conn = ds.getConnection(); out.println("查询数据库2"+"<br>");
Statement stmt = conn.createStatement();
out.println("查询数据库3"+"<br>");
//String strSql = "insert into city(ciytid,ciytname,orderno) values(7,'chongqing',7) ";
//stmt.executeUpdate(strSql);
String strSql = " select ciytid,ciytname from city "; out.println("查询数据库4"+"<br>"); ResultSet rs = stmt.executeQuery(strSql); out.println("查询数据库5"+"<br>"); while(rs.next()){
out.println(rs.getInt(1)); out.println(rs.getString(2));
} out.println("查询数据库6"+"<br>"); conn.close();
}catch(Exception ex){ //out.println("错误查询数据库2!!!!!"+"<br>"); ex.printStackTrace(); } %>
只打印出来了 查询数据库 查询数据库1 错误查询数据库2!!!!!
应该是getconnection 那一步出错了??谁能告诉我错在那里?? 我用的是TOMCAT4.1.24+MYSQL4.0.14在LINUX下面的配置!!!
|
|
|
|
|
|
但是,我配置好了。datasource找到了。。。但是CONNETION连接的时候就没连上。。。
|
发表: 2003年08月30日 09:23
|
回复
|
|
但是,我配置好了。datasource找到了。。。但是CONNETION连接的时候就没连上。。我一头雾水,不知道该怎么办??哪位大虾直到一下??谢谢!! server.xml 配置: <!--<Context path="/DBTest" docBase="DBTest" debug="5" reloadable="true" crossContext="true"> --> <Context path="" docBase="ROOT" debug="0"/>
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_DBTest_log." suffix=".txt" timestamp="true"/>
<Resource name="jdbc/MysqlDB" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/MysqlDB"> <parameter> <name>factory</name> <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value> </parameter>
<!-- Maximum number of dB connections in pool. Make sure you configure your mysqld max_connections large enough to handle all of your db connections. Set to 0 for no limit. --> <parameter> <name>maxActive</name> <value>100</value> </parameter>
<!-- Maximum number of idle dB connections to retain in pool. Set to 0 for no limit. --> <parameter> <name>maxIdle</name> <value>30</value> </parameter>
<!-- Maximum time to wait for a dB connection to become available in ms, in this example 10 seconds. An Exception is thrown if this timeout is exceeded. Set to -1 to wait indefinitely. --> <parameter> <name>maxWait</name> <value>10000</value> </parameter>
<!-- MySQL dB username and password for dB connections --> <parameter> <name>username</name> <value>root</value> </parameter> <parameter> <name>password</name> <value></value> </parameter>
<!-- Class name for mm.mysql JDBC driver --> <parameter> <name>driverClassName</name> <value>com.mysql.jdbc.Driver</value> </parameter>
<!-- The JDBC connection url for connecting to your MySQL dB. The autoReconnect=true argument to the url makes sure that the mm.mysql JDBC Driver will automatically reconnect if mysqld closed the connection. mysqld by default closes idle connections after 8 hours. --> <parameter> <name>url</name> <value>jdbc:mysql://localhost:3306/frc?autoReconnect=true</value> </parameter> </ResourceParams> </Context>
WEB-APP ROOT下WEB。XML配置: <?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app> <display-name>Welcome to Tomcat</display-name> <!-- <description> Welcome to Tomcat </description> --> <description>MySQL Test App</description> <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/MysqlDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app> 测试程序: <%@ page contentType="text/html;charset=GBK"%>
<%@ page import="javax.naming.Context" %> <%@ page import="javax.sql.DataSource"%> <%@ page import="javax.naming.InitialContext"%> <%@ page import="java.sql.*"%> <% try{ out.println("查询数据库"+"<br>");
Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env"); //获取连接池对象
Object obj = (Object) ctx.lookup("jdbc/MysqlDB");
//类型转换
javax.sql.DataSource ds = (javax.sql.DataSource)obj;
out.println("查询数据库1"+"<br>"); Connection conn = ds.getConnection(); out.println("查询数据库2"+"<br>");
Statement stmt = conn.createStatement();
out.println("查询数据库3"+"<br>");
//String strSql = "insert into city(ciytid,ciytname,orderno) values(7,'chongqing',7) ";
//stmt.executeUpdate(strSql);
String strSql = " select ciytid,ciytname from city "; out.println("查询数据库4"+"<br>"); ResultSet rs = stmt.executeQuery(strSql); out.println("查询数据库5"+"<br>"); while(rs.next()){
out.println(rs.getInt(1)); out.println(rs.getString(2));
} out.println("查询数据库6"+"<br>"); conn.close();
}catch(Exception ex){ //out.println("错误查询数据库2!!!!!"+"<br>"); ex.printStackTrace(); } %>
只打印出来了 查询数据库 查询数据库1 错误查询数据库2!!!!!
应该是getconnection 那一步出错了??谁能告诉我错在那里?? 我用的是TOMCAT4.1.24+MYSQL4.0.14在LINUX下面的配置!!!
|
|
|
|
|
|
Re: TOMCAT的项目,是不是必须自己写数据库连接池???TOMCAT能自己配置连接池,而不需要自己写连接池了吗?请哪位高手解答一下?
|
发表: 2003年08月31日 20:51
|
回复
|
|
|
Tomcat 的文档里有DataSource 配置的教程。照着做就可以了,记着要用 java:comp/env/YOUR_DATASOURCE_NAME
|
|
|
|
|
|
Re: TOMCAT的项目,是不是必须自己写数据库连接池???TOMCAT能自己配置连接池,而不需要自己写连接池了吗?请哪位高手解答一下?
|
发表: 2003年09月05日 09:45
|
回复
|
|
自己写连接池,可以参考,jive源代码的连接池实现方法。
可以参考:
com.jivesoftware.forum.database.DefaultConnectionProvider
|
|
|
|