📄 dbconnectionmanager.java
字号:
package com.susssoft.richjl.dboperation;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
//import javax.naming.Context;
//import javax.naming.InitialContext;
//import javax.naming.NamingException;
import javax.sql.DataSource;
import org.apache.log4j.Logger;
/**
* 此类的主要作用是进行数据库的连接,产生记录集等操作
* @author 付祖远
*/
public class DBConnectionManager {
private static final Logger log = Logger.getLogger(DBConnectionManager.class);
private static Connection conn = null;
private Statement stmt = null;
private CallableStatement cstmt = null;
private DataSource ds = null;
/**
* 产生一个连接
* @return Connection
*/
public Connection getConn(){
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DataBaseName=remoterichjl";
conn = java.sql.DriverManager.getConnection(url, "litian", "litian123");
} catch (ClassNotFoundException e) {
log.error("产生连接时出现错误(未找到相应驱动):" + e);
} catch (SQLException e) {
log.error("产生连接时出现错误:" + e);
}
return conn;
// try{
// Context initCtx=new InitialContext();
// Context envCtx = (Context) initCtx.lookup("java:comp/env");
// DataSource ds =(DataSource) envCtx.lookup("jdbc/richjlDB");
// conn=ds.getConnection();
// } catch (NamingException e){
// log.error("得到数据源的时候出错:" + e);
// } catch (SQLException e) {
// log.error("产生SQL异常:" + e);
// }
// return conn;
}
/**
* 根据SQL语句产生一个记录集
* @param sql
* @return ResultSet
*/
public ResultSet getRs(String sql){
ResultSet rs = null;
try{
this.getConn();
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
} catch(SQLException e){
log.error("产生记录集的时候发生错误:" + e);
}
return rs;
}
/**
* 根据SQL语句执行更新操作,包括删除和更新
* @param sql
* @return 返回行数
*/
public int execUpdate(String sql){
int returnValue = 0;
try{
this.getConn();
stmt = conn.createStatement();
returnValue = stmt.executeUpdate(sql);
} catch(SQLException e){
log.error("进行数据库操作的时候出错:" + e);
}
return returnValue;
}
/**
* 包含事务处理的更新操作,包括删除和更新
* @param sql
* @return 返回行数
*/
public int[] execUpdateTran(String[] sql){
int[] returnValue = {0,0};
try{
this.getConn();
stmt = conn.createStatement();
conn.setAutoCommit(false);
for(int i=0;i<sql.length;i++){
returnValue[0] = returnValue[0] + stmt.executeUpdate(sql[i]);
returnValue[1]++;
}
conn.commit();
} catch(SQLException e){
log.error("进行数据库操作的时候出错(含事务处理):" + e);
}
return returnValue;
}
/**
* 关闭连接数据库中产生的所有连接,记录集统一在外面关闭,此处不涉及记录集的关闭
*/
public void closeConn(){
try{
if(stmt !=null){
stmt.close();
}
if(conn != null){
conn.close();
}
} catch(SQLException e){
log.error("关闭连接的时候产生错误:" + e);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -