大家帮忙看一下。我这个连接池弄的对不对! 谢谢!
请大家耐心的看一下 谢谢了! 自己找例子学了好些天了。但是不知道对不对!
谢谢
1:(测试文件在ROOT文件夹中)
D:\jakarta-tomcat-5.0.28\conf\server.xml
<host> </host> 之间:
<Logger className= "org.apache.catalina.logger.FileLogger "
directory= "logs " prefix= "localhost_log. " suffix= ".txt "
timestamp= "true "/>
<Context path= " " docBase= "ROOT "
debug= "5 " reloadable= "true " crossContext= "true ">
<Logger className= "org.apache.catalina.logger.FileLogger "
directory= "logs " prefix= "localhost_log. " suffix= ".txt "
timestamp= "true "/>
<Resource name= "jdbc/connectDB "
auth= "Container "
type= "javax.sql.DataSource "/>
<ResourceParams name= "jdbc/connectDB ">
<parameter>
<name> factory </name>
<value> org.apache.commons.dbcp.BasicDataSourceFactory </value>
</parameter>
<parameter>
<name> removeAbandoned </name>
<value> true </value>
</parameter>
<parameter>
<name> removeAbandonedTimeout </name>
<value> 60 </value>
</parameter>
<parameter>
<name> logAbandoned </name>
<value> true </value>
</parameter>
<parameter>
<name> maxActive </name>
<value> 1000 </value>
</parameter>
<parameter>
<name> maxIdle </name>
<value> 30 </value>
</parameter>
<parameter>
<name> maxWait </name>
<value> 1000 </value>
</parameter>
<parameter>
<name> username </name>
<value> sa </value>
</parameter>
<parameter>
<name> password </name>
<value> tytymnty110110 </value>
</parameter>
<parameter>
<name> driverClassName </name>
<value> net.sourceforge.jtds.jdbc.Driver </value>
</parameter>
<parameter>
<name> url </name>
<value> jdbc:jtds:sqlserver://127.0.0.1:1433/airin_b2b;charset=gb2312 </value>
</parameter>
</ResourceParams>
</Context>
===========================================================================
2:
D:\jakarta-tomcat-5.0.28\webapps\ROOT\WEB-INF\web.xml
<?xml version= "1.0 " encoding= "ISO-8859-1 "?>
<web-app>
<display-name> tiannet web </display-name>
<description> connectDB test </description>
<resource-ref>
<description> DB Connection </description>
<res-ref-name> jdbc/connectDB </res-ref-name>
<res-type> javax.sql.DataSource </res-type>
<res-auth> Container </res-auth>
</resource-ref>
<welcome-file-list>
<welcome-file> index.jsp </welcome-file>
</welcome-file-list>
</web-app>
===========================================================================
3:数据连接类
import java.sql.*;
import javax.sql.*;
import java.io.*;
import java.util.*;
import javax.naming.*;
public class conn //定义类名
{
Connection con=null;
Statement st =null;
ResultSet rs=null;
InitialContext ctx;
DataSource ds = null;
String m_strDriver= "net.sourceforge.jtds.jdbc.Driver "; //驱动字符串
String m_strConURL= "jdbc:jtds:sqlserver "; //连接字符串
public conn() throws Exception
{
try{ //容错
try{
ctx = new InitialContext();
ds = (DataSource) ctx.lookup( "java:comp/env/jdbc/connectDB ");
con = ds.getConnection();
st = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
if (ctx != null) { ctx.close(); }
}catch(NamingException e){ throw e; }
}
catch(Exception e){ throw e;}
}
/**查询记录的方法*/
public ResultSet Query(String biao,String table,String tiaojian)
{
try{//必要的容错
String select = "select "+biao+ " from "+table+ " where 1=1 "+tiaojian;
rs = st.executeQuery(select);//查询结果的显示
}
catch(Exception ex)
{
System.out.print(ex.toString());//容错语句
}
return rs;
}
public int count(String table)
{
int n=0;
try{
String select = "select * from "+table;
rs = st.executeQuery(select);//查询结果的显示
while(rs.next()){ n = rs.getRow();}
}
catch(Exception ex)
{
System.out.print(ex.toString());//容错语句
}
return n;
}
/**删除记录的方法*/
public void del(String table,String tiaojian)//定义无返回类型的删除方法里面有两个变量
{ //因为删除操作只影响记录的条数
try
{
//delete from table where conn;
String delete = " delete from "+table+ " where "+tiaojian;
//定义字符串变量,把不边的写到类里,便的用变量代替
st.executeUpdate(delete);//执行删除
}catch(Exception ex){
System.out.println(ex.getMessage());
}
}
/**添加记录的方法(可以随意的添加不需要条件)*/
public void ins(String table,String zd,String zhi)
{
try
{
String insert = " insert into "+table+ " ( "+zd+ ") values ( "+zhi+ ") ";
st.executeUpdate(insert);
}
catch(Exception ex)
{
System.out.print(ex.toString());
}
}
/**修改记录*/
public void upd(String table,String zd,String tiaojian)
{
try
{
String update;//定义修改变量
update = " update "+table+ " set "+zd+ " where 1=1 "+tiaojian;
st.executeUpdate(update);
//执行修改变量语句
}
catch(Exception ex){}
}
public void close(){
try{
if(rs != null)
{
rs.close();
}
if(st != null)
{
st.close();
}
if(con!=null){
con.close();
}
}
catch(SQLException ex){}
}
}
==============================================================================
4:测试程序:
<%@ page contentType= "text/html; charset=gb2312 " language= "java " import= "java.sql.*,airinb2b.* " errorPage= " " %>
<html>
<head>
<title> Untitled Document </title>
<meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 ">
</head>
<body>
<%
conn db = new conn();
int i=0;
ResultSet rs = db.Query( "* ", "用户表 ", " ");
while(rs.next()){
i++;
out.println(i);
}
%>
</body>
</html>
==========================================================================
5:成功打印出了结果 而且Tomcat中提示:
AbandonedObjectPool is used (org.apache.commons.dbcp.AbandonedObjectPool@3468f4)
LogAbandoned: true
RemoveAbandoned: true
RemoveAbandonedTimeout: 60
=====================================================================================
请问这算是应用成功了吗?
[解决办法]
恩
[解决办法]
up
[解决办法]
...
[解决办法]
up
[解决办法]
成功了
[解决办法]
yes
[解决办法]
代码太多了,一般人很难有耐心看下去。
希望可以加一些注释。这也是一个良好的代码的风格。
[解决办法]
用admin控制台,界面设计,简单
[解决办法]
.............
[解决办法]
不错