JSP Bean的开发 DB类 主要用于连接数据库以及数据库的关闭package com.trendcom.db; import java.sql.Connection;import java.sql.Dr ... - Discuz! Board
JSP Bean的开发
DB类 主要用于连接数据库以及数据库的关闭
package com.trendcom.db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class DbBase {
public static Connection getConnection() throws Exception {
String connUrl = \"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=companyDb\";
String dbDrv = \"com.microsoft.jdbc.sqlserver.SQLServerDriver\";
String dbLogin = \"sa\";
String dbPw = \"sa\";
Connection con = null;
try {
Class.forName(dbDrv).newInstance();
con = DriverManager.getConnection(connUrl, dbLogin, dbPw);
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
/**
* 关闭一个Connection,关闭时对是否为null进行判断
*
* @param con
* 要关闭的Connection
*/
public static void closeConnection(Connection con) {
try {
if (con != null && !con.isClosed())
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 关闭一个ResultSet,关闭时对是否为null进行判断
*
* @param rs
* 要关闭的ResultSet
*/
public static void closeResultSet(ResultSet rs) {
try {
if (rs != null)
rs.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 关闭一个Statement,关闭时对是否为null进行判断
*
* @param stmt
* 要关闭的Statement
*/
public static void closeStatement(Statement st) {
try {
if (st != null)
st.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
DBUtil 主要执行SQL返回List List中的对像使用Map相对应
package com.trendcom.db;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class DBUtil extends DbBase {
@SuppressWarnings(\"unchecked\")
public static List selectCommand(String sql) throws Exception {
List list=new ArrayList();
Connection conn = getConnection();
Statement ps = null ;
ResultSet rs = null;
try{
String[] colName=getColName(sql, conn);
ps = conn.createStatement();
rs = ps.executeQuery(sql);
while(rs.next()){
Map map=new HashMap();
for(int i=1;i<colName.length;i ){
if(rs.getMetaData().getColumnType(i)==Types.TIMESTAMP){
map.put(colName,rs.getDate(i));
}else{
map.put(colName,rs.getString(i));
}
}
list.add(map);
}
}catch(Exception ex){
ex.printStackTrace();
}finally{
closeStatement(ps);
closeResultSet(rs);
closeConnection(conn);
}
return list;
}
public static String getSingleStringColumn(String sql) throws Exception {
Connection conn = getConnection();
String result=\"\";
Statement ps = null ;
ResultSet rs = null;
try {
ps = conn.createStatement();
rs = ps.executeQuery(sql);
if (rs.next()) {
result = rs.getString(1);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
closeStatement(ps);
closeResultSet(rs);
closeConnection(conn);
}
return result;
}
public static String[] getColName(String sql,Connection connection) throws Exception{
ResultSet rs;
Connection conn = connection;
Statement ps=conn.createStatement();
rs=ps.executeQuery(sql);
String[] colName=new String[rs.getMetaData().getColumnCount() 1];
for (int i = 1; i <colName.length; i ) {
colName