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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? datautil.java~2~

?? JFrame-----java系統通用框架 可以研究一下哦
?? JAVA~2~
?? 第 1 頁 / 共 2 頁
字號:
package com.corp.bisc.ebiz.util;

import java.util.*;
import java.sql.*;
import java.io.*;

/**
 * DataObject類是用于派生來源于數據庫的數據對象。利用DataObject提供
 * 的機制,派生的數據對象類可比較簡便的實現從數據庫中取出數值,將數據
 * 對象的數值插入或更新到數據庫等功能。
 *
 * @author: Jim, Yang Jiang Ming
 */
public abstract class DataUtil {
	boolean m_bDebug = false;

	/** 該對象是否新創建,不存在于數據庫中 */
	protected boolean m_bIsNewDataObject;

	/** 若該數據對象是由另一對象用loadObjects()方法創建的,該域指明創建者 */
	protected DataUtil m_objCreator;

	/**
	 * 缺省構造函數,創建一個新的數據對象。
	 */
	public DataUtil() {
		initNewObject();

		m_bIsNewDataObject = true;
	}
	/**
	 * 構造函數,用strWhere限定的條件從數據庫中取出第一個符合條件
	 * 的結果,初始化數據對象。
	 * @param conn Connection 到數據庫的連接
	 * @param strWhere String 限定條件
	 */
	public DataUtil(Connection conn, String strWhere) throws Exception {
		m_bIsNewDataObject = true;

		initNewObject();

		load(conn, strWhere);
	}
	/**
	 * 從數據庫中刪除符合指定條件的數據對象。
	 * @param conn Connection 到數據庫的連接
	 * @param strWhere String 刪除條件
	 */
	public void delete(Connection conn, String strWhere) throws Exception {
		boolean bAutoCommit = conn.getAutoCommit();
		conn.setAutoCommit(false);

		try {
			Statement stmt;
			String str;

			if (sqlDelete() == null)
				throw new Exception("試圖在不支持刪除的數據對象上執行刪除操作。");

			str = sqlDelete().toUpperCase();

			if (str.indexOf(" WHERE ") != -1)
				str = str + " AND " + strWhere;
			else
				str = str + " WHERE " + strWhere;

			//刪除
			stmt = conn.createStatement();
			stmt.executeUpdate(str);
			stmt.close();

			conn.commit();
		} catch (Exception e) {
			throw e;
		} finally {
			conn.rollback();
			conn.setAutoCommit(bAutoCommit);
		}
	}
	public void dump(PrintStream out) {
	}
	/**
	 * 將字符串中的"'"替換為"''"。
	 * 處理后的字符串可以用于拼接成要執行的SQL語句。
	 *
	 * @param str String 要處理的字符串
	 */
	static public String fixDBString(String str) {
		if (str == null)
			return "";

		if (str.indexOf('\'') == -1)
			return str;

		int strLen = str.length();
		StringBuffer sb = new StringBuffer();
		char c;

		for (int i = 0; i < strLen; i++) {
			c = str.charAt(i);
			sb.append(c);
			if (c == '\'') {
				sb.append('\'');
			}
		}

		return sb.toString();
	}
	/**
	 * 將字符串中的"'"替換為"''",將超出長度的字符截去。
	 * 處理后的字符串可以用于拼接成要執行的SQL語句。
	 *
	 * @param str String 要處理的字符串
	 * @param dbLen int 長度
	 */
	protected String fixDBString(String str, int dbLen) {
		if (str == null) {
			return "";
		}

		int strLen = str.length();
		int len = 0;
		StringBuffer sb = new StringBuffer();
		char c;

		for (int i = 0; i < strLen; i++) {
			c = str.charAt(i);
			if (Character.UnicodeBlock.of(c) == Character.UnicodeBlock.BASIC_LATIN) {
				len++;
			} else {
				len += 2;
			}
			if (c == '\'') {
				len++;
			}
			if (len > dbLen) {
				break;
			}
			sb.append(c);
			if (c == '\'') {
				sb.append('\'');
			}
		}

		return sb.toString();
	}
	/**
	 * 將超出長度的字符串截去。
	 * 處理后的字符串可以用來準備PreparedStatement。
	 *
	 * @param str String 要處理的字符串,可以為null
	 * @param dbLen int 長度
	 */
	protected String fixLen(String str, int dbLen) {
		if (str == null)
			return null;

		int strLen = str.length();
		if (strLen * 2 < dbLen)
			return str;

		int len = 0;
		StringBuffer sb = new StringBuffer();
		char c;

		for (int i = 0; i < strLen; i++) {
			c = str.charAt(i);
			if (Character.UnicodeBlock.of(c) == Character.UnicodeBlock.BASIC_LATIN) {
				len++;
			} else {
				len += 2;
			}
			if (len > dbLen) {
				break;
			}
			sb.append(c);
		}

		return sb.toString();
	}
	/**
	 * 用于實現從數據庫中讀出數據對象。
	 * 從由sqlSelect(), sqlFrom(), sqlWhere()構造的SQL語句執行后產生的
	 * 結果集中取出數據。
	 * @param conn Connection 到數據庫的連接
	 * @param rs ResultSet 包含數據對象數據的結果集
	 */
	protected void getFromResultSet(Connection conn, ResultSet rs)
		throws Exception {
	}
	protected void initNewObject() {
		m_objCreator = null;
	}
	/**
	 * 判斷對象是否為新的數據對象(不是從數據庫中讀取出來的)
	 * @return boolean 如果對象不是從數據庫中讀取出來的,返回true,否則false
	 */
	public boolean isNewDataObject() {
		return m_bIsNewDataObject;
	}
	/**
	 * 用strWhere限定的條件從數據庫中取出第一個符合條件的結果,填入當前對象
	 * @param conn Connection 到數據庫的連接
	 * @param strWhere String 限定條件
	 */
	public boolean load(Connection conn, String strWhere) throws Exception {
		boolean bLoaded = true;
		Statement stmt;
		ResultSet rs;

		if (sqlFrom() == null)
			throw new Exception("試圖在不支持從數據庫讀取的數據對象上執行讀取操作。");

		//構造Where子句
		String strFullWhere = sqlWhere();

		if (strWhere != null)
			if (!strWhere.equals(""))
				if (!strFullWhere.equals(""))
					strFullWhere = strFullWhere + " and " + strWhere;
				else
					strFullWhere = strWhere;

		//取出對象
		stmt = conn.createStatement();
		rs =
			stmt.executeQuery(
				"select "
					+ sqlSelect()
					+ " from "
					+ sqlFrom()
					+ (strFullWhere.equals("") ? "" : " where " + strFullWhere)
					+ (sqlOrder().equals("") ? "" : " order by " + sqlOrder()));
		if (rs.next())
			getFromResultSet(conn, rs);
		else {
			bLoaded = false;
			System.out.println("CAUTION: Try to load object but failed.");
			System.out.println("Load from: " + sqlFrom());
			System.out.println("By: " + strWhere);
		}

		rs.close();
		stmt.close();

		if (bLoaded) {
			m_bIsNewDataObject = false;
			objectLoaded(conn);
		}

		return bLoaded;
	}
	/**
	 * 從數據庫中讀出所有數據對象
	 * @param conn Connection 到數據庫的連接
	 * @return Vector 所有數據對象
	 */
	public Vector loadObjects(Connection conn) throws Exception {
		return loadObjects(conn, "");
	}
	/**
	 * 從數據庫中讀出所有符合條件的數據對象
	 * @param conn Connection 到數據庫的連接
	 * @param String strWhere 查找條件
	 * @return Vector 符合條件的所有數據對象
	 */
	public Vector loadObjects(Connection conn, String strWhere) throws Exception {
		Statement stmt;
		ResultSet rs;
		Vector vec = new Vector();

		if (sqlFrom() == null)
			throw new Exception("試圖在不支持從數據庫讀取的數據對象上執行讀取操作。");

		//構造Where子句
		String strFullWhere = sqlWhere();

		if (strWhere != null)
			if (!strWhere.equals(""))
				if (!strFullWhere.equals(""))
					strFullWhere = strFullWhere + " and " + strWhere;
				else
					strFullWhere = strWhere;

		//{構造列表
		stmt = conn.createStatement();
		rs =
			stmt.executeQuery(
				"select "
					+ sqlSelect()
					+ " from "
					+ sqlFrom()
					+ (strFullWhere.equals("") ? "" : " where " + strFullWhere)
					+ (sqlOrder().equals("") ? "" : " order by " + sqlOrder()));

		//取出對象
		DataUtil dataObject;
		while (rs.next()) {
			dataObject = (DataUtil) getClass().newInstance();
			dataObject.objectCreated(this);
			dataObject.getFromResultSet(conn, rs);
			dataObject.m_bIsNewDataObject = false;
			vec.add(dataObject);
		}

		rs.close();
		stmt.close();
		//}

		for (int i = 0; i < vec.size(); i++)
			 ((DataUtil) vec.elementAt(i)).objectLoaded(conn);

		return vec;
	}
	/**
	 * 將數據庫中符合指定條件的數據對象分頁,取出位于指定頁面的數據對象。
	 * @param conn Connection 到數據庫的連接
	 * @param String strWhere 查找條件
	 * @param itemsPerPage 每頁包含對象數
	 * @param pageNo 要取出的頁面號,從1開始
	 */
	public DataObjectList loadObjects(
		Connection conn,
		String strWhere,
		int itemsPerPage,
		int pageNo)
		throws Exception {
		return loadObjects(conn, strWhere, itemsPerPage, pageNo, true);
	}
	/**
	 * 將數據庫中符合指定條件的數據對象分頁,取出位于指定頁面的數據對象。
	 * @param conn Connection 到數據庫的連接
	 * @param String strWhere 查找條件
	 * @param itemsPerPage 每頁包含對象數
	 * @param pageNo 要取出的頁面號,從1開始
	 * @param fixPageNo boolean 為true表示如果指定的pageNo不在目前分頁范圍內,
	 * 則將其調整到最接近的值;為false時不調整,返回的DataObjectList的列表為空。
	 */
	public DataObjectList loadObjects(
		Connection conn,
		String strWhere,
		int itemsPerPage,
		int pageNo,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情文学综合丁香| 中文字幕亚洲一区二区va在线| 亚洲人午夜精品天堂一二香蕉| 国产高清视频一区| 久久综合狠狠综合久久激情| 理论片日本一区| 国产人成一区二区三区影院| 粉嫩av一区二区三区| 综合在线观看色| 欧美影片第一页| 奇米在线7777在线精品| 日韩免费高清av| 国产精品亚洲第一| 成人免费在线播放视频| 色狠狠色狠狠综合| 日韩电影免费在线看| 久久综合资源网| 99视频精品免费视频| 亚洲一区二区三区爽爽爽爽爽| 91精品国产综合久久蜜臀| 国产一区二区三区观看| 欧美经典一区二区三区| 99re这里都是精品| 亚洲国产欧美在线人成| 日韩精品一区二区三区视频播放| 国产成人鲁色资源国产91色综| 亚洲色图第一区| 欧美一区二区三区电影| 成人性生交大片| 日韩精品一区第一页| 国产人久久人人人人爽| 欧美亚洲国产一区二区三区va| 奇米综合一区二区三区精品视频| 欧美国产欧美亚州国产日韩mv天天看完整| 99久久久久久| 老司机免费视频一区二区| 亚洲欧洲日韩一区二区三区| 69堂成人精品免费视频| 成人黄色电影在线| 免费高清在线视频一区·| 国产精品久久久久永久免费观看 | 这里只有精品免费| 国产精品 日产精品 欧美精品| 亚洲特级片在线| 日韩欧美第一区| 91欧美一区二区| 国产伦精品一区二区三区视频青涩 | 亚洲欧美日韩国产一区二区三区| 这里只有精品99re| 91久久免费观看| 成人一区二区在线观看| 奇米影视在线99精品| 亚洲一区二区三区四区五区中文| 国产日韩欧美精品在线| 日韩三级中文字幕| 欧美日韩一区小说| 99久久er热在这里只有精品66| 久久av老司机精品网站导航| 亚洲高清免费一级二级三级| 国产精品视频免费看| 2024国产精品| 日韩一卡二卡三卡| 欧美剧情电影在线观看完整版免费励志电影 | 97aⅴ精品视频一二三区| 精品在线免费视频| 日韩福利电影在线观看| 午夜精品一区二区三区电影天堂 | 国产做a爰片久久毛片| 日韩高清不卡一区二区| 亚洲成人av中文| 亚洲宅男天堂在线观看无病毒| 国产精品久久久久久久久久免费看 | 久久久高清一区二区三区| 日韩一级二级三级精品视频| 精品国产伦一区二区三区观看方式 | 麻豆国产精品官网| 日本不卡高清视频| 日产精品久久久久久久性色| 亚洲午夜精品17c| 亚洲自拍偷拍图区| 亚洲成人在线网站| 亚洲成av人片在线观看| 午夜精品久久久久久久99樱桃| 夜色激情一区二区| 亚洲线精品一区二区三区八戒| 1024亚洲合集| 亚洲综合免费观看高清完整版 | 蜜臀av性久久久久蜜臀av麻豆 | 亚洲精品在线观| 欧美xxxx老人做受| 26uuu精品一区二区| 欧美精品一区二区三区很污很色的| 欧美成人在线直播| 精品国产乱码久久久久久图片| 欧美电视剧在线看免费| 国产性天天综合网| 国产精品高潮久久久久无| 日韩美女精品在线| 一区二区免费在线| 午夜精品福利一区二区蜜股av| 午夜电影久久久| 欧美日韩国产一级| 欧美一区2区视频在线观看| 欧美哺乳videos| 国产精品无圣光一区二区| 亚洲欧洲av色图| 午夜精品免费在线观看| 卡一卡二国产精品| 国产精品一区二区在线看| 99久久久精品| 欧美精品丝袜久久久中文字幕| 欧美成人一区二区| 国产精品免费人成网站| 亚洲一区二区三区四区的| 久久国产夜色精品鲁鲁99| www.亚洲免费av| 91精品中文字幕一区二区三区| 久久老女人爱爱| 亚洲女爱视频在线| 精品一区二区日韩| 色菇凉天天综合网| 久久久久久免费| 偷拍自拍另类欧美| 成人激情午夜影院| 欧美一区二区视频免费观看| 国产人成亚洲第一网站在线播放| 亚洲欧美日韩一区二区三区在线观看| 日韩av中文在线观看| 不卡一区在线观看| 精品国产精品网麻豆系列| 一区二区在线观看视频在线观看| 久久超碰97人人做人人爱| 99精品桃花视频在线观看| 日韩美女天天操| 一区二区三区四区视频精品免费| 国产精品影音先锋| 欧美日本在线观看| 18欧美亚洲精品| 国产在线精品一区二区| 欧美人与z0zoxxxx视频| 综合精品久久久| 国产精品91一区二区| 在线成人高清不卡| 亚洲精品一卡二卡| 高清国产一区二区| 久久影院视频免费| 秋霞电影网一区二区| 欧洲一区二区三区在线| 综合av第一页| 成人午夜碰碰视频| 久久久久88色偷偷免费| 奇米精品一区二区三区在线观看一| 97久久超碰精品国产| 国产欧美日韩精品在线| 国产一区二区三区不卡在线观看| 亚洲视频网在线直播| 成人精品一区二区三区中文字幕 | 国产一区二区伦理| 日韩亚洲欧美高清| 日韩激情视频在线观看| 欧洲亚洲精品在线| 一区二区久久久久久| 色综合久久88色综合天天6| 国产精品电影院| 国产 欧美在线| 国产精品久久久久久久久快鸭| 国产黄色精品网站| 国产亚洲人成网站| 国产成人亚洲综合a∨猫咪| 国产婷婷色一区二区三区| 国产在线麻豆精品观看| www欧美成人18+| 国产老妇另类xxxxx| 久久精品这里都是精品| 国产精品一区二区三区乱码| 国产性天天综合网| 不卡一区二区三区四区| 亚洲免费在线播放| 欧美日韩一区二区三区在线| 日韩国产一二三区| 精品国产百合女同互慰| 国产一区视频网站| 国产精品欧美一级免费| 99久久精品99国产精品| 亚洲综合偷拍欧美一区色| 欧美日韩免费高清一区色橹橹 | 国内久久精品视频| 久久久久久久久蜜桃| 国产乱码精品一品二品| 国产女人aaa级久久久级| 99re这里只有精品首页| 午夜伊人狠狠久久| 欧美成va人片在线观看| bt欧美亚洲午夜电影天堂| 一区二区三区国产精品| 欧美一区二区三区四区视频 | 国产精品福利电影一区二区三区四区 | fc2成人免费人成在线观看播放| 亚洲美女视频在线观看| 欧美片在线播放|