📄 dbconnect.java
字号:
package net.ijsp.news.database;
import java.sql.*;
import java.io.*;
import java.util.*;
import java.util.Date;
import javax.servlet.*;
import javax.servlet.http.*;
public class DBConnect extends HttpServlet {
/**
* 定义基本变量
*/
private Connection conn = null;
private Statement stmt = null;
private PreparedStatement prepstmt = null;
private static DBConnectionManager dcm = null;
private PrintWriter log;
private static Object lock = new Object();
public DBConnect() {
init();
try{
conn = dcm.getConnection();
stmt = conn.createStatement();
}catch(Exception e){
System.err.println(e);
}
}
/**
* 构造数据库的连接和访问类
* 预编译SQL语句
* @param sql SQL语句
*/
public DBConnect(String sql) throws Exception {
init();
try{
conn = dcm.getConnection();
stmt = conn.createStatement();
}catch(Exception e){
System.err.println(e);
}
this.prepareStatement(sql);
}
/**
* 关闭数据库
*/
public void close() throws Exception {
if (stmt != null) {
stmt.close();
stmt = null;
}
if (prepstmt != null) {
prepstmt.close();
prepstmt = null;
}
if (conn!=null) {
dcm.freeConnection(conn);
}
}
/**
* 立即关闭100个数据库连接
*/
public void destroyAll() throws Exception {
dcm.destroy();
}
/**
* 进行数据库连接的基本配置
*/
public void init() {
if(dcm==null) {
synchronized (lock) {
if(dcm==null) {
LoadProp lp = new LoadProp();
lp = lp.prop();
try{
// dcm = new DBConnectionManager("org.gjt.mm.mysql.Driver","jdbc:mysql://localhost/forum","root","",3,50,"C:\\conlog.txt",1,true,60,2);
dcm = new DBConnectionManager(lp.getDriver(),
lp.getUrl(),
lp.getUser(),
lp.getPassword(),
lp.getMinconn(),
lp.getMaxconn(),
lp.getLogfile(),
lp.getMaxconntime(),
false,
2,
lp.getDebug()
);
}catch(IOException ie){
System.err.println(ie);
}
}
}
}
}
public DBConnect(int resultSetType, int resultSetConcurrency)
throws Exception {
init();
try{
conn = dcm.getConnection();
stmt = conn.createStatement(resultSetType, resultSetConcurrency);
}catch(Exception e){
System.err.println(e);
}
}
public DBConnect(String sql, int resultSetType, int resultSetConcurrency)
throws Exception {
init();
this.prepareStatement(sql, resultSetType, resultSetConcurrency);
}
/**
* 返回连接
* @return Connection 连接
*/
public Connection getConnection() {
return conn;
}
/**
* PreparedStatement
* @return sql 预设SQL语句
*/
public void prepareStatement(String sql) throws SQLException {
prepstmt = conn.prepareStatement(sql);
}
public void prepareStatement(String sql, int resultSetType, int resultSetConcurrency)
throws SQLException {
prepstmt = conn.prepareStatement(sql, resultSetType, resultSetConcurrency);
}
/**
* 设置对应值
*
* @param index 参数索引
* @param value 对应值
*/
public void setString(int index,String value) throws SQLException {
prepstmt.setString(index, value);
}
public void setInt(int index,int value) throws SQLException {
prepstmt.setInt(index,value);
}
public void setBoolean(int index,boolean value) throws SQLException {
prepstmt.setBoolean(index,value);
}
// public void setDate(int index,Date value) throws SQLException {
// prepstmt.setDate(index,value);
// }
public void setLong(int index,long value) throws SQLException {
prepstmt.setLong(index,value);
}
public void setFloat(int index,float value) throws SQLException {
prepstmt.setFloat(index,value);
}
public void setBytes(int index,byte[] value) throws SQLException{
prepstmt.setBytes(index,value);
}
public void clearParameters()
throws SQLException
{
prepstmt.clearParameters();
prepstmt=null;
}
/**
* 返回预设状态
*/
public PreparedStatement getPreparedStatement() {
return prepstmt;
}
/**
* 返回状态
* @return Statement 状态
*/
public Statement getStatement() {
return stmt;
}
/**
* 执行SQL语句返回字段集
* @param sql SQL语句
* @return ResultSet 字段集
*/
public ResultSet executeQuery(String sql) throws SQLException {
if (stmt != null) {
return stmt.executeQuery(sql);
}
else return null;
}
public ResultSet executeQuery() throws SQLException {
if (prepstmt != null) {
return prepstmt.executeQuery();
}
else return null;
}
/**
* 执行SQL语句
* @param sql SQL语句
*/
public void executeUpdate(String sql) throws SQLException {
if (stmt != null)
stmt.executeUpdate(sql);
}
public void executeUpdate() throws SQLException {
if (prepstmt != null)
prepstmt.executeUpdate();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -