- 浏览: 76670 次
- 性别:
- 来自: 杭州
文章分类
最新评论
部分代码是借鉴其他博客
/*
* 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;
}
}
/*
* 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;
}
}
发表评论
-
springjdbc连接多个数据库谁有比较好的解决方法
2013-03-06 17:27 665springjdbc连接多个数据库谁有比较好的解决方法 -
Spring3jdbc架构整合webservice框架cxf
2012-11-07 18:13 7271.下载cxf全部jar包引入项目 2.src下新建sprin ... -
org.springframework.context.annotation.ConflictingBeanDefinitionException: Annot
2012-10-15 09:31 7347Caused by: org.springframework. ... -
Spring3 JDBC 通用DAO封装2 dao层 后续不断更新
2012-10-10 17:19 735public interface UsersDao exten ... -
Spring3 JDBC 通用DAO封装2 分页实现使用策略模式兼容不同数据库 后续不断更新
2012-10-10 17:18 1063package com.dahua.core.page; p ...
相关推荐
本篇将围绕“Spring3 JDBC通用DAO封装”这一主题展开,介绍如何实现一个高效的DAO层,并分享相关代码示例。 1. **Spring3 JDBC概述** Spring3 JDBC通过提供JdbcTemplate和SimpleJdbcInsert等工具类,帮助开发者...
2. Spring JDBC封装:Spring JDBC通过Template类(如JdbcTemplate)对JDBC进行了高度抽象和封装,减少了代码量,提高了代码的可读性和可维护性。 二、Spring JDBC DAO设计 1. DAO模式:DAO模式是一种设计模式,用于...
ifunsu封装基于springjdbc的dao层,具体用法请看本站博客http://blog.csdn.net/ifunsu 。
标题"ifunsu封装基于springjdbc的dao层api"指的是一个特定的项目或库,名为ifunsu,它已经对Spring JDBC进行了封装,以创建更易用的数据访问对象(DAO)层API。DAO层是应用程序中负责与数据库进行交互的部分,通常...
Mybatis通用DAO设计封装主要涉及的是在Java开发中如何高效地使用Mybatis框架进行数据库操作。Mybatis是一款轻量级的持久层框架,它避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。通过提供自定义SQL、存储...
1. **JdbcTemplate**:这是Spring JDBC的基础组件,它通过模板方法模式封装了常见的JDBC操作,如执行SQL查询、更新、存储过程等。使用JdbcTemplate,开发者无需手动管理数据库连接、预编译语句、结果集转换等细节,...
在Service层,我们通常使用Spring框架提供的`@Service`注解标记服务类,并通过`@Autowired`注解自动注入DAO实例。此外,我们可以自定义一个`ServiceException`来封装业务层的错误信息,以便于客户端更好地理解和处理...
在JDBC+DAO模式中,DAO类封装了对数据库的所有操作,使业务逻辑代码与数据访问代码分离,提高了代码的可维护性和可测试性。 连接Oracle数据库的基本步骤如下: 1. **加载驱动**:使用`Class.forName()`方法加载...
DAO(Data Access Object)模式是一种设计模式,用于封装对数据库的所有访问,使得业务逻辑层与数据访问层解耦,提高代码的可重用性和可维护性。本实例将详细介绍如何使用JDBC和DAO模式来实现数据库操作。 首先,...
本文将从三个方面探讨Spring对DAO的支持:传统模式的DAO,Spring对JDBC的DAO支持,以及Spring对Hibernate的DAO支持。 ### 1. 传统DAO模式 在传统的DAO模式中,通常需要实现以下几个组件: - **DAO工厂**:创建DAO...
3. **Service层**:Service层是业务逻辑的主要承载者,它封装了对DAO层的调用。Service层的接口和实现类可以使用Spring的依赖注入来注入DAO。 4. **DAO层**:DAO(Data Access Object)层负责与数据库的交互,通常...
其中,Spring JDBC模块是Spring框架的重要组成部分,它提供了一种抽象层,使得开发者能够更方便地与数据库进行交互。本文将详细探讨Spring JDBC-3.0.5.jar中的核心概念、功能和使用技巧。 1. **Spring JDBC的核心...
在Spring框架中,DAO(Data Access Object)层是应用程序与数据库交互的核心部分。Spring提供了多种方式来支持DAO的配置,使得开发人员可以灵活地选择最适合项目需求的数据访问策略。以下将详细阐述Spring对DAO支持...
标题:“spring的持久层封装” 描述:“spring持久层封装,新手可用,物超所值” 标签:“spring” 根据给定的文件信息,我们将深入探讨Spring框架中持久层封装的概念、重要性和具体实现方式。 ### 一、Spring...
2. **分层设计**:Spring框架支持分层的设计模式,这意味着不同的业务功能可以被封装在不同的层中,例如Web层负责处理用户界面,Service层处理业务逻辑,DAO层处理数据访问。这样的设计有助于保持代码的清晰度,并...
Struts1、Spring 2.5.6 和 JDBC 是经典的Java Web开发技术组合,它们各自在应用程序架构中扮演着不同的角色。Struts1是MVC(Model-View-Controller)框架,Spring则是一个全面的轻量级应用框架,而JDBC(Java ...
《Spring MVC + Spring + Spring JDBC 整合实例详解》 在Java Web开发中,Spring框架因其强大的功能和灵活的设计而备受推崇。Spring MVC、Spring核心模块以及Spring JDBC是Spring框架中的三大重要组成部分,它们...
通过这种方式,上层的应用程序可以无需直接处理复杂的数据库操作,只需调用DAO层提供的接口即可完成数据交互。 #### 2. Spring框架的支持 Spring框架提供了丰富的特性来支持DAO模式的实现,包括但不限于: - **...
1. **异常封装**:Spring对JDBC API抛出的运行时异常进行了统一的封装,转换为一种通用的`DataAccessException`异常层次结构。这种方式允许开发者更专注于业务逻辑的处理,而不是复杂的错误处理逻辑。 2. **模板类...
Spring JDBC是Spring框架的一个核心模块,它为Java开发者提供了对JDBC(Java Database Connectivity)的高级封装,使得数据库访问变得更加简单、易管理。在“spring-jdbc-1.0.723.zip”这个压缩包中,我们关注的是...