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

📄 basedaoibatis.java

📁 struts spring ibatis
💻 JAVA
字号:
package com.struts2.framework.dao.ibatisImpl;

import java.io.Serializable;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Collection;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.springframework.orm.ObjectRetrievalFailureException;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import org.springframework.util.ClassUtils;

import com.struts2.framework.dao.BaseDao;

/**
 * @author Bobby Diaz
 * @version 1.0
 */
public  class BaseDaoiBATIS extends SqlMapClientDaoSupport implements
		BaseDao {
	protected final Log log = LogFactory.getLog(getClass());

	public Collection getObjects(Class clazz) {
		return getSqlMapClientTemplate().queryForList(
				getSelectQuery(ClassUtils.getShortName(clazz)), null);
	}
	public Collection getObjects(Class clazz, Object parameters) {

		Collection queryResult = null;
		try {
			queryResult = getSqlMapClientTemplate().queryForList(
					getSelectQuery(ClassUtils.getShortName(clazz)), parameters);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return queryResult;
	}
	public Object getObject(Class clazz, Serializable primaryKey) {
		Object object = getSqlMapClientTemplate().queryForObject(
				getFindQuery(ClassUtils.getShortName(clazz)), primaryKey);
		if (object == null) {
			throw new ObjectRetrievalFailureException(ClassUtils
					.getShortName(clazz), primaryKey);
		}
		return object;
	}

	public Object saveObject(final Object object) {
		String className = ClassUtils.getShortName(object.getClass());
		Object primaryKey = getSqlMapClientTemplate().insert(
				getInsertQuery(className), object);

		// check for null id
		if (primaryKey == null) {
			throw new ObjectRetrievalFailureException(className, object);

		}
		return primaryKey;
	}

	public int updateObject(Object object) {
		String className = ClassUtils.getShortName(object.getClass());
		return getSqlMapClientTemplate().update(getUpdateQuery(className),
				object);
	}

	public void removeObject(Class clazz, Serializable primaryKey) {
		getSqlMapClientTemplate().update(
				getDeleteQuery(ClassUtils.getShortName(clazz)), primaryKey);
	}

	private String getPrimaryKeyFieldName(Object o) {
		Field fieldlist[] = o.getClass().getDeclaredFields();
		String fieldName = null;
		for (int i = 0; i < fieldlist.length; i++) {
			Field fld = fieldlist[i];
			if (fld.getName().equals("id")) {
				fieldName = fld.getName();
				break;
			}
		}
		return fieldName;
	}

	protected Object getPrimaryKeyValue(Object o) {
		// Use reflection to find the first property that has the name "id" or
		// "Id"
		String fieldName = getPrimaryKeyFieldName(o);
		String getterMethod = "get"
				+ Character.toUpperCase(fieldName.charAt(0))
				+ fieldName.substring(1);

		try {
			Method getMethod = o.getClass().getMethod(getterMethod, null);
			return getMethod.invoke(o, null);
		} catch (Exception e) {
			e.printStackTrace();
			log.error("Could not invoke method '" + getterMethod + "' on "
					+ ClassUtils.getShortName(o.getClass()));
		}
		return null;
	}

	/**
	 * @return Returns the select query name.
	 */
	public String getSelectQuery(String className) {
		return "get" + className + "s";
	}

	/**
	 * @return Returns the find query name.
	 */
	public String getFindQuery(String className) {
		return "get" + className;
	}

	/**
	 * @return Returns the insert query name.
	 */
	public String getInsertQuery(String className) {
		return "add" + className;
	}

	/**
	 * @return Returns the update query name.
	 */
	public String getUpdateQuery(String className) {
		return "update" + className;
	}

	/**
	 * @return Returns the delete query name.
	 */
	public String getDeleteQuery(String className) {
		return "delete" + className;
	}

	/**
	 * @return Returns the recount query name.
	 */
	public String getRecountQuery(String className) {
		return "getRecount" + className;
	}



	public Class getFeaturedClass() {
		
		return null;
	}

}

⌨️ 快捷键说明

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