Mybatis/Ibatis,数据库操作的返回值
该问题,我百度了下,根本没发现什么有价值的文章;还是看源代码(详见最后附录)中的注释,最有效了!
insert,返回值是:新插入行的主键(primary key);需要包含<selectKey>语句,才会返回主键,否则返回值为null。
update/delete,返回值是:更新或删除的行数;无需指明resultClass;但如果有约束异常而删除失败,只能去捕捉异常。
queryForObject,返回的是:一个实例对象或null;需要包含<select>语句,并且指明resultMap;
queryForList,返回的是:实例对象的列表;需要包含<select>语句,并且指明resultMap;
我的配置文件如下(desktop_common_sqlMap.xml):
- <typeAlias alias="UnlockTagInfo" type="com.desktop.common.bean.UnlockTagInfo" />
- <resultMap class="UnlockTagInfo" id="UnlockTagInfoResult">
- <result column="id" property="id" jdbcType="INTEGER" />
- <result column="name" property="name" jdbcType="VARCHAR" />
- <result column="description" property="description" jdbcType="VARCHAR" />
- <result column="priority" property="priority" jdbcType="INTEGER" />
- </resultMap>
- <insert id="insertUnlockTagInfo" parameterClass="map">
- <selectKey resultClass="int" keyProperty="id">
- select
- nextval('desktop_unlock_tag_id_seq') as id
- </selectKey>
- insert into
- desktop_unlock_tag(id,name,description,priority)
- values(#id:INTEGER#,#name:VARCHAR#,#description:VARCHAR#,#priority:INTEGER#)
- </insert>
- <update id="updateUnlockTagInfo" parameterClass="map">
- update
- desktop_unlock_tag
- set modify_time=now(),priority=#priority:INTEGER#,
- name=#name:VARCHAR#,description=#description:VARCHAR#
- where
- id=#id:INTEGER#
- </update>
- <delete id="deleteUnlockTagInfo" parameterClass="int">
- delete from
- desktop_unlock_tag
- where id=#value:INTEGER#
- </delete>
- <select id="countUnlockTagInfo" resultClass="int">
- select count(*)
- from
- desktop_unlock_tag
- </select>
- <sql id="selectUnlockTagInfo">
- select
- id,name,description,priority
- from
- desktop_unlock_tag
- </sql>
- <select id="findUnlockTagInfoById" parameterClass="int"
- resultMap="UnlockTagInfoResult">
- <include refid="selectUnlockTagInfo" />
- where id=#id:INTEGER#
- </select>
- <select id="listUnlockTagInfo" parameterClass="map"
- resultMap="UnlockTagInfoResult">
- <include refid="selectUnlockTagInfo" />
- order by
- modify_time desc limit #size:INTEGER#
- offset #start:INTEGER#
- </select>
<typeAlias alias="UnlockTagInfo" type="com.desktop.common.bean.UnlockTagInfo" />
<resultMap class="UnlockTagInfo" id="UnlockTagInfoResult">
<result column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="description" property="description" jdbcType="VARCHAR" />
<result column="priority" property="priority" jdbcType="INTEGER" />
</resultMap>
<insert id="insertUnlockTagInfo" parameterClass="map">
<selectKey resultClass="int" keyProperty="id">
select
nextval('desktop_unlock_tag_id_seq') as id
</selectKey>
insert into
desktop_unlock_tag(id,name,description,priority)
values(#id:INTEGER#,#name:VARCHAR#,#description:VARCHAR#,#priority:INTEGER#)
</insert>
<update id="updateUnlockTagInfo" parameterClass="map">
update
desktop_unlock_tag
set modify_time=now(),priority=#priority:INTEGER#,
name=#name:VARCHAR#,description=#description:VARCHAR#
where
id=#id:INTEGER#
</update>
<delete id="deleteUnlockTagInfo" parameterClass="int">
delete from
desktop_unlock_tag
where id=#value:INTEGER#
</delete>
<select id="countUnlockTagInfo" resultClass="int">
select count(*)
from
desktop_unlock_tag
</select>
<sql id="selectUnlockTagInfo">
select
id,name,description,priority
from
desktop_unlock_tag
</sql>
<select id="findUnlockTagInfoById" parameterClass="int"
resultMap="UnlockTagInfoResult">
<include refid="selectUnlockTagInfo" />
where id=#id:INTEGER#
</select>
<select id="listUnlockTagInfo" parameterClass="map"
resultMap="UnlockTagInfoResult">
<include refid="selectUnlockTagInfo" />
order by
modify_time desc limit #size:INTEGER#
offset #start:INTEGER#
</select>
我的DAO源码如下:
- public class UnlockTagDaoImpl extends SqlMapClientDaoSupport implements
- UnlockTagDao {
- @Override
- public Integer addItem(String name, String desc, Integer priority) {
- SqlMapClientTemplate template = this.getSqlMapClientTemplate();
- Map<String, Object> args = new HashMap<String, Object>();
- args.put("name", name);
- args.put("description", desc);
- args.put("priority", priority);
- Object key = template.insert("DesktopCommon.insertUnlockTagInfo", args);
- return (Integer) key;
- }
- @Override
- public boolean updateItem(Integer id, String name, String description,
- Integer priority) {
- SqlMapClientTemplate template = this.getSqlMapClientTemplate();
- Map<String, Object> args = new HashMap<String, Object>();
- args.put("id", id);
- args.put("name", name);
- args.put("description", description);
- args.put("priority", priority);
- try {
- int c = template.update("DesktopCommon.updateUnlockTagInfo", args);
- if (c > 0) {
- return true;
- }
- return false;
- } catch (Exception e) {
- return false;
- }
- }
- @Override
- public boolean deleteItem(Integer id) {
- SqlMapClientTemplate template = this.getSqlMapClientTemplate();
- try {
- int c = template.delete("DesktopCommon.deleteUnlockTagInfo", id);
- if (c > 0) {
- return true;
- }
- return false;
- } catch (Exception e) {
- return false;
- }
- }
- @Override
- public UnlockTagInfo findItemById(Integer id) {
- SqlMapClientTemplate template = this.getSqlMapClientTemplate();
- UnlockTagInfo item = (UnlockTagInfo) template.queryForObject(
- "DesktopCommon.findUnlockTagInfoById", id);
- return item;
- }
- @Override
- public PagedList<UnlockTagInfo> listAll(Integer nStart, Integer nSize,
- boolean bCountTotal) {
- SqlMapClientTemplate template = this.getSqlMapClientTemplate();
- PagedList<UnlockTagInfo> result = new PagedList<UnlockTagInfo>();
- if (bCountTotal) {
- int total = (Integer) template
- .queryForObject("DesktopCommon.countUnlockTagInfo");
- result.setTotal(total);
- }
- Map<String, Integer> args = new HashMap<String, Integer>();
- args.put("start", nStart);
- args.put("size", nSize);
- @SuppressWarnings("unchecked")
- List<UnlockTagInfo> items = template.queryForList(
- "DesktopCommon.listUnlockTagInfo", args);
- result.setData(items);
- return result;
- }
- }
public class UnlockTagDaoImpl extends SqlMapClientDaoSupport implements
UnlockTagDao {
@Override
public Integer addItem(String name, String desc, Integer priority) {
SqlMapClientTemplate template = this.getSqlMapClientTemplate();
Map<String, Object> args = new HashMap<String, Object>();
args.put("name", name);
args.put("description", desc);
args.put("priority", priority);
Object key = template.insert("DesktopCommon.insertUnlockTagInfo", args);
return (Integer) key;
}@Override
public boolean updateItem(Integer id, String name, String description,
Integer priority) {
SqlMapClientTemplate template = this.getSqlMapClientTemplate();
Map<String, Object> args = new HashMap<String, Object>();
args.put("id", id);
args.put("name", name);
args.put("description", description);
args.put("priority", priority);
try {
int c = template.update("DesktopCommon.updateUnlockTagInfo", args);
if (c > 0) {
return true;
}
return false;
} catch (Exception e) {
return false;
}
} @Override
public boolean deleteItem(Integer id) {
SqlMapClientTemplate template = this.getSqlMapClientTemplate();
try {
int c = template.delete("DesktopCommon.deleteUnlockTagInfo", id);
if (c > 0) {
return true;
}
return false;
} catch (Exception e) {
return false;
}
} @Override
public UnlockTagInfo findItemById(Integer id) {
SqlMapClientTemplate template = this.getSqlMapClientTemplate();
UnlockTagInfo item = (UnlockTagInfo) template.queryForObject(
"DesktopCommon.findUnlockTagInfoById", id);
return item;
} @Override
public PagedList<UnlockTagInfo> listAll(Integer nStart, Integer nSize,
boolean bCountTotal) {
SqlMapClientTemplate template = this.getSqlMapClientTemplate();
PagedList<UnlockTagInfo> result = new PagedList<UnlockTagInfo>();
if (bCountTotal) {
int total = (Integer) template
.queryForObject("DesktopCommon.countUnlockTagInfo");
result.setTotal(total);
}
Map<String, Integer> args = new HashMap<String, Integer>();
args.put("start", nStart);
args.put("size", nSize);
@SuppressWarnings("unchecked")
List<UnlockTagInfo> items = template.queryForList(
"DesktopCommon.listUnlockTagInfo", args);
result.setData(items);
return result;
}
}
关于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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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.
- * <p/>
- * 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;
- }
/*
* 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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.
- <p/>
- 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;
 }
 
Mybatis/Ibatis,数据库操作的返回值的更多相关文章
- 【转】Mybatis/Ibatis,数据库操作的返回值
		该问题,我百度了下,根本没发现什么有价值的文章:还是看源代码(详见最后附录)中的注释,最有效了!insert,返回值是:新插入行的主键(primary key):需要包含<selectKey&g ... 
- 【转】 Mybatis/Ibatis,数据库操作的返回值
		该问题,我百度了下,根本没发现什么有价值的文章:还是看源代码(详见最后附录)中的注释,最有效了!insert,返回值是:新插入行的主键(primary key):需要包含<selectKey&g ... 
- Mybatis数据库操作的返回值
		mybatis配置 <!-- 配置mybatis --> <bean id="sqlSessionFactory" class="org.mybatis ... 
- MyBatis的数据库操作
		MyBatis的数据库操作 大学毕业有一段时间了,作为一名没有任何开发工作经验的大专毕业生想找到一份软件开发的工作确实很难,但我运气还算不错,应聘上一份java web开发的工作.作为一名新人,老板给 ... 
- 【mybatis】mybatis中insert操作,返回自增id
		需求是这样的: mybatis中insert操作,返回自增id,因为这个自增id需要给后续业务用到. 原本是这样的: 将insert语句传入,正常执行insert操作,返回int永远是 0[失败] 或 ... 
- 关于C#操作数据库ExecuteNonQuery()的返回值问题
		) { retValue = AccessCon.ExecuteSql(sql = "update salesData set sellingPrize='" + man.Sell ... 
- Mybatis(二)简化Mybatis实现数据库操作
		要操作的数据库: 一.与数据库对应的bean类 public class User { private String username; private String sex; private Str ... 
- Mybatis在insert操作时返回主键
		今天在写项目的时候,遇到一个需求,就是在像数据库插入数据的时候,要保留插入数据的主键,以便后续进行级联时,可以将该主键作为另张表的外键. 但是在正常情况下我们使用插入语句返回的是int型,含义是影响该 ... 
- MyBatis insert/delete/update 的返回值
		insert,返回值是:新插入行的主键(primary key):需要包含<selectKey>语句,才会返回主键,否则返回值为null. <insert id="inse ... 
随机推荐
- NOIP模拟17.9.22
			NOIP模拟17.9.22 前进![问题描述]数轴的原点上有一只青蛙.青蛙要跳到数轴上≥ 
- js中this指向学习总结
			在面向对象的语言中(例如Java,C#等),this 含义是明确且具体的,即指向当前对象.一般在编译期绑定. 然而js中this 是在运行期进行绑定的,这是js中this 关键字具备多重含义的本质 ... 
- 举例分析private的作用【c/c++学习】
			抛砖引玉: c++中private的用处 我知道我们可以用 public 中的值,把private中的数据给提出来,但是还是搞不懂private该怎么用,或者说在一个具体程序中,private有什么用 ... 
- iview 中table列 一列显示多个数据(后台返回数组显示在列内)
			一.首先出现的是比较复杂的一种情况(多个key) 1.首先页面显示效果如下 2.后台返回数据格式如下: 3.在iview中table的columns中的render函数: 4.具体代码 render: ... 
- leetcode 31-40 easy
			38.Count and Say The count-and-say sequence is the sequence of integers with the first five terms as ... 
- TypeScript高级类型
			交叉类型 将多个类型合并成一个类型,去两个类型的并集.与继承的区别是,继承可以有自己的属性,而交叉没有. interface DogInterface { run():void } interface ... 
- Docker.[3].镜像操作.
			Docker.[3].镜像操作. 熟悉基础指令: 查看本地镜像 docker images 查看本地镜像 docker image list (和上面显示的结果一样.) 删除本地镜像 docker r ... 
- ThinkPHP5.0中的build.php自动生成所需的目录结构的详细方法
			一.来到根目录下,找到bulid.php文件进行改写. 改写方法:保留常用的目录结构,其余按照需求改吧! 二.复制一份build.php文件到application目录下 此时根目录下的bulid.p ... 
- node.js的path模块
			path模块的各种API path.join([...paths]) 参数:paths <string> ,paths参数是字符串,这些字符串按路径片段顺序排列,(A sequence o ... 
- Spring_总结
			spring配置Bean 配置形式 基于XML文件的方式 属性注入 构造注入 泛型依赖注入 基于注解的方式 配置方式 全类名(反射) 通过工厂方法 FactoryBean 字面值 <