用JDBCTemplate实现的单表通用DAO,实现增删改查和统计

package com.nbport.xk.dao;

import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.BeanWrapper;
import org.springframework.beans.BeanWrapperImpl;
import org.springframework.jdbc.core.RowMapper;

public class Table<T,PK> {
	
	//bean类型
	private Class<?> beanClass = null;
	
	//表名
    private String tableName = null;
    
    //主键名
    private String tableKey = null;
    
    //用数据库自动创建的增长ID
    private boolean autoGeneratePK = false;
    
    //时间格式化
    private SimpleDateFormat dateFormat = null;
    
    //rowMapper
    private RowMapper<T> rowMapper = null;
    
	class TableCache{
		
		private String insertSqlPrefix = null;
		
		private String deleteSqlPrefix = null;
		
		private String updateSqlPrefix = null;
		
		private String searchSqlPrefix = null;
		
		private String searchByIDSqlPrefix = null;
		
		private String countSqlPrefix = null;
		
		private String countByConditionSqlPrefix = null;
		
		private List<PropertyDescriptor> properties = null;
		
		private PropertyDescriptor keyDescriptor = null;
		
		private Method keySetMethod = null;
		
		private Method keyGetMethod = null;
		
		public TableCache(){
			
		}

		public String getInsertSqlPrefix() {
			return insertSqlPrefix;
		}

		public void setInsertSqlPrefix(String insertSqlPrefix) {
			this.insertSqlPrefix = insertSqlPrefix;
		}

		public String getDeleteSqlPrefix() {
			return deleteSqlPrefix;
		}

		public void setDeleteSqlPrefix(String deleteSqlPrefix) {
			this.deleteSqlPrefix = deleteSqlPrefix;
		}

		public String getUpdateSqlPrefix() {
			return updateSqlPrefix;
		}

		public void setUpdateSqlPrefix(String updateSqlPrefix) {
			this.updateSqlPrefix = updateSqlPrefix;
		}

		public List<PropertyDescriptor> getProperties() {
			return properties;
		}

		public void setProperties(List<PropertyDescriptor> properties) {
			this.properties = properties;
		}

		public Method getKeySetMethod() {
			return keySetMethod;
		}

		public void setKeySetMethod(Method keySetMethod) {
			this.keySetMethod = keySetMethod;
		}

		public Method getKeyGetMethod() {
			return keyGetMethod;
		}

		public void setKeyGetMethod(Method keyGetMethod) {
			this.keyGetMethod = keyGetMethod;
		}

		public PropertyDescriptor getKeyDescriptor() {
			return keyDescriptor;
		}

		public void setKeyDescriptor(PropertyDescriptor keyDescriptor) {
			this.keyDescriptor = keyDescriptor;
		}

		public String getSearchSqlPrefix() {
			return searchSqlPrefix;
		}

		public void setSearchSqlPrefix(String searchSqlPrefix) {
			this.searchSqlPrefix = searchSqlPrefix;
		}

		public String getSearchByIDSqlPrefix() {
			return searchByIDSqlPrefix;
		}

		public void setSearchByIDSqlPrefix(String searchByIDSqlPrefix) {
			this.searchByIDSqlPrefix = searchByIDSqlPrefix;
		}

		public String getCountSqlPrefix() {
			return countSqlPrefix;
		}

		public void setCountSqlPrefix(String countSqlPrefix) {
			this.countSqlPrefix = countSqlPrefix;
		}

		public String getCountByConditionSqlPrefix() {
			return countByConditionSqlPrefix;
		}

		public void setCountByConditionSqlPrefix(String countByConditionSqlPrefix) {
			this.countByConditionSqlPrefix = countByConditionSqlPrefix;
		}
				
	}
	
	private TableCache cache = null;
	
    public Table(Class<T> beanClass,RowMapper<T> rowMapper,String tableName,String tableKey,boolean autoGeneratePK,SimpleDateFormat dateFormat){
    	this.beanClass = beanClass;
    	this.rowMapper = rowMapper;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值