📄 dbconnection.java
字号:
/*
* Created by xuehao at Nov 29, 2005
*/
package org.indigo.db;
import java.sql.*;
import java.sql.SQLException;
import org.indigo.log.FileLoggerError;
import org.indigo.util.*;
/**
* 用于完成数据库连接的类。
* 通过在配置文件中配置参数可以完成mysql,和sql和Oracle的连接。
* 同时本类中还提供了一些对数据库操作的方法如插入,选择,删除等。
* @author wbz
*
*/
public class DBConnection
{
private static DBConnection itsInstance=new DBConnection();
private String itsJDBCDriver=null;
private String itsJDBCUrl=null;
private Connection itsRealConn = null;
/**
* 构造函数,获取数据库配置信息。
*
*
*/
private DBConnection()
{
String host,port,database,user,password,str;
boolean bMySql = true;
str = DBConfig.getInstance().getProperty( "db" ).trim();
bMySql = str.equalsIgnoreCase( "mysql" );
host = DBConfig.getInstance().getProperty( "host" ).trim();
port = DBConfig.getInstance().getProperty( "port" ).trim();
database = DBConfig.getInstance().getProperty( "database" ).trim();
user = DBConfig.getInstance().getProperty( "user" ).trim();
password = DBConfig.getInstance().getProperty( "password" ).trim();
if( !bMySql )
{
itsJDBCUrl ="jdbc:microsoft:sqlserver://";
itsJDBCUrl += host + ":";
itsJDBCUrl += port + ";";
itsJDBCUrl += "databaseName=" + database + ";";
itsJDBCUrl += "selectMethod=cursor;";
itsJDBCUrl += "User=" + user + ";Password=" + password + ";";
itsJDBCUrl += "useUnicode=true&characterEncoding=gbk;";
itsJDBCDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
}else
{
itsJDBCUrl = "jdbc:mysql://";
itsJDBCUrl += host + ":";
itsJDBCUrl += port + "/";
itsJDBCUrl += database + "?";
itsJDBCUrl += "user=" + user + "&password=" + password + "&";
itsJDBCUrl += "useUnicode=true&characterEncoding=gbk";
itsJDBCDriver = "com.mysql.jdbc.Driver";
}
// System.out.println( itsJDBCDriver );
// System.out.println( itsJDBCUrl );
try
{
Class.forName( itsJDBCDriver );
} catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
public static DBConnection getInstance()
{
return itsInstance;
}
/**
* 执行查询操作。
* @param sql sql语句。
* @return
*/
public ResultSet executeQuery( String sql )
{
ResultSet rs=null;
Statement stmt = null;
try
{
if( itsRealConn==null || itsRealConn.isClosed() )
{
itsRealConn = DriverManager.getConnection( itsJDBCUrl );
}
stmt = itsRealConn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE );
rs = stmt.executeQuery( sql );
} catch (SQLException e)
{
e.printStackTrace();
}
return rs;
}
/**
* 执行插入操作。
* @param sql sql语句
*/
public void executeInsert( String sql )
{
Statement stmt = null;
try
{
if( itsRealConn==null || itsRealConn.isClosed() )
{
itsRealConn = DriverManager.getConnection( itsJDBCUrl );
}
stmt = itsRealConn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE );
stmt.execute( sql );
} catch (SQLException e)
{
FileLoggerError.getInstance().warning( sql );
FileLoggerError.getInstance().warning( e.getMessage() );
e.printStackTrace();
}
try
{
if( stmt!=null )
{
stmt.close();
stmt = null;
}
/* if( conn!=null )
{
conn.close();
conn = null;
}
*/
} catch (SQLException e1)
{
e1.printStackTrace();
}
}
/**
* 执行更新操作。
* @param sql sql语句
*/
public void executeUpdate( String sql )
{
Statement stmt = null;
try
{
if( itsRealConn==null || itsRealConn.isClosed() )
{
itsRealConn = DriverManager.getConnection( itsJDBCUrl );
}
stmt = itsRealConn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE );
stmt.executeUpdate( sql );
} catch (SQLException e)
{
e.printStackTrace();
}
try
{
if( stmt!=null )
{
stmt.close();
stmt = null;
}
/*
if( conn!=null )
{
conn.close();
conn = null;
}
*/
} catch (SQLException e1)
{
e1.printStackTrace();
}
}
/**
* 执行删除操作。
* @param sql
* @return
*/
public boolean executeDelete( String sql )
{
boolean flag=false;
Statement stmt = null;
try
{
if( itsRealConn==null || itsRealConn.isClosed() )
{
itsRealConn = DriverManager.getConnection( itsJDBCUrl );
}
stmt = itsRealConn.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE );
flag = stmt.execute( sql );
} catch (SQLException e)
{
e.printStackTrace();
}
try
{
if( stmt!=null )
{
stmt.close();
stmt = null;
}
/*
if( conn!=null )
{
conn.close();
conn = null;
}
*/
} catch (SQLException e1)
{
e1.printStackTrace();
}
return flag;
}
/**
* 关闭数据库连接。
*
*/
public void close()
{
if( itsRealConn==null )
return;
try
{
if( itsRealConn.isClosed() )
return;
} catch (SQLException e)
{
e.printStackTrace();
}
try
{
itsRealConn.close();
} catch (SQLException e1)
{
e1.printStackTrace();
}finally
{
itsRealConn = null;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -