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

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

?? sqlmapclient.java

?? 本套系統采用了業界當前最為流行的beanAction組件
?? JAVA
字號:
/*
 *  Copyright 2004 Clinton Begin
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package com.ibatis.sqlmap.client;

import java.sql.Connection;

/**
 * A thread safe client for working with your SQL Maps (Start Here).  This interface inherits transaction control
 * and execution methods from the SqlMapTransactionManager and SqlMapExecutor interfaces.
 * <p/>
 * The SqlMapClient is the central class for working with SQL Maps.  This class will allow you
 * to run mapped statements (select, insert, update, delete etc.), and also demarcate
 * transactions and work with batches.  Once you have an SqlMapClient instance, everything
 * you need to work with SQL Maps is easily available.
 * <p/>
 * The SqlMapClient can either
 * be worked with directly as a multi-threaded client (internal session management), or you can get a single threaded
 * session and work with that.  There may be a slight performance increase if you explicitly
 * get a session (using the openSession() method), as it saves the SqlMapClient from having
 * to manage threads contexts.  But for most cases it won't make much of a difference, so
 * choose whichever paradigm suits your needs or preferences.
 * <p/>
 * An SqlMapClient instance can be safely made <i>static</i> or applied as a <i>Singleton</i>.
 * Generally it's a good idea to make a simple configuration class that will configure the
 * instance (using SqlMapClientBuilder) and provide access to it.
 * <p/>
 * <b>The following example will demonstrate the use of SqlMapClient.</b>
 * <pre>
 * <i><font color="green">
 * //
 * // autocommit simple query --these are just examples...not patterns
 * //
 * </font></i>
 * Employee emp = (Employee) <b>sqlMap.queryForObject("getEmployee", new Integer(1))</b>;
 * <i><font color="green">
 * //
 * // transaction --these are just examples...not patterns
 * //
 * </font></i>
 * try {
 *   <b>sqlMap.startTransaction()</b>
 *   Employee emp2 = new Employee();
 *   // ...set emp2 data
 *   Integer generatedKey = (Integer) <b>sqlMap.insert ("insertEmployee", emp2)</b>;
 *   emp2.setFavouriteColour ("green");
 *   <b>sqlMap.update("updateEmployee", emp2)</b>;
 *   <b>sqlMap.commitTransaction()</b>;
 * } finally {
 *   <b>sqlMap.endTransaction()</b>;
 * }
 * <i><font color="green">
 * //
 * // session --these are just examples...not patterns
 * //
 * </font></i>
 * try {
 *   <b>SqlMapSession session = sqlMap.openSession()</b>
 *   <b>session.startTransaction()</b>
 *   Employee emp2 = new Employee();
 *   // ...set emp2 data
 *   Integer generatedKey = (Integer) <b>session.insert ("insertEmployee", emp2)</b>;
 *   emp2.setFavouriteColour ("green");
 *   <b>session.update("updateEmployee", emp2)</b>;
 *   <b>session.commitTransaction()</b>;
 * } finally {
 *   try {
 *     <b>session.endTransaction()</b>;
 *   } finally {
 *     <b>session.close()</b>;
 *   }
 *   // Generally your session scope would be in a wider context and therefore the
 *   // ugly nested finally block above would not be there.  Realize that sessions
 *   // MUST be closed if explicitly opened (via openSession()).
 * }
 * <i><font color="green">
 * //
 * // batch --these are just examples...not patterns
 * //
 * </font></i>
 * try {
 *   <b>sqlMap.startTransaction()</b>
 *   List list = (Employee) <b>sqlMap.queryForList("getFiredEmployees", null)</b>;
 *   <b>sqlMap.startBatch ()</b>;
 *   for (int i=0, n=list.size(); i < n; i++) {
 *     <b>sqlMap.delete ("deleteEmployee", list.get(i))</b>;
 *   }
 *   <b>sqlMap.executeBatch()</b>;
 *   <b>sqlMap.commitTransaction()</b>;
 * } finally {
 *   <b>sqlMap.endTransaction()</b>;
 * }
 * </pre>
 *
 * @see SqlMapClientBuilder
 * @see SqlMapSession
 * @see SqlMapExecutor
 */
public interface SqlMapClient extends SqlMapExecutor, SqlMapTransactionManager {

  /**
   * Returns a single threaded SqlMapSession implementation for use by
   * one user.  Remember though, that SqlMapClient itself is a thread safe SqlMapSession
   * implementation, so you can also just work directly with it.  If you do get a session
   * explicitly using this method <b>be sure to close it!</b>  You can close a session using
   * the sqlMapSession.close() method.
   * <p/>
   *
   * @return An SqlMapSession instance.
   */
  public SqlMapSession openSession();

  /**
   * Returns a single threaded SqlMapSession implementation for use by
   * one user.  Remember though, that SqlMapClient itself is a thread safe SqlMapSession
   * implementation, so you can also just work directly with it.  If you do get a session
   * explicitly using this method <b>be sure to close it!</b>  You can close a session using
   * the SqlMapSession.close() method.
   * <p/>
   * This particular implementation takes a user provided connection as a parameter.  This
   * connection will be used for executing statements, and therefore overrides any
   * configured datasources.  Using this approach allows the developer to easily use an externally
   * supplied connection for executing statements.
   * <p/>
   * <b>Important:</b> Using a user supplied connection basically sidesteps the datasource
   * so you are responsible for appropriately handling your connection lifecycle (i.e. closing).
   * Here's a (very) simple example (throws SQLException):
   * <pre>
   * try {
   *   Connection connection = dataSource.getConnection();
   *   SqlMapSession session = sqlMap.openSession(connection);
   *   // do work
   *   connection.commit();
   * } catch (SQLException e) {
   *     try {
   *       if (connection != null) commit.rollback();
   *     } catch (SQLException ignored) {
   *       // generally ignored
   *     }
   *     throw e;  // rethrow the exception
   * } finally {
   *   try {
   *     if (connection != null) connection.close();
   *   } catch (SQLException ignored) {
   *     // generally ignored
   *   }
   * }
   * </pre>
   * 
   * @param conn - the connection to use for the session
   *
   * @return An SqlMapSession instance.
   */
  public SqlMapSession openSession(Connection conn);

  /**
   * TODO : Deprecated and will be removed.
   *
   * @return A session (DEPRECATED)
   * @deprecated Use openSession() instead.  THIS METHOD WILL BE REMOVED BEFORE
   *             FINAL RELEASE.
   */
  public SqlMapSession getSession();

  /**
   * Flushes all data caches.
   */
  public void flushDataCache();

  /**
   * Flushes the data cache that matches the cache model ID provided. 
   * cacheId should include the namespace, even when 
   * useStatementNamespaces="false".
   *
   * @param cacheId The cache model to flush
   */
  public void flushDataCache(String cacheId);

  /**
   * Returns a generated implementation of a cusom mapper class as specified by the method
   * parameter.  The generated implementation will run mapped statements by matching the method
   * name to the statement name.  The mapped statement elements determine how the statement is
   * run as per the following:
   * <ul>
   *   <li>&lt;insert&gt; -- insert()
   *   <li>&lt;update&gt; -- update()
   *   <li>&lt;delete&gt; -- delete()
   *   <li>&lt;select&gt; -- queryForObject, queryForList or queryForMap, as determined by signature (see below)
   *   <li>&lt;procedure&gt; -- determined by method name (see below)
   * </ul>
   *
   * How select statements are run is determined by the method signature,
   * as per the following:
   * <ul>
   *   <li> Object methodName (Object param) -- queryForObject
   *   <li> List methodName (Object param [, int skip, int max | , int pageSize]) -- queryForList
   *   <li> Map methodName (Object param, String keyProp [,valueProp]) -- queryForMap
   * </ul>
   *
   * How stored procedures are run is determined by the method name,
   * as per the following:
   * <ul>
   *   <li> insertXxxxx -- insert()
   *   <li> createXxxxx -- insert()
   *   <li> updateXxxxx -- update()
   *   <li> saveXxxxx -- update()
   *   <li> deleteXxxxx -- delete()
   *   <li> removeXxxxx -- delete()
   *   <li> selectXxxxx -- queryForXxxxxx() determined by method signature as above
   *   <li> queryXxxxx -- queryForXxxxxx() determined by method signature as above
   *   <li> fetchXxxxx -- queryForXxxxxx() determined by method signature as above
   *   <li> getXxxxx -- queryForXxxxxx() determined by method signature as above
   * </ul>
   *
   * @param iface The interface that contains methods representing the mapped statements contained.
   * @return An instance of iface that can be used to call mapped statements directly in a typesafe
   * manner.
   */
  //public Object getMapper(Class iface);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本亚洲三级在线| 欧美日韩黄视频| 久久久午夜电影| 久久99精品国产麻豆婷婷洗澡| 99riav一区二区三区| 国产亚洲综合色| 免费精品视频在线| 日韩美女一区二区三区四区| 亚洲自拍偷拍图区| 91.xcao| 男女男精品视频| 欧美精品一区二| 成人不卡免费av| 一区二区三区在线视频播放| 欧美日韩综合色| 久久成人18免费观看| 国产三级三级三级精品8ⅰ区| 国产伦精品一区二区三区视频青涩| 26uuu国产在线精品一区二区| 国产麻豆一精品一av一免费| 国产精品短视频| 欧美日韩国产bt| 国产白丝网站精品污在线入口| 日韩理论片网站| 欧美va亚洲va国产综合| 国产精品资源网| 亚洲一区二区三区四区五区中文| 欧美三区在线观看| 国产剧情av麻豆香蕉精品| 欧美在线视频日韩| 国产精品自在欧美一区| jlzzjlzz国产精品久久| 亚洲卡通动漫在线| 精品国产麻豆免费人成网站| 99re成人精品视频| 毛片av一区二区三区| 亚洲欧洲综合另类在线| 国产亚洲女人久久久久毛片| 欧美性大战久久久久久久蜜臀| 国产精品系列在线播放| 日本一区中文字幕| 亚洲综合免费观看高清完整版 | 欧美成人艳星乳罩| 欧美在线观看视频一区二区三区| 国产成人av一区| 狠狠色丁香久久婷婷综合_中| 亚洲午夜三级在线| 亚洲精品免费在线| 亚洲少妇最新在线视频| 亚洲国产精品高清| 国产精品网友自拍| 久久精品水蜜桃av综合天堂| 精品少妇一区二区三区视频免付费 | 欧美精品 日韩| 欧美羞羞免费网站| 91精品国产色综合久久不卡电影 | 精品国偷自产国产一区| 欧美日韩精品专区| 69精品人人人人| 亚洲精品一区二区三区蜜桃下载| 中文字幕欧美日韩一区| 精品国产乱码久久久久久牛牛| 欧美成人在线直播| 国产精品天美传媒| 亚洲国产日韩在线一区模特| 日韩经典中文字幕一区| 精品一区二区在线视频| 国产黄色精品视频| 91成人免费电影| 精品国产精品一区二区夜夜嗨| 精品国产不卡一区二区三区| 精品国产精品网麻豆系列| 国产精品久久久久久久久动漫| 夜夜嗨av一区二区三区| 日韩av一区二区三区| 成年人国产精品| 3atv在线一区二区三区| 国产日韩欧美一区二区三区乱码| 一区在线观看免费| 国模一区二区三区白浆| 欧美性生活久久| 日本一区二区三区在线不卡| 亚洲韩国精品一区| 成人激情电影免费在线观看| 国产精品的网站| 美国毛片一区二区三区| 在线这里只有精品| 国产精品天天看| 国产成人自拍在线| 精品欧美一区二区三区精品久久| 中文字幕中文字幕一区| 国内精品久久久久影院色| 色欧美日韩亚洲| 国产精品久久久久aaaa| 久久成人羞羞网站| 欧美一区二区视频观看视频| 亚洲人成人一区二区在线观看 | 久久久综合激的五月天| 日本欧美韩国一区三区| 欧美日韩在线播| 亚洲成人1区2区| 91精品久久久久久久99蜜桃| 艳妇臀荡乳欲伦亚洲一区| 国产欧美日韩久久| 国产成a人亚洲精| 欧美激情综合在线| 成人伦理片在线| 国产精品国产自产拍在线| av不卡免费在线观看| 国产精品乱码一区二三区小蝌蚪| 福利电影一区二区三区| 国产精品每日更新在线播放网址| 波波电影院一区二区三区| 亚洲免费看黄网站| 3751色影院一区二区三区| 久久精品国产99久久6| 久久久精品国产免大香伊| 国产成人午夜高潮毛片| 亚洲欧美日韩国产综合| 欧美无人高清视频在线观看| 日本欧美一区二区| 国产精品视频在线看| 欧美日韩在线精品一区二区三区激情| 日韩在线a电影| 亚洲欧洲制服丝袜| 亚洲精品在线网站| 欧美色中文字幕| 不卡av在线网| 美女一区二区在线观看| 亚洲欧美乱综合| 久久精品亚洲精品国产欧美| 91麻豆成人久久精品二区三区| 免费人成在线不卡| 亚洲国产wwwccc36天堂| 久久综合九色综合97婷婷| 色94色欧美sute亚洲线路一久| 国内精品嫩模私拍在线| 天天操天天色综合| 一区二区三区在线视频观看 | 国产精品第四页| 久久精品一区蜜桃臀影院| 91精品国产高清一区二区三区蜜臀 | 亚洲精选视频免费看| 久久99最新地址| 美女尤物国产一区| 婷婷久久综合九色综合绿巨人| 中文字幕中文字幕一区二区| 久久久国产午夜精品| 精品国产三级电影在线观看| 欧美日韩一级大片网址| 在线看国产一区二区| 91麻豆swag| 国产精品久久777777| 欧美精品一区视频| 久久久精品国产免大香伊| 久久美女艺术照精彩视频福利播放| 欧美一区二区三区电影| 精品区一区二区| 日韩欧美国产不卡| 久久综合狠狠综合| 国产精品天美传媒沈樵| 国产精品一级片| 日韩一二三区视频| 亚洲一区二区在线观看视频| 国产精品一品视频| 精品美女一区二区| 五月婷婷欧美视频| 欧美日韩一区二区三区在线看 | 久久精品国产99| 久久精品72免费观看| 欧美影视一区二区三区| 日韩一区在线播放| 不卡的看片网站| 亚洲色图.com| 91麻豆国产福利精品| 综合中文字幕亚洲| 99v久久综合狠狠综合久久| 中文字幕一区二区三区色视频 | 国产成人在线免费| 国产欧美精品国产国产专区| 国产精品一二三| 久久精品在这里| 91在线观看视频| 亚洲成在人线免费| 精品免费99久久| 国产a级毛片一区| 一区二区视频在线看| 在线欧美日韩精品| 日韩高清不卡一区二区三区| 欧美久久一区二区| 激情久久五月天| 国产亚洲女人久久久久毛片| 成人av在线电影| 亚洲国产wwwccc36天堂| 精品国产91亚洲一区二区三区婷婷 | 日本不卡一区二区三区| 精品久久久久久久久久久院品网 | 国产一区二区三区免费看| 中文字幕一区二区三| 欧美三级电影在线观看|