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

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

?? datautil.java~2~

?? 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一区二区三区免费野_久草精品视频
精品无人区卡一卡二卡三乱码免费卡| 欧美日韩黄色一区二区| 欧亚洲嫩模精品一区三区| 欧美二区在线观看| 国产精品国产自产拍高清av| 亚洲18色成人| 99精品热视频| 久久综合成人精品亚洲另类欧美| 亚洲一线二线三线久久久| 国产精品资源在线看| 88在线观看91蜜桃国自产| 亚洲欧洲一区二区在线播放| 国产乱子伦一区二区三区国色天香| 日本精品裸体写真集在线观看| 国产亚洲综合性久久久影院| 男人的天堂亚洲一区| 欧洲在线/亚洲| 日韩毛片视频在线看| 国产成人免费在线视频| 91麻豆精品国产自产在线| 亚洲一区在线视频| 一本色道久久综合亚洲91| 久久久一区二区| 国产在线精品国自产拍免费| 欧美激情自拍偷拍| 久色婷婷小香蕉久久| 欧美日韩免费一区二区三区视频| 亚洲欧洲日产国产综合网| 国产精品亚洲第一区在线暖暖韩国| 日韩免费福利电影在线观看| 午夜精品成人在线| 欧美日韩一本到| 亚洲一区二区三区四区在线观看| 色综合久久综合网97色综合| 国产精品久久久久久久久免费樱桃| 国产精品一区免费视频| 久久伊人蜜桃av一区二区| 久久国产成人午夜av影院| 日韩精品中文字幕在线一区| 久久99最新地址| 久久综合狠狠综合久久激情| 粉嫩aⅴ一区二区三区四区| 国产清纯美女被跳蛋高潮一区二区久久w| 精品在线免费视频| 久久先锋影音av| 丁香婷婷综合色啪| 国产精品理论片| 色先锋资源久久综合| 亚洲午夜电影在线观看| 欧美一区在线视频| 国产一二三精品| 国产精品灌醉下药二区| 色呦呦国产精品| 午夜精品一区二区三区免费视频 | 制服丝袜亚洲播放| 蜜臀久久久久久久| 国产欧美精品区一区二区三区| 国产成人综合在线| 亚洲精品国产精华液| 欧美精选一区二区| 国产精品一区不卡| 一区二区三区欧美日韩| 91精品久久久久久久久99蜜臂| 国产一区激情在线| 樱桃国产成人精品视频| 日韩丝袜情趣美女图片| 粉嫩一区二区三区在线看| 亚洲欧美日韩综合aⅴ视频| 欧美一卡2卡3卡4卡| 懂色av一区二区在线播放| 亚洲午夜久久久久| 亚洲精品一区二区三区四区高清| jlzzjlzz亚洲女人18| 午夜精品爽啪视频| 中文字幕乱码久久午夜不卡| 欧美性生活久久| 国产乱子伦视频一区二区三区| 亚洲蜜臀av乱码久久精品蜜桃| 欧美一级一区二区| av电影天堂一区二区在线观看| 香蕉成人伊视频在线观看| 久久久蜜桃精品| 欧美亚洲动漫精品| av综合在线播放| 九九在线精品视频| 亚洲国产日产av| 国产精品白丝在线| 久久欧美中文字幕| 欧美疯狂做受xxxx富婆| 91麻豆免费观看| 国产一区日韩二区欧美三区| 午夜欧美在线一二页| ●精品国产综合乱码久久久久| 日韩精品在线看片z| 欧美视频一区在线| 成人av一区二区三区| 国产自产高清不卡| 婷婷成人激情在线网| 中文字幕中文字幕中文字幕亚洲无线| 91精品欧美综合在线观看最新| 99久久久久久| 国产成人精品影视| 国产精品69久久久久水密桃| 久久99国产精品麻豆| 亚洲国产cao| 一区二区三区中文在线观看| 国产精品久久一级| 国产精品久久久久久久久晋中| 精品成人一区二区三区| 91精品国产综合久久久久久久| 欧美在线观看一二区| 91香蕉视频在线| 99re8在线精品视频免费播放| 高清av一区二区| 国产精品一区二区三区四区 | 91视频国产资源| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 欧美一区二区三区四区高清| 在线观看亚洲精品| 色综合久久六月婷婷中文字幕| k8久久久一区二区三区| 91在线视频网址| 在线亚洲一区二区| 欧美日韩激情一区二区三区| 欧美日韩高清一区二区| 欧美日韩免费一区二区三区视频| 欧美日韩一区视频| 欧美一卡二卡三卡| 2020日本不卡一区二区视频| 久久久久久日产精品| 久久久精品国产99久久精品芒果| 久久精品一区二区三区不卡| 日本一区二区久久| 亚洲欧美成aⅴ人在线观看| 亚洲黄网站在线观看| 婷婷久久综合九色综合绿巨人| 美国一区二区三区在线播放| 国产成人在线网站| 99re成人精品视频| 51精品秘密在线观看| 2021国产精品久久精品| 国产精品对白交换视频| 亚洲一区二区不卡免费| 青青草国产精品亚洲专区无| 国产一区二区三区四 | 久99久精品视频免费观看| 国产成人免费视频| 欧美视频中文字幕| 欧美精品一区二| 亚洲在线观看免费| 国产精品正在播放| 91福利视频久久久久| 欧美xxxx老人做受| 中文字幕一区不卡| 青青草伊人久久| 91免费国产在线观看| 欧美mv和日韩mv的网站| 中文字幕人成不卡一区| 男男成人高潮片免费网站| 国产电影精品久久禁18| 欧美日韩在线电影| 久久久噜噜噜久久中文字幕色伊伊| 亚洲激情五月婷婷| 国产精品一二二区| 欧美色成人综合| 日本一区二区动态图| 免费日本视频一区| 91美女精品福利| 国产日韩av一区二区| 天天色图综合网| 91麻豆成人久久精品二区三区| 日韩免费观看高清完整版 | 欧美亚洲日本国产| 国产精品女上位| 九九国产精品视频| 欧美精品在线一区二区三区| 成人欧美一区二区三区| 国精产品一区一区三区mba视频| 在线视频综合导航| 成人免费在线视频| 成人激情开心网| 精品国产1区二区| 蜜臀av性久久久久蜜臀aⅴ| 在线一区二区观看| 亚洲天堂av一区| 成人不卡免费av| 国产嫩草影院久久久久| 毛片av一区二区三区| 欧美精品tushy高清| 亚洲一区二区在线播放相泽| 波波电影院一区二区三区| 久久综合色之久久综合| 久久99精品国产麻豆不卡| 91精品麻豆日日躁夜夜躁| 舔着乳尖日韩一区| 91精品视频网| 蜜臀精品一区二区三区在线观看| 欧美精品高清视频| 日韩精品电影在线| 日韩欧美国产午夜精品|