⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ibatisdao.java

📁 一个webwork+spring+ibatis的小例子
💻 JAVA
字号:
/*
 * Created on 2005-4-16 Author 泰伯子仪
 *
 * Copyright (c) 2003-2005 by www.sanv.org
 * All rights reserved.
 */

package org.sanv.framework.dao.ibatis;

import java.util.List;
import java.util.Map;

import org.sanv.framework.model.IIbatisModel;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

public class IbatisDao extends SqlMapClientDaoSupport implements IIbatisDao
{

    /*
     * 以下9个函数是Dao的默认实现,一般情况下,你可以直接使用他们 public Object getObjectInfo(String ,
     * Object ); public List getObjectList(String , Object ); public Object
     * insertObject(String , Object ); public int insertObjectAndGetID(String ,
     * Object ); public int updateObject(String , Object ); public int
     * deleteObject(String , Object ); public boolean checkObjectExists(String ,
     * Object ); public int getRecordCount(String , Object ); public List
     * getPageObjectList(String , Object ,int , int );
     */

    /**
     * 根据conditionObjInfo对象中的条件,从数据库中取得对对象。
     * 这是一个默认的实现,必须对应statementId为getObjectInfo
     */
    public Object getObjectInfo(String sqlMapNameSpace, Object conditionObjInfo)
    {
        return getSqlMapClientTemplate().queryForObject(
                sqlMapNameSpace + ".getObjectInfo", conditionObjInfo);
    }

    /**
     * 根据conditionObjInfo对象中的条件,从数据库中取得多个对象。
     * 这是一个默认的实现,必须对应statementId为getObjectList
     */
    public List getObjectList(String sqlMapNameSpace, Object conditionObjInfo)
    {
        return getSqlMapClientTemplate().queryForList(
                sqlMapNameSpace + ".getObjectList", conditionObjInfo);
    }

    /**
     * 向数据库中插入一条记录,数据被封装在info对象中。 这是一个默认的实现,必须对应statementId为insertObject
     */
    public Object insertObject(String sqlMapNameSpace, Object objInfo)
    {
        return getSqlMapClientTemplate().insert(
                sqlMapNameSpace + ".insertObject", objInfo);
    }

    /**
     * 向数据库中插入一条记录并返回刚插入的ID,数据被封装在info对象中。
     * 这是一个默认的实现,必须对应statementId为insertObjectAndGetID
     */
    public int insertObjectAndGetID(String sqlMapNameSpace, Object objInfo)
    {
        return ((Integer) getSqlMapClientTemplate().insert(
                sqlMapNameSpace + ".insertObjectAndGetID", objInfo)).intValue();
    }

    /**
     * 更新数据库中的记录 这是一个默认的实现,必须对应statementId为updateObject
     */
    public int updateObject(String sqlMapNameSpace, Object objInfo)
    {
        return getSqlMapClientTemplate().update(
                sqlMapNameSpace + ".updateObject", objInfo);
    }

    /**
     * 删除数据库中的记录 这是一个默认的实现,必须对应statementId为deleteObject
     */
    public int deleteObject(String sqlMapNameSpace, Object conditionObjInfo)
    {
        return getSqlMapClientTemplate().delete(
                sqlMapNameSpace + ".deleteObject", conditionObjInfo);
    }

    /**
     * 检查数据库中是否已经存在此记录,若存在返回true;否则,返回false。
     * 这是一个默认的实现,必须对应statementId为checkObjectExists
     */
    public boolean checkObjectExists(String sqlMapNameSpace,
            Object conditionObjInfo)
    {
        int number = ((Integer) getSqlMapClientTemplate().queryForObject(
                sqlMapNameSpace + ".checkObjectExists", conditionObjInfo))
                .intValue();
        return (number > 0) ? true : false;
    }

    /**
     * getPageObjectList(String,Object,int,int);根据conditionObjInfo条件从数据库中取出从intStart开始起的intOffset条记录集
     * 这是一个默认的实现,必须对应statementId为getObjectPageList,同时必须配合getRecordCount(String ,
     * Object)使用
     * 
     * getRecordCount(String , Object)实现从数据库中取得对象的个数也可独立使用。
     * 这是一个默认的实现,必须对应statementId为getRecordCount
     */
    public int getRecordCount(String sqlMapNameSpace, Object conditionObjInfo)
    {
        return ((Integer) getSqlMapClientTemplate().queryForObject(
                sqlMapNameSpace + ".getRecordCount", conditionObjInfo))
                .intValue();
    }

    public List getPageObjectList(String sqlMapNameSpace,
            Object conditionObjInfo, int intStart, int intOffset)
    {
        if(conditionObjInfo instanceof IIbatisModel)
        {
            ((IIbatisModel) conditionObjInfo).setIntStart(intStart);
            ((IIbatisModel) conditionObjInfo).setIntOffset(intOffset);
        }
        else if(conditionObjInfo instanceof Map)
        {
            ((Map) conditionObjInfo).put("intStart", new Integer(intStart));
            ((Map) conditionObjInfo).put("intOffset", new Integer(intOffset));
        }
            
        return getSqlMapClientTemplate().queryForList(
                sqlMapNameSpace + ".getPageObjectList", conditionObjInfo);
    }

    /*
     * 以下9个函数是Dao提供的自定义实现,你可以使用你自己的statmentId完成不同的操作 public Object
     * getObjectInfo(String , String , Object ); public List
     * getObjectList(String , String , Object ); public Object
     * insertObject(String , String , Object ); public int
     * insertObjectAndGetID(String , String , Object ); public int
     * updateObject(String , String , Object ); public int deleteObject(String ,
     * String , Object ); public boolean checkObjectExists(String , String ,
     * Object ); public int getRecordCount(String , String , Object ); public
     * List getPageObjectList(String , String , Object ,int , int );
     */

    /**
     * 根据conditionObjInfo对象中的条件,从数据库中取得对对象。 这是一个自定义的实现,你可以使用你自己设定的statementId
     */
    public Object getObjectInfo(String sqlMapNameSpace, String statementId,
            Object conditionObjInfo)
    {
        return getSqlMapClientTemplate().queryForObject(
                sqlMapNameSpace + "." + statementId, conditionObjInfo);
    }

    /**
     * 根据conditionObjInfo对象中的条件,从数据库中取得多个对象。 这是一个自定义的实现,你可以使用你自己设定的statementId
     */
    public List getObjectList(String sqlMapNameSpace, String statementId,
            Object conditionObjInfo)
    {
        return getSqlMapClientTemplate().queryForList(
                sqlMapNameSpace + "." + statementId, conditionObjInfo);
    }

    /**
     * 向数据库中插入一条记录,数据被封装在info对象中。 这是一个自定义的实现,你可以使用你自己设定的statementId
     */
    public Object insertObject(String sqlMapNameSpace, String statementId,
            Object objInfo)
    {
        return getSqlMapClientTemplate().insert(
                sqlMapNameSpace + "." + statementId, objInfo);
    }

    /**
     * 向数据库中插入一条记录并返回刚插入的ID,数据被封装在info对象中。 这是一个自定义的实现,你可以使用你自己设定的statementId
     */
    public int insertObjectAndGetID(String sqlMapNameSpace, String statementId,
            Object objInfo)
    {
        return ((Integer) getSqlMapClientTemplate().insert(
                sqlMapNameSpace + "." + statementId, objInfo)).intValue();
    }

    /**
     * 更新数据库中的记录 这是一个自定义的实现,你可以使用你自己设定的statementId
     */
    public int updateObject(String sqlMapNameSpace, String statementId,
            Object objInfo)
    {
        return getSqlMapClientTemplate().update(
                sqlMapNameSpace + "." + statementId, objInfo);
    }

    /**
     * 删除数据库中的记录 这是一个自定义的实现,你可以使用你自己设定的statementId
     */
    public int deleteObject(String sqlMapNameSpace, String statementId,
            Object conditionObjInfo)
    {
        return getSqlMapClientTemplate().delete(
                sqlMapNameSpace + "." + statementId, conditionObjInfo);
    }

    /**
     * 检查数据库中是否已经存在此记录,若存在返回true;否则,返回false。 这是一个自定义的实现,你可以使用你自己设定的statementId
     */
    public boolean checkObjectExists(String sqlMapNameSpace,
            String statementId, Object conditionObjInfo)
    {
        int number = ((Integer) getSqlMapClientTemplate().queryForObject(
                sqlMapNameSpace + "." + statementId, conditionObjInfo))
                .intValue();
        return (number > 0) ? true : false;
    }

    /**
     * 根据conditionObjInfo对象中的条件,从数据库中取得对象的个数。 这是一个自定义的实现,你可以使用你自己设定的statementId
     */

    /**
     * getPageObjectList(String,Object,int,int);根据conditionObjInfo条件从数据库中取出从intStart开始起的intOffset条记录集
     * 这是一个自定义的实现,你可以使用你自己设定的statementId,同时必须配合getRecordCount(String , String ,
     * Object)使用
     * 
     * getRecordCount(String , String , Object)实现从数据库中取得对象的个数也可独立使用。
     * 这是一个自定义的实现,你可以使用你自己设定的statementId,
     */
    public int getRecordCount(String sqlMapNameSpace, String statementId,
            Object conditionObjInfo)
    {
        return ((Integer) getSqlMapClientTemplate().queryForObject(
                sqlMapNameSpace + "." + statementId, conditionObjInfo))
                .intValue();
    }

    public List getPageObjectList(String sqlMapNameSpace, String statementId,
            Object conditionObjInfo, int intStart, int intOffset)
    {
        if(conditionObjInfo instanceof IIbatisModel)
        {
            ((IIbatisModel) conditionObjInfo).setIntStart(intStart);
            ((IIbatisModel) conditionObjInfo).setIntOffset(intOffset);
        }
        else if(conditionObjInfo instanceof Map)
        {
            ((Map) conditionObjInfo).put("intStart", new Integer(intStart));
            ((Map) conditionObjInfo).put("intOffset", new Integer(intOffset));
        }
        return getSqlMapClientTemplate().queryForList(
                sqlMapNameSpace + "." + statementId, conditionObjInfo);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -