⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jdbcconnection.java

📁 很棒的web服务器源代码
💻 JAVA
字号:
// JdbcConnection.java// $Id: JdbcConnection.java,v 1.15 2001/03/13 14:08:46 ylafon Exp $// (c) COPYRIGHT MIT, INRIA and Keio, 1999.// Please first read the full copyright statement in file COPYRIGHT.htmlpackage org.w3c.tools.jdbc;import java.io.PrintStream;import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import org.w3c.util.LRUAble;public class JdbcConnection implements LRUAble {    public static final boolean debug = false;    public static final int QUERY_TIMEOUT = 5 * 60; // 5 minutes    protected long querystamp = -1;    Connection conn = null;    // LRUAble interface implementation.    protected LRUAble lru_next = null;    protected LRUAble lru_prev = null;    /**     * The server this connection is attached to.     */    protected JdbcServer  server  = null;    /**     * LRUAble interface - Get previous item in the LRU list.     * @return The previous item, or <strong>null</strong>.     */    public LRUAble getNext() {	return lru_next;    }    /**     * LRUAble interface - Get next item in the LRU list.     * @return The next item, or <strong>null</strong>.     */    public LRUAble getPrev() {	return lru_prev;    }    /**     * LRUAble interface - Set the next item for this server.     */    public void setNext(LRUAble next) {	lru_next = next;    }    /**     * LRUAble interface - Set the previous item for this server.     */    public void setPrev(LRUAble prev) {	lru_prev = prev;    }    protected final JdbcServer getServer() {	return server;    }    /**     * Mark the connection used.     * @return true if the connection is usable, false otherwise.     */    public synchronized boolean markUsed() {	try {	    if (conn != null && conn.isClosed()) {		try { conn.close(); } catch (Exception ex) {} ; // just in case		conn = null;	    }	} catch (SQLException sqlex) {	    // isClosed was not possible...	    try { conn.close(); } catch (Exception ex) {} ; // just in case	    conn = null;	}	if (conn == null) {	    try {		DriverManager.setLoginTimeout(60); // 1 minute		conn = DriverManager.getConnection(server.uri, 						   server.user,						   server.password);	    } catch (SQLException ex) {		if (debug) {		    System.err.println(ex.getMessage());		}		// not good		server.unregisterConnection(this);		server.deleteConnection(this);		return false;	    }	}	server.unregisterConnection(this);	return true;    }    public ResultSet performQuery(String command)	throws SQLException    {	if (conn != null) {	    try {		querystamp = System.currentTimeMillis();		Statement smt = conn.createStatement();		smt.setQueryTimeout(QUERY_TIMEOUT);		ResultSet set = smt.executeQuery(command);		return set;	    } finally {		querystamp = -1;	    }	}	throw new SQLException("no connection");    }    public int performUpdate(String command)	throws SQLException    {	if (conn != null) {	    try {		querystamp = System.currentTimeMillis();		Statement smt = conn.createStatement();		smt.setQueryTimeout(QUERY_TIMEOUT);		return smt.executeUpdate(command);	    } finally {		querystamp = -1;	    }	}	throw new SQLException("no connection");    }    public long getQueryStamp() {	return querystamp;    }	    public DatabaseMetaData getMetaData()     	throws SQLException    {	if (conn != null) {	    return conn.getMetaData();	}	throw new SQLException("no connection");    }    /**     * Close (if necessary) and delete this connection.     */    public void delete() {	close();	server.unregisterConnection(this);	server.deleteConnection(this);    }    public void close() {	if (conn != null) {	    try {		conn.close();	    } catch (SQLException ex) {		// abort anyway	    }	    conn = null;	}    }    public boolean isClosed() {	if (conn != null) {	    try {		return conn.isClosed();	    } catch (SQLException ex) {		return true;	    }	}	return true;    }    JdbcConnection(JdbcServer server) {	this.server = server;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -