亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? sunsql.java

?? 本系統(tǒng)提供普通二星級(jí)酒店管理客房業(yè)務(wù)的必要功能
?? JAVA
字號(hào):
/**
 *##############################################################################
 *
 *	[ 項(xiàng)目名      ]  : 
 *  [ 公司名      ]  : SunshineSOFT
 *	[ 模塊名      ]  : 數(shù)據(jù)庫(kù)連接
 *	[ 文件名      ]  : sunsql.java
 *	[ 相關(guān)文件    ]  : 
 *	[ 文件實(shí)現(xiàn)功能]  : 連接及操作數(shù)據(jù)庫(kù)
 *	[ 作者        ]  : 顧俊
 *	[ 版本        ]  : 1.3
 *	----------------------------------------------------------------------------
 *	[ 備注        ]  : 
 *	----------------------------------------------------------------------------
 *	[ 修改記錄    ]  : 
 *
 *	[ 日  期 ]     [版本]         [修改人]         [修改內(nèi)容] 
 *	2006/03/31      1.0             顧俊            重新組織
 *	2006/04/05      1.1             顧俊            添加ODBC連接方式
 *	2006/04/08      1.2             顧俊            添加函數(shù) #A, #B, #C, #D
 *	2006/04/25      1.2             顧俊            添加函數(shù) #E
 *	##--------------------------------------------------------------------------
 *  			 版權(quán)所有(c) 2006-2007,  SunshineSOFT Corporation
 *	--------------------------------------------------------------------------##
 *	
 *	[ 函數(shù)說(shuō)明    ]  :
 *	
 *	[## private sunsql() {} ] :  
 *		功能: 防止實(shí)例化sunsql對(duì)象
 *
 *  [## public static int executeUpdate(String sql) {} ] :
 *		功能: 執(zhí)行對(duì)數(shù)據(jù)庫(kù)更改的sql命令,并返回更改所影響的行數(shù)
 *
 *  [## public static ResultSet executeQuery(String sql) {} ] :
 *		功能: 執(zhí)行對(duì)數(shù)據(jù)庫(kù)的select查詢功能,并返回查詢所得到的結(jié)果
 *
 *	[## public static int recCount(ResultSet rs)) {} ] :
 *		功能: 獲得指定結(jié)果集的記錄數(shù)量
 *
 *	[## public static long getPrimaryKey() {} ] : #A
 *		功能: 通過(guò)服務(wù)器當(dāng)前的時(shí)間獲得一個(gè)主鍵
 *
 *	[## public static void initJComboBox (JComboBox cb, String sqlCode) {} ] : #B
 *		功能: 按SQL語(yǔ)句從數(shù)據(jù)庫(kù)選出Items加入JComboBox
 *
 *	[## public static void initJList (JList jt, String sqlCode) {} ] : #E
 *		功能: 按SQL語(yǔ)句從數(shù)據(jù)庫(kù)選出數(shù)據(jù)加入JList
 *
 *	[## public static void initDTM (DefaultTableModel fdtm, String sqlCode) {} ] : #C
 *		功能: 按SQL語(yǔ)句從數(shù)據(jù)庫(kù)中獲得數(shù)據(jù)(結(jié)果集),添加到fdtm中(也可以說(shuō)JTable中)
 *
 *	[## public static int runTransaction (String updateCode[]) {} ] : #D
 *		功能: 利用事務(wù)的模式以u(píng)pdateCode中的sql語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新
 *
 *
 *  [ 遺留問(wèn)題    ]  :
 *
 *	[ 數(shù)據(jù)庫(kù)連接關(guān)閉問(wèn)題 ] : 現(xiàn)在: 只有應(yīng)用程序完全退出時(shí)數(shù)據(jù)庫(kù)連接才關(guān)閉
 *                           目的: 每次數(shù)據(jù)庫(kù)操作完成后都要關(guān)閉
 *	
 *
 *##############################################################################
 */
package com.sunshine.sunsdk.sql;

import java.sql.*;
import javax.swing.*;
import javax.swing.table.*;
import com.sunshine.sunsdk.system.*;


public class sunsql {
	
	private static Statement ste = null;
	private static Connection conn = null;
	
	static {
		try {
			if(sunini.getIniKey ("Default_Link").equals ("1")) {		//JDBC連接方式
				String user = sunini.getIniKey ("UserID");
				String pwd  = sunini.getIniKey ("Password");
				String ip   = sunini.getIniKey ("IP");
				String acc  = sunini.getIniKey ("Access");
				String dbf  = sunini.getIniKey ("DBFname");
				String url  = "jdbc:microsoft:sqlserver://" + ip + ":" + acc + ";" + "databasename=" + dbf;
				//注冊(cè)驅(qū)動(dòng)
				DriverManager.registerDriver (new com.microsoft.jdbc.sqlserver.SQLServerDriver());
				//獲得一個(gè)連接
				conn = DriverManager.getConnection (url, user, pwd);
			}
			else {
				//注冊(cè)驅(qū)動(dòng)										//JDBCODBC連接方式
				DriverManager.registerDriver (new sun.jdbc.odbc.JdbcOdbcDriver());
				//獲得一個(gè)連接
				conn = DriverManager.getConnection ("jdbc:odbc:" + sunini.getIniKey("LinkName"));
			}
			//設(shè)置自動(dòng)提交為false
			conn.setAutoCommit (false);
			//建立高級(jí)載體
			ste = conn.createStatement (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
	    }
	    catch (Exception ex) {
	    	JOptionPane.showMessageDialog (null, "數(shù)據(jù)庫(kù)連接失敗...", "錯(cuò)誤", JOptionPane.ERROR_MESSAGE);
	    	System.exit(0);
	    	//ex.printStackTrace();
	    }//End try
	}
	
	/**=======================================================================**
	 *		[## private sunsql() {} ]:		構(gòu)造函數(shù)
	 *			參數(shù)   :無(wú)
	 *			返回值 :無(wú)
	 *			修飾符 :private
	 *			功能   :防止實(shí)例化sunsql對(duì)象
	 **=======================================================================**
	 */
	private sunsql(){
	}
	
	/**=======================================================================**
	 *		[## public static int executeUpdate(String sql) {} ] :	
	 *			參數(shù)   :String 對(duì)象, 表示需要執(zhí)行的sql語(yǔ)句
	 *			返回值 :int, 表示此sql語(yǔ)句對(duì)數(shù)據(jù)庫(kù)影響了幾行
	 *			修飾符 :public static 可以不實(shí)例化對(duì)象而直接調(diào)用方法
	 *			功能   :執(zhí)行對(duì)數(shù)據(jù)庫(kù)更改的sql命令,并返回更改所影響的行數(shù)
	 **=======================================================================**
	 */
	public static int executeUpdate(String sql) {
//		System.out.println ("Update SQL : " + sql);
		int i = 0 ;
		try {
			i = ste.executeUpdate(sql) ;
			conn.commit();
		}catch(Exception e) {
			e.printStackTrace() ;
		}//End try
		return i ;
	}
	
	/**=======================================================================**
	 *		[## public static int runTransaction (String updateCode[]) {} ] :	
	 *			參數(shù)   :String[]是字符串?dāng)?shù)組, 表示需要執(zhí)行的所有sql語(yǔ)句
	 *			返回值 :int, 表示sql語(yǔ)句執(zhí)行的情況, (i==數(shù)組長(zhǎng)度)為更新成功
	 *			修飾符 :public static 可以不實(shí)例化對(duì)象而直接調(diào)用方法
	 *			功能   :利用事務(wù)的模式以u(píng)pdateCode中的sql語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新
	 **=======================================================================**
	 */
	public static int runTransaction (String updateCode[]) {
		int ok = 0, i = 0;
		int row = updateCode.length;		//更新語(yǔ)句的數(shù)量
		try {
			for (i = 0; i < row; i++) {
				ok = ste.executeUpdate (updateCode[i]);		//執(zhí)行SQL語(yǔ)句
				if(ok == 0) {				//如果不成功,則跳出循環(huán)
					System.out.println ("sunsql.runTransaction(): updateCode[" + i + "] 失敗" + ok);
					break;
				}
				System.out.println ("sunsql.runTransaction(): updateCode[" + i + "] 成功 " + ok);
			}
			//根據(jù)變量 ok 判斷上面循環(huán)是否正常運(yùn)行完畢
			if(ok == 0) {
				conn.rollback ();		//(ok == 0)表示更新過(guò)程中出錯(cuò),回滾數(shù)據(jù)
				System.out.println ("sunsql.runTransaction(): Update data false, rollback");
			}
			else {
				conn.commit ();			//(ok != 0)基本上是所有SQL語(yǔ)句運(yùn)行成功, 則提交給數(shù)據(jù)庫(kù)
				System.out.println ("sunsql.runTransaction(): Update finish");
			}
		}
	    catch (Exception ex) {
	    	System.out.println ("sunsql.runTransaction(): Update false ...");
	    }
		return i;
	}
	
	/**=======================================================================**
	 *		[## public static ResultSet executeQuery(String sql) {} ] :
	 *			參數(shù)   :String 對(duì)象, 表示需要執(zhí)行的sql語(yǔ)句
	 *			返回值 :ResultSet對(duì)象, 表示此查詢語(yǔ)句返回的結(jié)果集
	 *			修飾符 :public static 可以不實(shí)例化對(duì)象而直接調(diào)用方法
	 *			功能   :執(zhí)行對(duì)數(shù)據(jù)庫(kù)的select查詢功能,并返回查詢所得到的結(jié)果
	 **=======================================================================**
	 */
	public static ResultSet executeQuery(String sql) {
//		System.out.println ("Query SQL : " + sql);
		ResultSet rs = null ;
		try {
			rs = ste.executeQuery(sql) ;
		}catch(Exception e) {
			e.printStackTrace() ;
		}//End try
		return rs ;
	}
	
	/**=======================================================================**
	 *		[## public static int recCount(ResultSet rs)) {} ] :
	 *			參數(shù)   :ResultSet 對(duì)象, 表示目標(biāo)結(jié)果集
	 *			返回值 :int, 表示結(jié)果集中的記錄個(gè)數(shù)
	 *			修飾符 :public static 可以不實(shí)例化對(duì)象而直接調(diào)用方法
	 *			功能   :獲得指定結(jié)果集的記錄數(shù)量
	 **=======================================================================**
	 */
	public static int recCount(ResultSet rrs) {
		int i = 0;
		try {
			if(rrs.getRow() != 0)
				rrs.beforeFirst();
			//while用于計(jì)算rs的記錄條數(shù)
			while(rrs.next())
				i++;
			rrs.beforeFirst();	
	    }catch(Exception ex) {
	    	ex.printStackTrace();
	    }//End try
		return i;
	}
	
	/**=======================================================================**
	 *		[## public static long getPrimaryKey() {} ] :
	 *			參數(shù)   :無(wú)
	 *			返回值 :long, 表示從服務(wù)器獲得的主鍵
	 *			修飾符 :public static 可以不實(shí)例化對(duì)象而直接調(diào)用方法
	 *			功能   :通過(guò)服務(wù)器當(dāng)前的時(shí)間獲得一個(gè)主鍵
	 **=======================================================================**
	 */
	public static long getPrimaryKey() {
		long pk = 0;
		
		try {
			//獲得服務(wù)器時(shí)間
			ResultSet rs = executeQuery("select getdate()");
			rs.next();
			pk = rs.getTimestamp(1).getTime();
	    }
	    catch (Exception ex) {
	    	System.out.println ("sunsql.getPrimaryKey (): false");
	    }
	    return pk;
	}
	
	/**=======================================================================**
	 *		[## public static void initJComboBox (JComboBox cb, String sqlCode) {} ] :
	 *			參數(shù)   :JComboBox表示要加數(shù)據(jù)的下拉框, String對(duì)象表示一條SQL語(yǔ)句
	 *			返回值 :JComboBox, 表示返回一個(gè)加好Item的JComboBox對(duì)象
	 *			修飾符 :public static 可以不實(shí)例化對(duì)象而直接調(diào)用方法
	 *			功能   :按SQL語(yǔ)句從數(shù)據(jù)庫(kù)選出Items加入JComboBox
	 **=======================================================================**
	 */
	public static void initJComboBox (JComboBox cb, String sqlCode) {
		cb.removeAllItems();
		try {
			ResultSet rs = executeQuery (sqlCode);
			int row = recCount (rs);
			rs.beforeFirst ();
			//從結(jié)果集中取出Item加入JComboBox中
			for (int i = 0; i < row; i++) {
				rs.next();
				cb.addItem (rs.getString (1));
		    }
	    }
	    catch (Exception ex) {
	    	System.out.println ("sunsql.initJComboBox (): false");
	    }
	}
	
	/**=======================================================================**
	 *		[## public static void initJList (JList jt, String sqlCode) {} ] :
	 *			參數(shù)   :JList表示要加數(shù)據(jù)的列表框, String對(duì)象表示一條SQL語(yǔ)句
	 *			返回值 :無(wú)
	 *			修飾符 :public static 可以不實(shí)例化對(duì)象而直接調(diào)用方法
	 *			功能   :按SQL語(yǔ)句從數(shù)據(jù)庫(kù)選出數(shù)據(jù)加入JList
	 **=======================================================================**
	 */
	public static void initJList (JList jt, String sqlCode) {
		try {
			ResultSet rs = executeQuery (sqlCode);
			int row = recCount (rs);
			String list[] = new String[row];
			//從結(jié)果集中取出數(shù)據(jù)存入數(shù)組中
			for (int i = 0; i < row; i++) {
				rs.next();
				list[i] = rs.getString(1);
		    }//Endfor
		    jt.setListData(list);	//初始化List
	    }
	    catch (Exception ex) {
	    	System.out.println ("sunsql.initJList(): false");
	    }//Endtry
	}
	
	/**=======================================================================**
	 *		[## public static void initDTM (DefaultTableModel fdtm, String sqlCode) {} ] :
	 *			參數(shù)   :DefaultTableModel對(duì)象表示要添充數(shù)據(jù)的表模式
	 *					 String對(duì)象表示一條SQL語(yǔ)句
	 *			返回值 :無(wú)
	 *			修飾符 :public static 可以不實(shí)例化對(duì)象而直接調(diào)用方法
	 *			功能   :按SQL語(yǔ)句從數(shù)據(jù)庫(kù)中獲得數(shù)據(jù),添加到fdtm中(也可以說(shuō)JTable中)
	 **=======================================================================**
	 */
	public static void initDTM (DefaultTableModel fdtm, String sqlCode) {
		try {
			ResultSet rs = executeQuery( sqlCode );	//獲得結(jié)果集
			int row = recCount( rs );				//獲得結(jié)果集中有幾行數(shù)據(jù)
			ResultSetMetaData rsm =rs.getMetaData();	//獲得列集
			int col = rsm.getColumnCount();		//獲得列的個(gè)數(shù)
			String colName[] = new String[col];
			//取結(jié)果集中的表頭名稱(chēng), 放在colName數(shù)組中
			for (int i = 0; i < col; i++) {
				colName[i] = rsm.getColumnName( i + 1 );
			}//End for
			rs.beforeFirst();
			String data[][] = new String[row][col];
			//取結(jié)果集中的數(shù)據(jù), 放在data數(shù)組中
			for (int i = 0; i < row; i++) {
				rs.next();
				for (int j = 0; j < col; j++) {
					data[i][j] = rs.getString (j + 1);
					//System.out.println (data[i][j]);
			    }
			}//End for
			fdtm.setDataVector (data, colName);
	    }
	    catch (Exception ex) {
	    	System.out.println ("sunsql.initDTM (): false");
	    }//End try
	}

}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩电影在线一区二区三区| 欧美亚洲国产怡红院影院| 蓝色福利精品导航| 日韩二区三区四区| 日韩激情av在线| 视频一区国产视频| 天天av天天翘天天综合网| 丝袜国产日韩另类美女| 免费观看久久久4p| 久久99久久精品| 久久国产三级精品| 国产麻豆9l精品三级站| 国产激情精品久久久第一区二区 | 亚洲va在线va天堂| 亚洲一区二区三区四区中文字幕| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲综合色自拍一区| 亚洲18色成人| 蜜桃视频在线观看一区| 国产精品影视天天线| 成人美女视频在线观看| 日本韩国欧美一区二区三区| 欧美日韩卡一卡二| 日韩亚洲国产中文字幕欧美| 久久只精品国产| 成人欧美一区二区三区在线播放| 一区二区三区在线免费| 免费看欧美美女黄的网站| 国产久卡久卡久卡久卡视频精品| www.66久久| 欧美日韩一卡二卡| 久久久综合视频| 亚洲三级在线免费观看| 亚洲成人av一区二区三区| 激情另类小说区图片区视频区| 国产精品夜夜爽| 在线免费观看日韩欧美| 欧美mv日韩mv| 日韩毛片高清在线播放| 婷婷夜色潮精品综合在线| 国产精品系列在线播放| 欧美性欧美巨大黑白大战| 欧美电影免费观看高清完整版在| 中文字幕精品一区二区精品绿巨人 | 国产精品一区在线| 91麻豆免费观看| 日韩欧美中文一区二区| 中文字幕一区二区三区四区不卡 | 国产在线播精品第三| 99视频一区二区| 欧美一区二区三区日韩视频| 欧美激情资源网| 日韩中文字幕一区二区三区| 东方欧美亚洲色图在线| 欧美区一区二区三区| 国产精品色在线| 日本欧美加勒比视频| 色综合天天综合网天天看片| 精品久久久久99| 亚洲黄色片在线观看| 国产做a爰片久久毛片| 欧美日韩国产免费一区二区| 国产精品情趣视频| 精品在线免费视频| 欧美美女直播网站| 亚洲人123区| 国产91综合网| 欧美v日韩v国产v| 亚洲高清不卡在线观看| caoporn国产精品| 久久蜜桃av一区二区天堂| 亚洲国产成人高清精品| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 欧美色电影在线| 国产精品久久久久天堂| 国产一区二区三区四区五区入口 | 91成人在线精品| 国产色产综合产在线视频| 日韩精品一二区| 在线观看视频91| 中文字幕制服丝袜一区二区三区 | 国产精品夜夜嗨| 亚洲黄色尤物视频| 国产91丝袜在线观看| 精品国产91久久久久久久妲己| 亚洲国产精品嫩草影院| 91丨porny丨户外露出| 国产精品美女久久久久久久| 国产米奇在线777精品观看| 欧美一区二区私人影院日本| 亚洲地区一二三色| 欧美日韩国产小视频| 亚洲自拍偷拍av| 欧美午夜精品久久久久久孕妇| 亚洲免费观看高清完整版在线 | 日韩不卡一区二区| 欧美私模裸体表演在线观看| 亚洲欧美日韩国产另类专区| eeuss鲁片一区二区三区| 国产精品素人视频| www.欧美日韩| 亚洲欧美激情插| 在线看国产一区二区| 亚洲精品v日韩精品| 日本高清无吗v一区| 亚洲美女视频在线观看| 色噜噜狠狠一区二区三区果冻| 亚洲少妇中出一区| 欧美艳星brazzers| 香蕉av福利精品导航| 欧美一区二区免费观在线| 久久精品国产网站| 久久久久久久久久久电影| 国产v综合v亚洲欧| 亚洲人成伊人成综合网小说| 91福利社在线观看| 日韩黄色在线观看| 26uuuu精品一区二区| 成人h版在线观看| 亚洲女人小视频在线观看| 欧美日韩视频专区在线播放| 日韩国产精品久久久久久亚洲| 日韩一卡二卡三卡四卡| 国产一区二区三区免费| 狠狠色狠狠色合久久伊人| 久久综合九色综合欧美亚洲| 成人国产精品免费观看视频| 亚洲另类春色校园小说| 91精品国产综合久久福利软件| 激情综合网天天干| 国产精品久久久久一区| 欧美日韩在线精品一区二区三区激情| 日韩1区2区日韩1区2区| 国产农村妇女毛片精品久久麻豆 | 久久久一区二区| 99精品热视频| 日本女优在线视频一区二区| 久久精品日产第一区二区三区高清版 | 亚洲婷婷综合久久一本伊一区 | 中文字幕国产精品一区二区| 色菇凉天天综合网| 捆绑变态av一区二区三区| 国产精品毛片无遮挡高清| 欧美日韩一区二区三区在线| 国内精品伊人久久久久av影院| 中文字幕亚洲不卡| 欧美一级日韩不卡播放免费| 大桥未久av一区二区三区中文| 亚洲二区在线观看| 国产日韩欧美在线一区| 欧美午夜不卡在线观看免费| 精品一二线国产| 一区二区三区四区视频精品免费 | 久久亚洲捆绑美女| 99精品欧美一区二区三区小说| 全国精品久久少妇| 亚洲欧洲日韩在线| 欧美xxxxx牲另类人与| 在线亚洲免费视频| 国产一区二区三区四区在线观看| 亚洲午夜精品网| 亚洲国产高清aⅴ视频| 欧美精品乱码久久久久久按摩| 成人精品视频一区二区三区| 免费成人在线观看| 亚洲一线二线三线视频| 国产女主播视频一区二区| 欧美福利电影网| 色哟哟国产精品| 国产·精品毛片| 久久精品噜噜噜成人88aⅴ| 亚洲一区二区三区四区在线免费观看| 国产色一区二区| 精品日韩在线观看| 3d成人动漫网站| 欧美在线观看禁18| av电影一区二区| 国产精品系列在线播放| 看电视剧不卡顿的网站| 午夜久久久久久久久久一区二区| 亚洲天堂久久久久久久| 国产欧美一区二区精品仙草咪| 日韩一区二区视频| 欧亚一区二区三区| 一本色道久久综合亚洲精品按摩| 国产福利电影一区二区三区| 麻豆成人av在线| 免费久久精品视频| 日日嗨av一区二区三区四区| 亚洲情趣在线观看| 美女网站色91| 日本女人一区二区三区| 偷拍日韩校园综合在线| 亚洲午夜电影网| 亚洲一二三四在线观看| 夜夜嗨av一区二区三区网页| 亚洲乱码国产乱码精品精可以看| 一区免费观看视频| 国产精品久久久爽爽爽麻豆色哟哟| 国产欧美精品区一区二区三区|