SqlSession Interface

  1 /**
  2  *    Copyright 2009-2015 the original author or authors.
  3  *
  4  *    Licensed under the Apache License, Version 2.0 (the "License");
  5  *    you may not use this file except in compliance with the License.
  6  *    You may obtain a copy of the License at
  7  *
  8  *       http://www.apache.org/licenses/LICENSE-2.0
  9  *
 10  *    Unless required by applicable law or agreed to in writing, software
 11  *    distributed under the License is distributed on an "AS IS" BASIS,
 12  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 13  *    See the License for the specific language governing permissions and
 14  *    limitations under the License.
 15  */
 16 package org.apache.ibatis.session;
 17 
 18 import java.io.Closeable;
 19 import java.sql.Connection;
 20 import java.util.List;
 21 import java.util.Map;
 22 
 23 import org.apache.ibatis.executor.BatchResult;
 24 
 25 /**
 26  * The primary Java interface for working with MyBatis.
 27  * Through this interface you can execute commands, get mappers and manage transactions.
 28  *
 29  * @author Clinton Begin
 30  */
 31 public interface SqlSession extends Closeable {
 32 
 33   /**
 34    * Retrieve a single row mapped from the statement key
 35    * @param <T> the returned object type
 36    * @param statement
 37    * @return Mapped object
 38    */
 39   <T> T selectOne(String statement);
 40 
 41   /**
 42    * Retrieve a single row mapped from the statement key and parameter.
 43    * @param <T> the returned object type
 44    * @param statement Unique identifier matching the statement to use.
 45    * @param parameter A parameter object to pass to the statement.
 46    * @return Mapped object
 47    */
 48   <T> T selectOne(String statement, Object parameter);
 49 
 50   /**
 51    * Retrieve a list of mapped objects from the statement key and parameter.
 52    * @param <E> the returned list element type
 53    * @param statement Unique identifier matching the statement to use.
 54    * @return List of mapped object
 55    */
 56   <E> List<E> selectList(String statement);
 57 
 58   /**
 59    * Retrieve a list of mapped objects from the statement key and parameter.
 60    * @param <E> the returned list element type
 61    * @param statement Unique identifier matching the statement to use.
 62    * @param parameter A parameter object to pass to the statement.
 63    * @return List of mapped object
 64    */
 65   <E> List<E> selectList(String statement, Object parameter);
 66 
 67   /**
 68    * Retrieve a list of mapped objects from the statement key and parameter,
 69    * within the specified row bounds.
 70    * @param <E> the returned list element type
 71    * @param statement Unique identifier matching the statement to use.
 72    * @param parameter A parameter object to pass to the statement.
 73    * @param rowBounds  Bounds to limit object retrieval
 74    * @return List of mapped object
 75    */
 76   <E> List<E> selectList(String statement, Object parameter, RowBounds rowBounds);
 77 
 78   /**
 79    * The selectMap is a special case in that it is designed to convert a list
 80    * of results into a Map based on one of the properties in the resulting
 81    * objects.
 82    * Eg. Return a of Map[Integer,Author] for selectMap("selectAuthors","id")
 83    * @param <K> the returned Map keys type
 84    * @param <V> the returned Map values type
 85    * @param statement Unique identifier matching the statement to use.
 86    * @param mapKey The property to use as key for each value in the list.
 87    * @return Map containing key pair data.
 88    */
 89   <K, V> Map<K, V> selectMap(String statement, String mapKey);
 90 
 91   /**
 92    * The selectMap is a special case in that it is designed to convert a list
 93    * of results into a Map based on one of the properties in the resulting
 94    * objects.
 95    * @param <K> the returned Map keys type
 96    * @param <V> the returned Map values type
 97    * @param statement Unique identifier matching the statement to use.
 98    * @param parameter A parameter object to pass to the statement.
 99    * @param mapKey The property to use as key for each value in the list.
100    * @return Map containing key pair data.
101    */
102   <K, V> Map<K, V> selectMap(String statement, Object parameter, String mapKey);
103 
104   /**
105    * The selectMap is a special case in that it is designed to convert a list
106    * of results into a Map based on one of the properties in the resulting
107    * objects.
108    * @param <K> the returned Map keys type
109    * @param <V> the returned Map values type
110    * @param statement Unique identifier matching the statement to use.
111    * @param parameter A parameter object to pass to the statement.
112    * @param mapKey The property to use as key for each value in the list.
113    * @param rowBounds  Bounds to limit object retrieval
114    * @return Map containing key pair data.
115    */
116   <K, V> Map<K, V> selectMap(String statement, Object parameter, String mapKey, RowBounds rowBounds);
117 
118   /**
119    * Retrieve a single row mapped from the statement key and parameter
120    * using a {@code ResultHandler}.
121    * @param statement Unique identifier matching the statement to use.
122    * @param parameter A parameter object to pass to the statement.
123    * @param handler ResultHandler that will handle each retrieved row
124    * @return Mapped object
125    */
126   void select(String statement, Object parameter, ResultHandler handler);
127 
128   /**
129    * Retrieve a single row mapped from the statement
130    * using a {@code ResultHandler}.
131    * @param statement Unique identifier matching the statement to use.
132    * @param handler ResultHandler that will handle each retrieved row
133    * @return Mapped object
134    */
135   void select(String statement, ResultHandler handler);
136 
137   /**
138    * Retrieve a single row mapped from the statement key and parameter
139    * using a {@code ResultHandler} and {@code RowBounds}
140    * @param statement Unique identifier matching the statement to use.
141    * @param rowBounds RowBound instance to limit the query results
142    * @param handler ResultHandler that will handle each retrieved row
143    * @return Mapped object
144    */
145   void select(String statement, Object parameter, RowBounds rowBounds, ResultHandler handler);
146 
147   /**
148    * Execute an insert statement.
149    * @param statement Unique identifier matching the statement to execute.
150    * @return int The number of rows affected by the insert.
151    */
152   int insert(String statement);
153 
154   /**
155    * Execute an insert statement with the given parameter object. Any generated
156    * autoincrement values or selectKey entries will modify the given parameter
157    * object properties. Only the number of rows affected will be returned.
158    * @param statement Unique identifier matching the statement to execute.
159    * @param parameter A parameter object to pass to the statement.
160    * @return int The number of rows affected by the insert.
161    */
162   int insert(String statement, Object parameter);
163 
164   /**
165    * Execute an update statement. The number of rows affected will be returned.
166    * @param statement Unique identifier matching the statement to execute.
167    * @return int The number of rows affected by the update.
168    */
169   int update(String statement);
170 
171   /**
172    * Execute an update statement. The number of rows affected will be returned.
173    * @param statement Unique identifier matching the statement to execute.
174    * @param parameter A parameter object to pass to the statement.
175    * @return int The number of rows affected by the update.
176    */
177   int update(String statement, Object parameter);
178 
179   /**
180    * Execute a delete statement. The number of rows affected will be returned.
181    * @param statement Unique identifier matching the statement to execute.
182    * @return int The number of rows affected by the delete.
183    */
184   int delete(String statement);
185 
186   /**
187    * Execute a delete statement. The number of rows affected will be returned.
188    * @param statement Unique identifier matching the statement to execute.
189    * @param parameter A parameter object to pass to the statement.
190    * @return int The number of rows affected by the delete.
191    */
192   int delete(String statement, Object parameter);
193 
194   /**
195    * Flushes batch statements and commits database connection.
196    * Note that database connection will not be committed if no updates/deletes/inserts were called.
197    * To force the commit call {@link SqlSession#commit(boolean)}
198    */
199   void commit();
200 
201   /**
202    * Flushes batch statements and commits database connection.
203    * @param force forces connection commit
204    */
205   void commit(boolean force);
206 
207   /**
208    * Discards pending batch statements and rolls database connection back.
209    * Note that database connection will not be rolled back if no updates/deletes/inserts were called.
210    * To force the rollback call {@link SqlSession#rollback(boolean)}
211    */
212   void rollback();
213 
214   /**
215    * Discards pending batch statements and rolls database connection back.
216    * Note that database connection will not be rolled back if no updates/deletes/inserts were called.
217    * @param force forces connection rollback

218    */
219   void rollback(boolean force);
220 
221   /**
222    * Flushes batch statements.
223    * @return BatchResult list of updated records
224    * @since 3.0.6
225    */
226   List<BatchResult> flushStatements();
227 
228   /**
229    * Closes the session
230    */
231   @Override
232   void close();
233 
234   /**
235    * Clears local session cache
236    */
237   void clearCache();
238 
239   /**
240    * Retrieves current configuration
241    * @return Configuration
242    */
243   Configuration getConfiguration();
244 
245   /**
246    * Retrieves a mapper.
247    * @param <T> the mapper type
248    * @param type Mapper interface class
249    * @return a mapper bound to this SqlSession
250    */
251   <T> T getMapper(Class<T> type);
252 
253   /**
254    * Retrieves inner database connection
255    * @return Connection
256    */
257   Connection getConnection();
258 }
View Code

 

posted @ 2017-02-23 13:25  小凡(loveok_56)  阅读(129)  评论(0编辑  收藏  举报