为了使用数据库的连接池,我尝试写了一下代码,功能很简单,就是获取,然后断开。但是代码出现问题,老是说:
无法从静态上下文中引用非静态 方法close(),请各位大大指点一下我这个新手,谢谢。
以下代码两个部分,一个是我的java语句,一个是我用来测试的jsp。
只要运行到 <%
ping.tool.DBConn.close();
%>
,马上出现错误提示,请各位大大指导,再次谢过了。这个问题困扰了我一个5。1假期了,郁闷。一、 java语句
package ping.tool;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;public class DBConn {
private Connection con;
private Statement stmt;
private ResultSet rs;
private PreparedStatement pstmt;
public static int error = 0; public static synchronized Connection getDBConn() throws Exception{
Context ctx;
DataSource ds;
try
{
ctx = new InitialContext();
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mingri" );
System.err.println();
System.err.println("数据联接"+(++error));
return ds.getConnection();
}
catch( SQLException e)
{ System.out.print(e);
throw e;
}
catch(NamingException e)
{
System.out.print(e);
throw e;
}
}
public void close()
{
try {
con = this.getDBConn();
}
catch (Exception ex1) {
} try {
con.close();
System.err.println("关闭成功");
}
catch (SQLException ex) {
}
}}二、测试jsp<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
testConn1
</title>
</head>
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP hhhhhhhh
<br>
开始获取联接
<br>
</h1>
<%
ping.tool.DBConn.getDBConn();
%>
<br>
开始测试释放联接
<%
ping.tool.DBConn.close();
%><br>
释放完毕
<br>
</body>
</html>
无法从静态上下文中引用非静态 方法close(),请各位大大指点一下我这个新手,谢谢。
以下代码两个部分,一个是我的java语句,一个是我用来测试的jsp。
只要运行到 <%
ping.tool.DBConn.close();
%>
,马上出现错误提示,请各位大大指导,再次谢过了。这个问题困扰了我一个5。1假期了,郁闷。一、 java语句
package ping.tool;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;public class DBConn {
private Connection con;
private Statement stmt;
private ResultSet rs;
private PreparedStatement pstmt;
public static int error = 0; public static synchronized Connection getDBConn() throws Exception{
Context ctx;
DataSource ds;
try
{
ctx = new InitialContext();
ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mingri" );
System.err.println();
System.err.println("数据联接"+(++error));
return ds.getConnection();
}
catch( SQLException e)
{ System.out.print(e);
throw e;
}
catch(NamingException e)
{
System.out.print(e);
throw e;
}
}
public void close()
{
try {
con = this.getDBConn();
}
catch (Exception ex1) {
} try {
con.close();
System.err.println("关闭成功");
}
catch (SQLException ex) {
}
}}二、测试jsp<%@ page contentType="text/html; charset=GBK" %>
<html>
<head>
<title>
testConn1
</title>
</head>
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP hhhhhhhh
<br>
开始获取联接
<br>
</h1>
<%
ping.tool.DBConn.getDBConn();
%>
<br>
开始测试释放联接
<%
ping.tool.DBConn.close();
%><br>
释放完毕
<br>
</body>
</html>
解决方案 »
- eclipse结合ireport
- 一个输入字符串不覆盖前字符串的问题
- 这个sql语句怎么写哈?
- Exception in thread "main" java.lang.Error: Unresolved compilation problems:
- double计算的问题...
- 求助!Java类生成可执行文件跨平台问题....
- 关于javamail.
- java程序运行初级问题,求助,急,因为太简单了!!
- 用java程序读取matlab生成的.mat文件
- jetty启动报does NOT provide an 'addTransformer(ClassFileTransformer)' method
- 帮帮忙解决一个小问题
- 文件流的系统开销
public static void close()
{
try {
con = getDBConn();
}
catch (Exception ex1) {
} try {
con.close();
System.err.println("关闭成功");
}
catch (SQLException ex) {
}
}
不知道有人写过数据连接池的连接和释放么?
有的话show一下看看。
能说的详细点么?
除了close 本身修改为 static 以及 con =this.getDBConn();之外
还有什么不对的地方?
好好看下基础,特别是static的用法!