博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mybatis update delete 操作的返回值
阅读量:6253 次
发布时间:2019-06-22

本文共 15343 字,大约阅读时间需要 51 分钟。

hot3.png

insert,返回值是:新插入行的主键(primary key);需要包含语句,才会返回主键,否则返回值为null。

update/delete,返回值是:更新或删除的行数;无需指明resultClass;但如果有约束异常而删除失败,只能去捕捉异常。
queryForObject,返回的是:一个实例对象或null;需要包含<select>语句,并且指明resultMap;
queryForList,返回的是:实例对象的列表;需要包含<select>语句,并且指明resultMap;

 

关于ibatis的接口,参见其源码(com\ibatis\sqlmap\client\SqlMapExecutor.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 com.ibatis.common.util.PaginatedList;  import com.ibatis.sqlmap.client.event.RowHandler;  import com.ibatis.sqlmap.engine.execution.BatchException;    import java.sql.SQLException;  import java.util.List;  import java.util.Map;    /**  * This interface declares all methods involved with executing statements  * and batches for an SQL Map.  *  * @see SqlMapSession  * @see SqlMapClient  */  public interface SqlMapExecutor {      /**    * Executes a mapped SQL INSERT statement.    * Insert is a bit different from other update methods, as it    * provides facilities for returning the primary key of the    * newly inserted row (rather than the effected rows).  This    * functionality is of course optional.    * 

* The parameter object is generally used to supply the input * data for the INSERT values. * * @param id The name of the statement to execute. * @param parameterObject The parameter object (e.g. JavaBean, Map, XML etc.). * @return The primary key of the newly inserted row. This might be automatically * generated by the RDBMS, or selected from a sequence table or other source. * @throws java.sql.SQLException If an error occurs. */ Object insert(String id, Object parameterObject) throws SQLException; /** * Executes a mapped SQL INSERT statement. * Insert is a bit different from other update methods, as it * provides facilities for returning the primary key of the * newly inserted row (rather than the effected rows). This * functionality is of course optional. *

* This overload assumes no parameter is needed. * * @param id The name of the statement to execute. * @return The primary key of the newly inserted row. This might be automatically * generated by the RDBMS, or selected from a sequence table or other source. * @throws java.sql.SQLException If an error occurs. */ Object insert(String id) throws SQLException; /** * Executes a mapped SQL UPDATE statement. * Update can also be used for any other update statement type, * such as inserts and deletes. Update returns the number of * rows effected. *

* The parameter object is generally used to supply the input * data for the UPDATE values as well as the WHERE clause parameter(s). * * @param id The name of the statement to execute. * @param parameterObject The parameter object (e.g. JavaBean, Map, XML etc.). * @return The number of rows effected. * @throws java.sql.SQLException If an error occurs. */ int update(String id, Object parameterObject) throws SQLException; /** * Executes a mapped SQL UPDATE statement. * Update can also be used for any other update statement type, * such as inserts and deletes. Update returns the number of * rows effected. *

* This overload assumes no parameter is needed. * * @param id The name of the statement to execute. * @return The number of rows effected. * @throws java.sql.SQLException If an error occurs. */ int update(String id) throws SQLException; /** * Executes a mapped SQL DELETE statement. * Delete returns the number of rows effected. *

* The parameter object is generally used to supply the input * data for the WHERE clause parameter(s) of the DELETE statement. * * @param id The name of the statement to execute. * @param parameterObject The parameter object (e.g. JavaBean, Map, XML etc.). * @return The number of rows effected. * @throws java.sql.SQLException If an error occurs. */ int delete(String id, Object parameterObject) throws SQLException; /** * Executes a mapped SQL DELETE statement. * Delete returns the number of rows effected. *

* This overload assumes no parameter is needed. * * @param id The name of the statement to execute. * @return The number of rows effected. * @throws java.sql.SQLException If an error occurs. */ int delete(String id) throws SQLException; /** * Executes a mapped SQL SELECT statement that returns data to populate * a single object instance. *

* The parameter object is generally used to supply the input * data for the WHERE clause parameter(s) of the SELECT statement. * * @param id The name of the statement to execute. * @param parameterObject The parameter object (e.g. JavaBean, Map, XML etc.). * @return The single result object populated with the result set data, * or null if no result was found * @throws java.sql.SQLException If more than one result was found, or if any other error occurs. */ Object queryForObject(String id, Object parameterObject) throws SQLException; /** * Executes a mapped SQL SELECT statement that returns data to populate * a single object instance. *

* This overload assumes no parameter is needed. * * @param id The name of the statement to execute. * @return The single result object populated with the result set data, * or null if no result was found * @throws java.sql.SQLException If more than one result was found, or if any other error occurs. */ Object queryForObject(String id) throws SQLException; /** * Executes a mapped SQL SELECT statement that returns data to populate * the supplied result object. *

* The parameter object is generally used to supply the input * data for the WHERE clause parameter(s) of the SELECT statement. * * @param id The name of the statement to execute. * @param parameterObject The parameter object (e.g. JavaBean, Map, XML etc.). * @param resultObject The result object instance that should be populated with result data. * @return The single result object as supplied by the resultObject parameter, populated with the result set data, * or null if no result was found * @throws java.sql.SQLException If more than one result was found, or if any other error occurs. */ Object queryForObject(String id, Object parameterObject, Object resultObject) throws SQLException; /** * Executes a mapped SQL SELECT statement that returns data to populate * a number of result objects. *

* The parameter object is generally used to supply the input * data for the WHERE clause parameter(s) of the SELECT statement. * * @param id The name of the statement to execute. * @param parameterObject The parameter object (e.g. JavaBean, Map, XML etc.). * @return A List of result objects. * @throws java.sql.SQLException If an error occurs. */ List queryForList(String id, Object parameterObject) throws SQLException; /** * Executes a mapped SQL SELECT statement that returns data to populate * a number of result objects. *

* This overload assumes no parameter is needed. * * @param id The name of the statement to execute. * @return A List of result objects. * @throws java.sql.SQLException If an error occurs. */ List queryForList(String id) throws SQLException; /** * Executes a mapped SQL SELECT statement that returns data to populate * a number of result objects within a certain range. *

* The parameter object is generally used to supply the input * data for the WHERE clause parameter(s) of the SELECT statement. * * @param id The name of the statement to execute. * @param parameterObject The parameter object (e.g. JavaBean, Map, XML etc.). * @param skip The number of results to ignore. * @param max The maximum number of results to return. * @return A List of result objects. * @throws java.sql.SQLException If an error occurs. */ List queryForList(String id, Object parameterObject, int skip, int max) throws SQLException; /** * Executes a mapped SQL SELECT statement that returns data to populate * a number of result objects within a certain range. *

* This overload assumes no parameter is needed. * * @param id The name of the statement to execute. * @param skip The number of results to ignore. * @param max The maximum number of results to return. * @return A List of result objects. * @throws java.sql.SQLException If an error occurs. */ List queryForList(String id, int skip, int max) throws SQLException; /** * Executes a mapped SQL SELECT statement that returns a number of * result objects that will be handled one at a time by a * RowHandler. *

* This is generally a good approach to take when dealing with large sets * of records (i.e. hundreds, thousands...) that need to be processed without * eating up all of the system resources. *

* The parameter object is generally used to supply the input * data for the WHERE clause parameter(s) of the SELECT statement. * * @param id The name of the statement to execute. * @param parameterObject The parameter object (e.g. JavaBean, Map, XML etc.). * @param rowHandler A RowHandler instance * @throws java.sql.SQLException If an error occurs. */ void queryWithRowHandler(String id, Object parameterObject, RowHandler rowHandler) throws SQLException; /** * Executes a mapped SQL SELECT statement that returns a number of * result objects that will be handled one at a time by a * RowHandler. *

* This is generally a good approach to take when dealing with large sets * of records (i.e. hundreds, thousands...) that need to be processed without * eating up all of the system resources. *

* This overload assumes no parameter is needed. * * @param id The name of the statement to execute. * @param rowHandler A RowHandler instance * @throws java.sql.SQLException If an error occurs. */ void queryWithRowHandler(String id, RowHandler rowHandler) throws SQLException; /** * Executes a mapped SQL SELECT statement that returns data to populate * a number of result objects a page at a time. *

* The parameter object is generally used to supply the input * data for the WHERE clause parameter(s) of the SELECT statement. * * @param id The name of the statement to execute. * @param parameterObject The parameter object (e.g. JavaBean, Map, XML etc.). * @param pageSize The maximum number of result objects each page can hold. * @return A PaginatedList of result objects. * @throws java.sql.SQLException If an error occurs. * @deprecated All paginated list features have been deprecated */ PaginatedList queryForPaginatedList(String id, Object parameterObject, int pageSize) throws SQLException; /** * Executes a mapped SQL SELECT statement that returns data to populate * a number of result objects a page at a time. *

* This overload assumes no parameter is needed. * * @param id The name of the statement to execute. * @param pageSize The maximum number of result objects each page can hold. * @return A PaginatedList of result objects. * @throws java.sql.SQLException If an error occurs. * @deprecated All paginated list features have been deprecated */ PaginatedList queryForPaginatedList(String id, int pageSize) throws SQLException; /** * Executes a mapped SQL SELECT statement that returns data to populate * a number of result objects that will be keyed into a Map. *

* The parameter object is generally used to supply the input * data for the WHERE clause parameter(s) of the SELECT statement. * * @param id The name of the statement to execute. * @param parameterObject The parameter object (e.g. JavaBean, Map, XML etc.). * @param keyProp The property to be used as the key in the Map. * @return A Map keyed by keyProp with values being the result object instance. * @throws java.sql.SQLException If an error occurs. */ Map queryForMap(String id, Object parameterObject, String keyProp) throws SQLException; /** * Executes a mapped SQL SELECT statement that returns data to populate * a number of result objects from which one property will be keyed into a Map. *

* The parameter object is generally used to supply the input * data for the WHERE clause parameter(s) of the SELECT statement. * * @param id The name of the statement to execute. * @param parameterObject The parameter object (e.g. JavaBean, Map, XML etc.). * @param keyProp The property to be used as the key in the Map. * @param valueProp The property to be used as the value in the Map. * @return A Map keyed by keyProp with values of valueProp. * @throws java.sql.SQLException If an error occurs. */ Map queryForMap(String id, Object parameterObject, String keyProp, String valueProp) throws SQLException; /** * Starts a batch in which update statements will be cached before being sent to * the database all at once. This can improve overall performance of updates update * when dealing with numerous updates (e.g. inserting 1:M related data). * * @throws java.sql.SQLException If the batch could not be started. */ void startBatch() throws SQLException; /** * Executes (flushes) all statements currently batched. * * @return the number of rows updated in the batch * @throws java.sql.SQLException If the batch could not be executed or if any of the statements * fails. */ int executeBatch() throws SQLException; /** * Executes (flushes) all statements currently batched. * * @return a List of BatchResult objects. There will be one element in the * list for each sub-batch executed. A sub-batch is created by adding a statement * to the batch that does not equal the prior statement. * @throws SQLException if a database access error occurs, or the drive * does not support batch statements * @throws BatchException if the driver throws BatchUpdateException * @see com.ibatis.sqlmap.engine.execution.BatchException */ List executeBatchDetailed() throws SQLException, BatchException; }

 

转载于:https://my.oschina.net/zjllovecode/blog/1581677

你可能感兴趣的文章
Codeforces 911E - Stack Sorting
查看>>
BZOJ 1853: [Scoi2010]幸运数字
查看>>
基于敏捷的测试交付物通用设计
查看>>
BFS --- 素数环
查看>>
for循环每次取出一个字符(不是字节)
查看>>
linux版本选择
查看>>
不写for也能选中checkbox!
查看>>
PCIE_DMA:xapp1052学习笔记
查看>>
css
查看>>
Java规则引擎及JSR-94[转]
查看>>
【c学习-13】
查看>>
给报表增加页眉
查看>>
Mysql配置参数说明
查看>>
python ----字符串基础练习题30道
查看>>
K 班1-7,alpha,beta 作业成绩汇总
查看>>
uva-10879-因数分解
查看>>
清空表且自增的id重新从0开始
查看>>
[杂记]如何在LaTeX里插入高亮代码
查看>>
「常微分方程」(阿諾爾德) Page 6 問題4 經過擴張相空間的每一點有且僅有一條積分曲線...
查看>>
同一个闭区间上有界变差函数的和与积都是有界变差函数
查看>>