Spring3 JDBC 通用DAO封装1目前正在完成dao层 后续不断更新

部分代码是借鉴其他博客
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.dahua.core;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;

import com.dahua.core.page.Pager;


/**
* 基于Spring3 JDBC
* User: szj
* Date: 2012-04-01
* Time: 14:09:44
* BaseDAO 数据库连接基础类
*/

public interface BaseDao<T, ID extends Serializable> {


public Number saveAndReturnKey(Saveable objForSave);
public Number saveAndReturnKey(Object objForSave,String tableName,String...keyColumns);
public Number saveAndReturnKey(String tableName,Map<String,Object> columnAndValue,String...keyColumns);
public int addList(Collection<T> entityCollection, Class<T> entityClazz);
public int delete(T entity);
public int deleteList(Collection<T> entityCollection, Class<T> entityClazz);
public void update(T entity);
public int updateList(Collection<T> entityCollection, Class<T> entityClazz);
public void saveOrUpdate(T entity);
public List<T> getList(String sql,Class<T> entityClazz);
public List<T> getListAll(Class<T> entityClazz);
public List<T> getPageList( String hSql,Class<T> entityClazz, Pager pager);
/**
* 按某个字段查找
* @param sql
* @param columnName
* @param value
* return 返回List
*/
public List<T> findBycolumnNameList(Class<T> entityClazz, String columnName, Object value);
/**
* 按某个字段查找
* @param sql
* @param columnName
* @param value
* return 返回T
*/
public T findBycolumnName(Class<T> entityClazz, String columnName, Object value);
/**
* 按id查找
* @param sql
* @param columnName
* @param value
* return 返回T
*/
public T findByid(Class<T> entityClazz, Object value);
/**
* 统计总数
* @param sql
*/
public int countAll(String sql);
/**
* 删除数据的方法
* @param sql
* @param columns
*/
public void delete(String sql,String columns);
public int deleteById(Class<T> entityClazz, ID id);
public void update(String sql);
public void update(String sql,T entity);


}
package com.dahua.core;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;


import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.BeanPropertyRowMapper;

import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;

import org.springframework.jdbc.core.simple.SimpleJdbcInsert;
import org.springframework.jdbc.core.support.JdbcDaoSupport;

import com.dahua.core.page.LimitPageHepler;
import com.dahua.core.page.Pager;
/**
* 基于Spring3 JDBC
* User: szj
* Date: 2012-04-01
* Time: 14:09:44
* BaseDAO 数据库连接基础类
*/


public class BaseDaoImpl<T, PK extends Serializable> extends JdbcDaoSupport implements BaseDao<T, PK>{

protected Class<T> entityClass;// DAO所管理的Entity类型.
public void setEntityClass(Class<T> type){//注入实体类型
this.entityClass=type;
}
public Class<T> getEntityClass(){
return this.entityClass;
}

public BaseDaoImpl(){}
public BaseDaoImpl(Class<T> entityClass){this.entityClass = entityClass;}

/**
* 添加 ,属性和数据库字段名一致,返回主键
* @param objForSave ,继承Saveable 的接口的类
* @return
*/
public Number saveAndReturnKey(Saveable objForSave){
return saveAndReturnKey(objForSave, objForSave.getTableName(), objForSave.getKeyColumns());
}
/**
* 添加实体,返回主键
* @param objForSave
* @param tableName
* @param columnAndValue
* @param keyColumns
* @return
*/
public Number saveAndReturnKey(Object objForSave,String tableName,String...keyColumns){
SimpleJdbcInsert insertActor = getSimpleJdbcInsert();
insertActor.setTableName(tableName);
insertActor.usingGeneratedKeyColumns(keyColumns);
Number newId = insertActor.executeAndReturnKey(new BeanPropertySqlParameterSource(objForSave)) ;
traceSql(insertActor.getInsertString());
return newId;
}
/**
* @param objForSave 插入数据库的类
* @param tableName
* @param keyColumns
* @return
*/
public void save(Saveable objForSave){
SimpleJdbcInsert insertActor = getSimpleJdbcInsert();
insertActor.setTableName(objForSave.getTableName());
insertActor.execute(new BeanPropertySqlParameterSource(objForSave)) ;
traceSql(insertActor.getInsertString());
}
/**
* @param objForSave 插入数据库的类,注意
* @param tableName
* @param keyColumns
* @return
*/
public void save(Object objForSave,String tableName){
SimpleJdbcInsert insertActor = getSimpleJdbcInsert();
insertActor.setTableName(tableName);
insertActor.execute(new BeanPropertySqlParameterSource(objForSave)) ;
traceSql(insertActor.getInsertString());
}
/**
*
* @param objForSave 插入数据库的类
* @param tableName
* @param keyColumns
* @return
*/
public void save(Object objForSave,String tableName,String...keyColumns){
SimpleJdbcInsert insertActor = getSimpleJdbcInsert();
insertActor.setTableName(tableName);
insertActor.execute(new BeanPropertySqlParameterSource(objForSave)) ;
traceSql(insertActor.getInsertString());
}
/**
*
* @param objForSave
* @param tableName
* @param columnAndValue
* @param keyColumns
* @return
*/
public Number saveAndReturnKey(String tableName,Map<String,Object> columnAndValue,String...keyColumns){
SimpleJdbcInsert insertActor = getSimpleJdbcInsert();
insertActor.setTableName(tableName);
insertActor.usingGeneratedKeyColumns(keyColumns);
Number newId = insertActor.executeAndReturnKey(columnAndValue) ;
traceSql(insertActor.getInsertString());
return newId;
}
/**
* 查询部分
* @param sql
* @param entityClazz
* return 返回List
*/
public List<T> getList(String sql,Class<T> entityClazz) {
return getJdbcTemplate().query(sql, BeanPropertyRowMapper.newInstance(entityClazz));
}
/**
* 查询全部
* @param entityClazz
* return 返回List
*/

public List<T> getListAll(Class<T> entityClazz) {
String tableName = entityClazz.getSimpleName();
String sql = "SELECT * FROM " + tableName;
return getJdbcTemplate().query(sql, BeanPropertyRowMapper.newInstance(entityClazz));
}

/**
* 按某个字段查找
* @param sql
* @param columnName
* @param value
* return 返回List
*/
public List<T> findBycolumnNameList(Class<T> entityClazz, String columnName, Object value) {
String tableName = entityClazz.getSimpleName();
String sql = "SELECT * FROM " + tableName + " WHERE "+columnName+"=?";
return getJdbcTemplate().query(sql, BeanPropertyRowMapper.newInstance(entityClazz),value);
}
/**
* 按某个字段查找
* @param sql
* @param columnName
* @param value
* return 返回T
*/
public T findBycolumnName(Class<T> entityClazz, String columnName, Object value) {
String tableName =entityClazz.getSimpleName();
String sql = "SELECT * FROM " + tableName + " WHERE "+columnName+"=?";
return (T)getJdbcTemplate().queryForObject(sql, BeanPropertyRowMapper.newInstance(entityClazz),value);
}

/**
* 按id查找
* @param sql
* @param columnName
* @param value
* return 返回T
*/
public T findByid(Class<T> entityClazz, Object value) {
String tableName =entityClazz.getSimpleName();
String sql = "SELECT * FROM " + tableName + " WHERE id=?";
return (T)getJdbcTemplate().queryForObject(sql, BeanPropertyRowMapper.newInstance(entityClazz),value);
}
/**
* 统计总数
* @param sql
*/
public int countAll(String sql) {
return getJdbcTemplate().queryForInt(sql);
}

/**
* 删除数据的方法
* @param sql
* @param columns
*/
public void delete(String sql,String columns){
getJdbcTemplate().update(sql, columns);
}
/**
* 按ID删除数据的方法
* @param sql
* @param columns
*/
public int deleteById(Class<T> entityClazz, PK id) {
String tableName = entityClazz.getSimpleName();
String sql = "DELETE FROM " + tableName + " WHERE id=?";
return getJdbcTemplate().update(sql, id);
}
/**
* 批量删除数据的方法
* @param sql
* @param columns
*/
public int deleteList(String sql,String columns) {

/*String tableName = entityClazz.getSimpleName();
String sql = "DELETE FROM " + tableName + " WHERE id=:id";
List<T> list= entityCollection.ArrayList<T>;
int[] result = getJdbcTemplate().(sql, batchArgs);
return result.length;*/
return 0;
}
/**
* 更新数据的方法
* @param sql
* @param T entity
*/
public void update(String sql,T entity){
getJdbcTemplate().update(sql,entity);
}
/**
* 更新数据的方法
* @param sql
*/
public void update(String sql){
getJdbcTemplate().update(sql);
}


//----tools
public SimpleJdbcInsert getSimpleJdbcInsert(){
return new SimpleJdbcInsert(getJdbcTemplate());
}
public SimpleJdbcInsert getSimpleJdbcInsert(String tableName){
return new SimpleJdbcInsert(getJdbcTemplate());
}
public void traceSql(String sql){
System.out.println("JDBC:"+sql);
}
public int addList(Collection<T> entityCollection, Class<T> entityClazz) {
// TODO Auto-generated method stub
return 0;
}

public int delete(T entity) {
// String tableName = this.TABLE_PREFIX + entity.getClass().getSimpleName();
// String sql = "DELETE FROM " + tableName + " WHERE id =:id";
String sql="";
return getJdbcTemplate().update(sql, new BeanPropertySqlParameterSource(entity));
}
public int deleteList(Collection<T> entityCollection, Class<T> entityClazz) {
//String tableName = this.TABLE_PREFIX + entityClazz.getSimpleName();
// String sql = "DELETE FROM " + tableName + " WHERE id=:id";
String sql="";
int[] result = getJdbcTemplate().batchUpdate(sql, (BatchPreparedStatementSetter) entityCollection);
return result.length;
}
public List<T> getPageList(String sql, Class<T> entityClazz,Pager pager) {
//String tableName = entityClazz.getSimpleName();
//String sql = "SELECT * FROM " + tableName;
sql=LimitPageHepler.getLimitPage(sql, pager);
return getJdbcTemplate().query(sql, BeanPropertyRowMapper.newInstance(entityClazz));
}
public void saveOrUpdate(T entity) {
// TODO Auto-generated method stub

}
public void update(T entity) {
// TODO Auto-generated method stub

}
public int updateList(Collection<T> entityCollection, Class<T> entityClazz) {
// TODO Auto-generated method stub
return 0;
}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值