欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mybatis/Ibatis,数据库操作的返回值 daojavasql 

程序员文章站 2024-02-14 11:47:28
...

insert,返回值是:新插入行的主键(primary key);需要包含<selectKey>语句,才会返回主键,否则返回值为null。
update/delete,返回值是:更新或删除的行数;无需指明resultClass;但如果有约束异常而删除失败,只能去捕捉异常。
queryForObject,返回的是:一个实例对象或null;需要包含<select>语句,并且指明resultMap;
queryForList,返回的是:实例对象的列表;需要包含<select>语句,并且指明resultMap;
我的配置文件如下(desktop_common_sqlMap.xml):
[html] view plaincopy在CODE上查看代码片派生到我的代码片
<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源码如下:
[java] view plaincopy在CODE上查看代码片派生到我的代码片
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; 
    } 

相关标签: dao java sql