锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
钘夌敱浠ヤ笅鐨勫嚑涓富棰橈紝鍙互澶ц嚧浜嗚ВJSF鐨勮疆寤撲笌鐗規э紝鎴戜滑鏉ョ湅鐪嬬綉欏佃璁′漢鍛樹笌搴旂敤紼嬪簭璁捐浜哄憳鍚勮礋璐d粈涔堛?br />
o 綆浠婮SF
o 絎竴涓狫SF紼嬪簭
o 綆鍗曠殑瀵艱埅 Navigation
o 瀵艱埅瑙勫垯璁劇疆
o JSF Expression Language
o 鍥介檯鍖栬鎭?/a>
Managed Beans
JSF 浣跨敤 Bean 鏉ヨ揪鍒伴昏緫灞備笌琛ㄧ幇灞傚垎紱葷殑鐩殑錛孊ean 鐨勭鐞嗛泦涓湪緇勬佹。妗堜腑錛屾偍鍙淇敼緇勬佹。妗堬紝灝卞彲浠ヤ慨鏀?Bean 涔嬮棿鐨勭浉渚濆叧緋匯?br />
o Backing Beans
o Beans 鐨勭粍鎬佷笌璁懼畾
o Beans 涓婄殑 List, Map
鏁版嵁杞崲涓庨獙璇?/strong>
杞崲鍣紙Converter錛夊崗鍔╂ā鍨嬩笌瑙嗗浘涔嬮棿鐨勬暟鎹漿鎹紝楠岃瘉鍣紙Validator錛夊崗鍔╄繘琛岃鎰忔楠岋紙Semantic Validation錛夈?br />
o 鏍囧噯杞崲鍣?/a>
o 鑷杞崲鍣?/a>
o 鏍囧噯楠岃瘉鍣?/a>
o 鑷楠岃瘉鍣?/a>
o 閿欒璁伅澶勭悊
o 鑷杞崲, 楠岃瘉鏍囩
浜嬩歡澶勭悊
JSF鐨勪簨浠舵ā鍨嬫彁渚涗竴涓繎浼肩殑妗岄潰GUI浜嬩歡妯″紡錛岃鐔熸倝GUI璁捐鐨勪漢鍛樹篃鑳藉揩閫熶笂鎵媁eb紼嬪簭璁捐銆?br />
o 鍔ㄤ綔浜嬩歡
o 瀹炴椂浜嬩歡
o 鍊煎彉浜嬩歡
o Phase 浜嬩歡
銆JSF 鏍囩
銆銆緗戦〉璁捐浜哄憳瑕佷綔鐨勫氨鏄簡瑙SF鐨勬爣絳劇殑浣跨敤鏂瑰紡錛岃繖灝卞儚鏄涔犺繘闃剁殑HTML鏍囩錛屽彟涓浠朵簨灝辨槸涓庣▼搴忚璁′漢鍛樻矡閫氬ソ鍚勪釜Bean鐨勫悕縐扮粦瀹氥?/p>
鏍囩鍏ラ棬
鍗鋒爣鐨勭浉鍏沖睘鎬ф煡璇紝鎮ㄥ彲浠ュ弬鑰?Tag Library Documentation錛岃繖杈圭殑浠嬬粛鍙槸涓浜涚畝鍗曠殑鍏ラ棬瀹炰緥銆?br />
o 綆浠婮SF鏍囧噯鏍囩
o 杈撳嚭綾繪爣絳?/a>
o 杈撳叆綾繪爣絳?/a>
o 鍛戒護綾繪爣絳?/a>
o 閫夋嫨綾繪爣絳?涓
o 閫夋嫨綾繪爣絳?浜?/a>
o 鍏跺畠鏍囩
琛ㄦ牸澶勭悊
瀵逛簬蹇呴』浣跨敤琛ㄦ牸鏂瑰紡鍛堢幇鐨勬暟鎹紝JSF 鐨?<h:dataTable> 鍗鋒爣鍗忓姪鎮ㄨ繘琛屽姩鎬佽〃鏍兼暟鎹殑杈撳嚭銆?br />
o 綆鍗曠殑琛ㄦ牸
o 琛ㄥご, 琛ㄥ熬
o TableModel 綾誨埆
銆鑷緇勪歡
銆銆JSF 璁╂偍鍙互鑷緇勪歡錛屾瘡涓粍浠墮兘鏄彲鏇挎崲鐨勶紝榪欎嬌寰楃粍浠跺湪鎼厤鏃舵洿鏈夊脊鎬э紝浣嗙浉瀵圭殑鍗翠嬌寮鍙戠粍浠剁殑榪囩▼澶嶆潅鐨勫錛岃繖杈瑰鑷JSF 緇勪歡鍙槸涓叆闂ㄧ爾錛屾洿澶氭湁鍏寵嚜璁㈢粍浠剁殑緇嗚妭鍙緱瑕佷笓涔︽潵璇存槑銆?/p>
JSF 鐢熷懡鍛ㄦ湡涓庣粍浠舵榪?/strong>
瑕佸紑鍙?JSF 緇勪歡錛屾偍闇瑕佹洿娣卞叆浜嗚В JSF 鐨勪竴浜涘鐞嗙粏鑺傦紝鍖呮嫭浜?JSF 鐢熷懡鍛ㄦ湡浠ュ強 JSF 妗嗘灦銆?br />
o JSF 鐢熷懡鍛ㄦ湡
o 姒傝堪鑷緇勪歡
綆鍗曞疄渚?/strong>
鍦ㄤ笉鑰冭檻緇勪歡鏈夊瓙緇勪歡鐨勬儏鍐典笅錛岃繖杈逛互瀹為檯鐨勪竴涓緥瀛愭潵璇存槑寮鍙戠粍浠剁殑榪囩▼錛岃嚦浜庤冭檻瀛愮粍浠剁殑鎯呭喌璇峰弬鑰冧笓涔︿粙緇嶃?br />
o 緙栫爜, 璇戠爜
o 緇勪歡鍗鋒爣
o 浣跨敤鑷緇勪歡
o 鑷 Renderer
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import org.apache.log4j.Logger;
/**
* 鏁版嵁搴撴搷浣滅鐞嗙被
*
* @author Harlyhood
*
*/
public class DBManager {
// --------------------------------------------------------- Instance
private static Logger logger = Logger.getLogger(DBManager.class);
// --------------------------------------------------------- Methods
// 鏁版嵁搴撹繛鎺ュ璞?br />
private Connection con;
// SQL璇彞瀵硅薄
private Statement stmt;
// 甯﹀弬鏁扮殑Sql璇彞瀵硅薄
private PreparedStatement pstmt;
// 璁板綍闆嗗璞?br />
private ResultSet rs;
// 鏁版嵁榪炴帴綆$悊錛堣繛鎺ユ睜瀵硅薄錛?br />
private DBConnectionManager dcm = null;
/** ***********************鎵嬪姩璁劇疆鐨勮繛鎺ュ弬鏁?******************************** */
@SuppressWarnings("unused")
private static String _DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
@SuppressWarnings("unused")
private static String _URL = "jdbc:sqlserver://localhost:1433;database=Hospital_AI_DB;characterEncoding=gb2312";
@SuppressWarnings("unused")
private static String _USER_NA = "sa";
@SuppressWarnings("unused")
private static String _PASSWORD = "";
/** ********************************************************************** */
// 榛樿鏋勯?br />
public DBManager() {
}
/** ****************************************************************************************** */
/**
* **************************************** 鏁版嵁搴撹繛鎺ュ垵濮嬪寲
* ***********************************
*/
/** ****************************************************************************************** */
/**
* 寰楀埌涓涓粯璁ょ殑鏁版嵁搴撹繛鎺浠?com.hospital.dao.tools.db.properties鏂囦歡鍒濆鍖朷
*
* @throws Exception
*/
private void getConnection() {
logger.info("###############open:::::浠庨粯璁ょ殑閰嶇疆鏂囦歡寰楀埌涓涓暟鎹簱榪炴帴");
// 鑾峰彇涓涓繛鎺ユ睜綆$悊綾葷殑瀹炰緥
dcm = DBConnectionManager.getInstance();
// 寰楀埌涓涓暟鎹簱榪炴帴
con = dcm.getConnection("mysql");
try {
con.setAutoCommit(false);
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 浠庢寚瀹氬弬鏁板緱鍒頒竴涓繛鎺ュ璞?br />
*
* @param driver
* @param url
* @param user_na
* @param password
* @throws Exception
*/
public void getConnection(String driver, String url, String user_na,
String password) throws Exception {
try {
logger.info("###############open:::::浠庢寚瀹氶厤緗腑寰楀埌涓涓暟鎹簱榪炴帴");
Class.forName(driver);
con = DriverManager.getConnection(url, user_na, password);
} catch (ClassNotFoundException ex) {
logger
.info("###############Error[com.hospital.dao.tools.DBManager^^^Method:getConnection^^^Line:81]鎵句笉鍒扮被椹卞姩綾? "
+ driver);
throw ex;
} catch (SQLException ex) {
logger
.info("###############Error[com.hospital.dao.tools.DBManager^^^Method:getConnection^^^Line:81]鍔犺澆綾? "
+ driver + " 鏃跺嚭鐜?SQLException 寮傚父");
throw ex;
}
}
/** ****************************************************************************************** */
/**
* **************************************** 鏁版嵁搴撴搷浣滄柟娉?br />
* ***********************************
*/
/** ****************************************************************************************** */
/**
* 鎵цSQL璇彞鎿嶄綔(鏇存柊鏁版嵁 鏃犲弬鏁?
*
* @param strSql
* SQL璇彞
* @throws Exception
*/
public boolean executeUpdate(String strSql) throws SQLException {
getConnection();
// getConnection(_DRIVER,_URL,_USER_NA,_PASSWORD);
boolean flag = false;
stmt = con.createStatement();
logger.info("###############::鎵цSQL璇彞鎿嶄綔(鏇存柊鏁版嵁 鏃犲弬鏁?:" + strSql);
try {
if (0 < stmt.executeUpdate(strSql)) {
close_DB_Object();
flag = true;
con.commit();
}
} catch (SQLException ex) {
logger
.info("###############Error DBManager Line126::鎵цSQL璇彞鎿嶄綔(鏇存柊鏁版嵁 鏃犲弬鏁?:"
+ strSql + "澶辮觸!");
flag = false;
con.rollback();
throw ex;
}
return flag;
}
/**
* 鎵цSQL璇彞鎿嶄綔(鏇存柊鏁版嵁 鏈夊弬鏁?
*
* @param strSql
* sql鎸囦護
* @param prams
* 鍙傛暟鍒楄〃
* @return
* @throws SQLException
*/
public boolean executeUpdate(String strSql, HashMap<Integer, Object> prams)
throws SQLException, ClassNotFoundException {
getConnection();
// getConnection(_DRIVER,_URL,_USER_NA,_PASSWORD);
boolean flag = false;
try {
pstmt = con.prepareStatement(strSql);
setParamet(pstmt, prams);
logger.info("###############::鎵цSQL璇彞鎿嶄綔(鏇存柊鏁版嵁 鏈夊弬鏁?:" + strSql);
if (0 < pstmt.executeUpdate()) {
close_DB_Object();
flag = true;
con.commit();
}
} catch (SQLException ex) {
logger
.info("###############Error DBManager Line121::鎵цSQL璇彞鎿嶄綔(鏇存柊鏁版嵁 鏃犲弬鏁?:"
+ strSql + "澶辮觸!");
flag = false;
con.rollback();
throw ex;
} catch (ClassNotFoundException ex) {
logger
.info("###############Error DBManager Line152::鎵цSQL璇彞鎿嶄綔(鏇存柊鏁版嵁 鏃犲弬鏁?:"
+ strSql + "澶辮觸! 鍙傛暟璁劇疆綾誨瀷閿欒!");
con.rollback();
throw ex;
}
return flag;
}
/**
* 鎵цSQL璇彞鎿嶄綔(鏌ヨ鏁版嵁 鏃犲弬鏁?
*
* @param strSql
* SQL璇彞
* @return 鏁扮粍瀵硅薄鍒楄〃
* @throws Exception
*/
public ArrayList<HashMap<Object, Object>> executeSql(String strSql)
throws Exception {
getConnection();
// getConnection(_DRIVER,_URL,_USER_NA,_PASSWORD);
stmt = con.createStatement();
logger.info("###############::鎵цSQL璇彞鎿嶄綔(鏌ヨ鏁版嵁):" + strSql);
rs = stmt.executeQuery(strSql);
con.commit();
if (null != rs) {
return convertResultSetToArrayList(rs);
}
close_DB_Object();
return null;
}
/**
* 鎵цSQL璇彞鎿嶄綔(鏌ヨ鏁版嵁 鏈夊弬鏁?
*
* @param strSql
* SQL璇彞
* @param prams
* 鍙傛暟鍒楄〃
* @return 鏁扮粍瀵硅薄鍒楄〃
* @throws Exception
*/
public ArrayList<HashMap<Object, Object>> executeSql(String strSql,
HashMap<Integer, Object> prams) throws Exception {
getConnection();
// getConnection(_DRIVER,_URL,_USER_NA,_PASSWORD);
pstmt = con.prepareStatement(strSql);
setParamet(pstmt, prams);
logger.info("###############::鎵цSQL璇彞鎿嶄綔(鏌ヨ鏁版嵁):" + strSql);
rs = pstmt.executeQuery();
con.commit();
if (null != rs) {
return convertResultSetToArrayList(rs);
}
return null;
}
/**
* 鎵ц瀛樺偍榪囩▼(鏌ヨ鏁版嵁 鏃犲弬鏁?
*
* @param procName
* 瀛樺偍榪囩▼鍚嶇О
* @return 鏁扮粍鍒楄〃瀵硅薄
* @throws Exception
*/
public ArrayList<HashMap<Object, Object>> executeProcedureQuery(
String procName) throws Exception {
getConnection();// 鑾峰彇榪炴帴
String callStr = "{call " + procName + "}";// 鏋勯犳墽琛屽瓨鍌ㄨ繃紼嬬殑sql鎸囦護
CallableStatement cs = con.prepareCall(callStr);
logger.info("###############::鎵ц瀛樺偍榪囩▼(鏌ヨ鏁版嵁):" + procName);
rs = cs.executeQuery();
con.commit();
cs.close();
close_DB_Object();
return convertResultSetToArrayList(rs);
}
/**
* 鎵ц瀛樺偍榪囩▼(鏌ヨ鏁版嵁,甯﹀弬鏁?榪斿洖緇撴灉闆嗗悎
*
* @param procName
* 瀛樺偍榪囩▼鍚嶇О
* @param parameters
* 鍙傛暟瀵硅薄鏁扮粍
* @param al
* 鏁扮粍鍒楄〃瀵硅薄
* @return 鏁扮粍鍒楄〃瀵硅薄
* @throws Exception
*/
public ArrayList<HashMap<Object, Object>> executeProcedureQuery(
String procName, Object[] parameters) throws Exception {
int parameterPoint = 0;
// 鑾峰彇瀛樺偍榪囩▼淇℃伅鍒楄〃闆嗗悎
ArrayList<HashMap<Object, Object>> procedureInfo = getProcedureInfo(procName);
// 鑾峰彇瀛樺偍榪囩▼鐨勫畬鍏ㄥ悕縐?br />
String procedureCallName = getProcedureCallName(procName,parameters.length);
// 鑾峰彇榪炴帴瀵硅薄
getConnection();
// 鍒濆鍖?瀛樺偍榪囩▼ 鎵ц瀵硅薄
CallableStatement cs = con.prepareCall(procedureCallName);
// 鍙傛暟涓嬫爣鍙橀噺
int index = 0;
// 鑾峰彇 瀛樺偍榪囩▼淇℃伅鍒楄〃闆嗗悎鐨?榪唬鍣?瀵硅薄
Iterator<HashMap<Object, Object>> iter = procedureInfo.iterator();
// 閬嶅巻瀛樺偍榪囩▼淇℃伅鍒楄〃闆嗗悎
while (iter.hasNext()) {
HashMap<Object, Object> hm = iter.next();
parameterPoint++;
// 濡傛灉鍙傛暟鏄緭鍏ュ弬鏁?way = 0
if (hm.get("WAY").equals("0")) {
// 璁劇疆鍙傛暟鍒癱s
cs.setObject(parameterPoint, parameters[index]);
// 鍙傛暟涓嬫爣+1
index++;
}
}
// 閲婃斁榪欎釜瀵硅薄,鍋氫負絎簩嬈′嬌鐢?br />
procedureInfo = null;
logger.info("###############::鎵ц瀛樺偍榪囩▼(鏌ヨ鏁版嵁):::::" + procedureCallName);
rs = cs.executeQuery();
con.commit();
procedureInfo = convertResultSetToArrayList(rs);
cs.close();
close_DB_Object();
return procedureInfo;
}
/**
* 鎵ц瀛樺偍榪囩▼(鏇存柊錛屾煡璇㈡暟鎹甗綆鍗曟煡璇€侀潪綰綍闆哴錛岃繑鍥炶緭鍑哄弬鏁癧闈炵邯褰曢泦])
*
* @param procName
* 瀛樺偍榪囩▼鍚嶇О
* @param parameters
* 鍙傛暟瀵硅薄鏁扮粍
* @param os
* 杈撳嚭鍙傛暟瀵硅薄鏁扮粍
* @return 杈撳嚭鍙傛暟瀵硅薄鏁扮粍
* @throws Exception
*/
public Object[] executeProcedureUpdate(String procName, Object[] parameters)
throws Exception {
logger.info("------------------------------------------------------------------------------------------------------");
logger.info(" Run --> executeProcedureUpdate ############## 姝e湪鎵ц 瀛樺偍榪囩▼: " + procName +" ##############");
CallableStatement cs = null;
Object []returnVal = null;
try {
// 鑾峰彇 瀛樺偍榪囩▼ 璋冪敤鍏ㄥ悕
String fullPCallName = getProcedureCallName(procName,parameters.length);
logger.info(" Run --> executeProcedureUpdate # 瀛樺偍榪囩▼鍛戒護: " + fullPCallName +" #");
//鑾峰彇瀛樺偍榪囩▼鍙傛暟淇℃伅
ArrayList<HashMap<Object, Object>> p_Call_Info_List = getProcedureInfo(procName);
//鑾峰彇榪炴帴
getConnection();
//鍒涘緩 瀛樺偍榪囩▼ 鎵ц瀵硅薄
cs = con.prepareCall(fullPCallName);
//鏁扮粍涓嬫爣
int index = 1;
//杈撳嚭鍙傛暟涓嬫爣 綰綍
ArrayList<Integer> outPutIndexList = new ArrayList<Integer>();
logger.info(" Run --> executeProcedureUpdate # 鍙傛暟涓暟鏄? " + parameters.length +" #");
for(HashMap<Object,Object> tempHash:p_Call_Info_List)
{
if("0".equals(tempHash.get("WAY")))
{
//璁劇疆杈撳叆鍙傛暟
cs.setObject(index, parameters[index-1]);
logger.info(" Run --> executeProcedureUpdate # 杈撳叆 Input: 緙栧彿:" + index +" 鍊? "+parameters[index-1]+" 綾誨瀷: "+parameters[index-1].getClass()+" #");
}
else
{
//娉ㄥ唽杈撳嚭鍙傛暟
cs.registerOutParameter(index, getDataType(tempHash.get("TYPENAME").toString()));
//綰綍杈撳嚭鍙傛暟鐨勪笅鏍?br />
outPutIndexList.add(index);
logger.info(" Run --> executeProcedureUpdate # 杈撳嚭 OutPut: 緙栧彿:" + index +" 鍊? "+parameters[index-1]+" 綾誨瀷: "+parameters[index-1].getClass()+" #");
}
index++;
}
logger.info(" Run --> executeProcedureUpdate # 鍙傛暟璁劇疆瀹屾瘯,姝e湪鎵ц涓?... : #");
//-------------------- 鎵ц -----------------
if(!cs.execute())
{
returnVal = new Object[outPutIndexList.size()];
logger.info(" Run --> executeProcedureUpdate # 鎵ц鎴愬姛! : #");
//鍙栬緭 鍑哄弬鏁扮殑 榪斿洖鍊?br />
for(int i = 0 ;i<outPutIndexList.size();i++)
{
returnVal[i] = cs.getObject(outPutIndexList.get(i));
logger.info(" Run --> executeProcedureUpdate # 榪斿洖鍊?"+(i+1)+" "+returnVal[i]+" #");
}
con.commit();//鎻愪氦
}
} catch (Exception e) {
logger.info(" Run --> executeProcedureUpdate # 鎵ц澶辮觸!浜嬪姟鍥炴粴涓?.. : #");
con.rollback();
throw e;
}
logger.info("------------------------------------------------------------------------------------------------------");
return returnVal;
}
/** ****************************************************************************************** */
/**
* ********************************* 灝忓伐鍏?br />
* ************************************************
*/
/** ****************************************************************************************** */
/**
* 鍏抽棴鏁版嵁瀵硅薄
*/
public void close_DB_Object() {
logger.info("###############close:::::鍏抽棴榪炴帴瀵硅薄錛岃鍙ュ璞★紝璁板綍闆嗗璞?);
if (null != rs) {
try {
rs.close();
} catch (SQLException ex) {
rs = null;
}
}
if (null != stmt) {
try {
stmt.close();
} catch (SQLException ex) {
stmt = null;
}
}
if (null != pstmt) {
try {
pstmt.close();
} catch (SQLException ex) {
pstmt = null;
}
}
if (con != null) {
dcm.freeConnection("mysql", con);
}
}
/**
* 璁劇疆Sql 鎸囦護鍙傛暟
*
* @param p_stmt
* PreparedStatement
* @param pramets
* HashMap
*/
private PreparedStatement setParamet(PreparedStatement p_stmt,
HashMap<Integer, Object> pramets) throws ClassNotFoundException,
SQLException {
// 濡傛灉鍙傛暟涓虹┖
if (null != pramets) {
// 濡傛灉鍙傛暟涓暟涓?
if (0 <= pramets.size()) {
for (int i = 1; i <= pramets.size(); i++) {
try {
// 瀛楃綾誨瀷 String
if (pramets.get(i).getClass() == Class
.forName("java.lang.String")) {
p_stmt.setString(i, pramets.get(i).toString());
}
// 鏃ユ湡綾誨瀷 Date
if (pramets.get(i).getClass() == Class
.forName("java.sql.Date")) {
p_stmt.setDate(i, java.sql.Date.valueOf(pramets
.get(i).toString()));
}
// 甯冨皵綾誨瀷 Boolean
if (pramets.get(i).getClass() == Class
.forName("java.lang.Boolean")) {
p_stmt.setBoolean(i, (Boolean) (pramets.get(i)));
}
// 鏁村瀷 int
if (pramets.get(i).getClass() == Class
.forName("java.lang.Integer")) {
p_stmt.setInt(i, (Integer) pramets.get(i));
}
// 嫻偣 float
if (pramets.get(i).getClass() == Class
.forName("java.lang.Float")) {
p_stmt.setFloat(i, (Float) pramets.get(i));
}
// 鍙岀簿搴﹀瀷 double
if (pramets.get(i).getClass() == Class
.forName("java.lang.Double")) {
p_stmt.setDouble(i, (Double) pramets.get(i));
}
} catch (ClassNotFoundException ex) {
throw ex;
} catch (SQLException ex) {
throw ex;
}
}
}
}
return p_stmt;
}
/**
* 杞崲璁板綍闆嗗璞′負鏁扮粍鍒楄〃瀵硅薄
*
* @param rs
* 綰綍闆嗗悎瀵硅薄
* @return 鏁扮粍鍒楄〃瀵硅薄
* @throws Exception
*/
private ArrayList<HashMap<Object, Object>> convertResultSetToArrayList(
ResultSet rs) throws Exception {
logger.info("###############::杞崲璁板綍闆嗗璞′負鏁扮粍鍒楄〃瀵硅薄");
// 鑾峰彇rs 闆嗗悎淇℃伅瀵硅薄
ResultSetMetaData rsmd = rs.getMetaData();
// 鍒涘緩鏁扮粍鍒楄〃闆嗗悎瀵硅薄
ArrayList<HashMap<Object, Object>> tempList = new ArrayList<HashMap<Object, Object>>();
HashMap<Object, Object> tempHash = null;
// 濉厖鏁扮粍鍒楄〃闆嗗悎
while (rs.next()) {
// 鍒涘緩閿煎闆嗗悎瀵硅薄
tempHash = new HashMap<Object, Object>();
for (int i = 0; i < rsmd.getColumnCount(); i++) {
// 閬嶅巻姣忓垪鏁版嵁錛屼互閿煎艦寮忓瓨鍦ㄥ璞empHash涓?br />
tempHash.put(rsmd.getColumnName(i + 1).toUpperCase(), rs
.getString(rsmd.getColumnName(i + 1)));
}
// 絎竴涓敭鍊煎錛屽瓨鍌ㄥ湪tempList鍒楄〃闆嗗悎瀵硅薄涓?br />
tempList.add(tempHash);
}
close_DB_Object();// 鍏抽棴鐩稿叧閾炬帴
return tempList;// 榪斿洖濉厖瀹屾瘯鐨勬暟緇勫垪琛ㄩ泦鍚堝璞?br />
}
/**
* 浠庢暟鎹簱寰楀埌瀛樺偍榪囩▼淇℃伅
*
* @param procName
* 瀛樺偍榪囩▼鍚嶇О
* @return 鏁扮粍鍒楄〃瀵硅薄
* @throws Exception
*/
private ArrayList<HashMap<Object, Object>> getProcedureInfo(String procName)
throws Exception {
return this.executeSql("select Syscolumns.isoutparam as Way,systypes.name as TypeName from sysobjects,syscolumns,systypes where systypes.xtype=syscolumns.xtype and syscolumns.id=sysobjects.id and sysobjects.name='"
+ procName + "' order by Syscolumns.isoutparam");
}
/**
* 浠庢暟鎹簱寰楀埌瀛樺偍榪囩▼鍙傛暟涓暟
*
* @param procName
* 瀛樺偍榪囩▼鍚嶇О
* @return 鏁扮粍鍒楄〃瀵硅薄
* @throws Exception
*/
@SuppressWarnings("unused")
private int getParametersCount(String procName) throws Exception {
int returnVal = 0;
for (HashMap<Object, Object> tempHas : this
.executeSql("select count(*) as RowsCount from sysobjects,syscolumns,systypes where systypes.xtype=syscolumns.xtype and syscolumns.id=sysobjects.id and sysobjects.name='"
+ procName + "'")) {
returnVal = Integer.parseInt(tempHas.get("ROWSCOUNT").toString());
}
return returnVal;
}
/**
* 寰楀埌璋冪敤瀛樺偍榪囩▼鐨勫叏鍚?br />
*
* @param procName
* 瀛樺偍榪囩▼鍚嶇О
* @return 璋冪敤瀛樺偍榪囩▼鐨勫叏鍚?br />
* @throws Exception
*/
private String getProcedureCallName(String procName, int prametCount)
throws Exception {
String procedureCallName = "{call " + procName;
for (int i = 0; i < prametCount; i++) {
if (0 == i) {
procedureCallName = procedureCallName + "(?";
}
if (0 != i) {
procedureCallName = procedureCallName + ",?";
}
}
procedureCallName = procedureCallName + ")}";
return procedureCallName;
}
/**
* 寰楀埌鏁版嵁綾誨瀷鐨勬暣鍨嬪?br />
*
* @param typeName
* 綾誨瀷鍚嶇О
* @return 鏁版嵁綾誨瀷鐨勬暣鍨嬪?br />
*/
private int getDataType(String typeName) {
if (typeName.equals("varchar"))
return Types.VARCHAR;
if (typeName.equals("int"))
return Types.INTEGER;
if (typeName.equals("bit"))
return Types.BIT;
if (typeName.equals("float"))
return Types.FLOAT;
return 0;
}
// 璁劇疆椹卞姩璺緞
@SuppressWarnings("static-access")
public void set_DRIVER(String _DRIVER) {
this._DRIVER = _DRIVER;
}
// 璁劇疆鏁版嵁搴撳瘑鐮?br />
@SuppressWarnings("static-access")
public void set_PASSWORD(String _PASSWORD) {
this._PASSWORD = _PASSWORD;
}
// 璁劇疆鏁版嵁搴撹繛鎺ュ瓧絎︿覆
@SuppressWarnings("static-access")
public void set_URL(String _URL) {
this._URL = _URL;
}
// 璁劇疆鏁版嵁搴撶敤鎴峰悕
@SuppressWarnings("static-access")
public void set_USER_NA(String _USER_NA) {
this._USER_NA = _USER_NA;
}
}