`
阅读更多
最近想玩会,写点东西练下手,还没有经过测试,这个肯定不够完美,做个自已的备份用。

有人想用请自已测一下吧,有时间再继续进行修改完善。



package com.zhenjw.dao;

import java.util.Date;
import java.util.List;

import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.zhenjw.common.HibernateSessionFactory;
import com.zhenjw.common.QueryResult;

/**
 * Hibernate base DataBase Access Object
 * @author zjw
 * @datetime Jun 18, 200910:00:19 PM
 */

public class BaseDao {
	
	private Logger logger=Logger.getLogger(this.getClass());

	/**
	 * 
	 */
	public BaseDao() {
		// TODO Auto-generated constructor stub
	}

	/**
	 * 功能:保存数据
	 * @param entity
	 * @throws DaoException
	 */
	public void create(Object entity)throws DaoException
	{
		logger.debug("create , entity.classname"+entity.getClass().getName());
		
		Session session=null;
		
		Transaction tr=null;
		
		boolean commitFlag=false;
		
		try{
			
			session=this.getSession();
			
			tr=session.beginTransaction();
			
			tr.begin();
			
			session.save(entity);
			
			tr.commit();
			
			commitFlag=true;
			
			session.flush();
			
		}catch(HibernateException e)
		{	
			this.haveHibernateException("basedao.create.error", e);
		}
		finally{
			
			this.closeSession(session, tr, commitFlag);
			
		}
		
	}
	
	/**
	 * 功能:修改数据
	 * @param entity
	 * @throws DaoException
	 */
	public void update(Object entity)throws DaoException
	{
		logger.debug("update , entity.classname"+entity.getClass().getName());
		
		Session session=null;
		
		Transaction tr=null;
		
		boolean commitFlag=false;
		
		try{
			
			session=this.getSession();
			
			tr=session.beginTransaction();
			
			tr.begin();
			
			session.update(entity);
			
			tr.commit();
			
			commitFlag=true;
			
			session.flush();
			
		}catch(HibernateException e)
		{
			this.haveHibernateException("basedao.update.error", e);
		}
		finally{
			
			this.closeSession(session, tr, commitFlag);
			
		}
		
	}

	/**
	 * 功能:根据ID得到对象
	 * @param clazz
	 * @param id
	 * @return Object
	 * @throws DaoException
	 */
	public Object getEntityById(Class clazz,long id)throws DaoException
	{
		Session session=null;
		
		Object result=null;
		
		try{
		
			result=session.get(clazz, id);
			
		}catch(HibernateException e)
		{	
			this.haveHibernateException("basedao.getEntityById.error", e);
			
		}finally
		{
			this.closeSession(session);
			
		}
		
		return result;
		
	}

	/**
	 * 功能:删除记录
	 * @param tableName    表名
	 * @param idFieldName  表的ID字段的名称
	 * @param id           ID数组
	 * @throws DaoException
	 */
	public void delete(String tableName ,String idFieldName,long[] id)throws DaoException
	{
		logger.debug(" delete  tableName="+tableName+"  ,idFieldName="+ idFieldName );
		
		if(id==null)
			
			logger.debug(" id is null ");
		
		else
		{
			StringBuilder idB=new StringBuilder();
			
			for(int i=0 ;i<id.length;i++)
			{
				if(i>0)
					
					idB.append(",");
				
				idB.append(id[i]);
					
			}
			
			logger.debug("  id ="+idB.toString());
			
			Session session=null;
			
			Transaction tr=null;
			
			boolean commitFlag=false;
			
			try{
				
				StringBuilder deleteSql=new StringBuilder();
				
				deleteSql.append("  delete from ").append(tableName)
				 		 .append("  where ").append( idFieldName ).append(" in ( "+idB.toString()+" ) ");
				
				logger.debug("deleteSql="+ deleteSql.toString());
				
				session=this.getSession();
				
				tr=session.beginTransaction();
				
				tr.begin();
				
				session.createSQLQuery( deleteSql.toString()).executeUpdate();
				
				tr.commit();
				
				commitFlag=true;
				
				session.flush();
				
			}catch(HibernateException e)
			{	
				this.haveHibernateException("basedao.delete.error", e);
				
			}finally{

				this.closeSession(session, tr, commitFlag);

			}
		} 
		
	}
	
	/**
	 * 功能:分页查询
	 * @param queryCount 查询记录总数的SQL
	 * @param queryData  查询数据的SQL
	 * @param pageNo     当前页的页码
	 * @param pageSize   每页显示的记录条数
	 * @return QueryResult
	 * @see com.zhenjw.common.QueryResult
	 * @throws DaoException
	 */
	public QueryResult queryBySql(StringBuilder queryCount,StringBuilder queryData,int pageNo,int pageSize)throws DaoException
	{
		return this.queryBySql(queryCount, queryData, pageNo, pageSize, null);
	}
	
	/**
	 * 功能:分页查询
	 * @param queryCount 查询记录总数的SQL
	 * @param queryData  查询数据的SQL
	 * @param pageNo     当前页的页码
	 * @param pageSize   每页显示的记录条数
	 * @param params     参数
	 * @return QueryResult
	 * @see com.zhenjw.common.QueryResult
	 * @throws DaoException
	 */
	public QueryResult queryBySql(StringBuilder queryCount,StringBuilder queryData,int pageNo,int pageSize,List params)throws DaoException
	{
		return this.queryBySql(queryCount.toString(), queryData.toString(), pageNo, pageSize, params);
	}
	
	/**
	 * 功能:分页查询
	 * @param queryCount 查询记录总数的SQL
	 * @param queryData  查询数据的SQL
	 * @param pageNo     当前页的页码
	 * @param pageSize   每页显示的记录条数
	 * @return QueryResult
	 * @see com.zhenjw.common.QueryResult
	 * @throws DaoException
	 */
	public QueryResult queryBySql(String queryCount,String queryData,int pageNo,int pageSize)throws DaoException
	{
		return this.queryBySql(queryCount, queryData, pageNo, pageSize, null);
	}
	
	/**
	 * 功能:分页查询
	 * @param queryCount 查询记录总数的SQL
	 * @param queryData  查询数据的SQL
	 * @param pageNo     当前页的页码
	 * @param pageSize   每页显示的记录条数
	 * @param params     参数
	 * @return QueryResult
	 * @see com.zhenjw.common.QueryResult
	 * @throws DaoException
	 */
	public QueryResult queryBySql(String queryCount,String queryData,int pageNo,int pageSize,List params)throws DaoException
	{
		QueryResult result=new QueryResult(); 
		
		logger.debug("queryBySql  \n queryCount="+queryCount+" \n queryData="+queryData+" \n pageNo ="+pageNo+" \n pageSize"+pageSize);
		
		this.writeLogger(null, params);
		
		Session session=null;
		
		try{
			
			session=this.getSession();
			
			int totalRow=this.getRowCountNum(session.createSQLQuery(queryCount).list() );
			
			result.setTotalRow(totalRow);
			
			result.setPageSize(pageSize);
			
			int totalPage=result.getPageNo();
			
			if(totalPage<pageNo)
				
				pageNo=totalPage;
			
			result.setPageNo(pageNo);
			
			//查询数据
			
			SQLQuery query=session.createSQLQuery(queryData);
			
			this.setParamters(params, query);
			
			this.setTurnPageParam(pageNo, pageSize, query);
			
			result.setDataList(query.list());
			
		}catch(HibernateException e)
		{
			this.haveHibernateException("basedao.queryBySql.error", e);
			
		}finally{
			
			this.closeSession(session);
		}
		
		return result;
	}
	
	/**
	 * 功能:分页查询
	 * @param queryCount 查询记录总数的HQL
	 * @param queryData  查询数据的HQL
	 * @param pageNo     当前页的页码
	 * @param pageSize   每页显示的记录条数
	 * @return QueryResult
	 * @see com.zhenjw.common.QueryResult
	 * @throws DaoException
	 */
	public QueryResult queryByHql(StringBuilder queryCount,StringBuilder queryData,int pageNo,int pageSize)throws DaoException
	{
		return this.queryByHql(queryCount, queryData, pageNo, pageSize, null);
	}
	
	/**
	 * 功能:分页查询
	 * @param queryCount 查询记录总数的HQL
	 * @param queryData  查询数据的HQL
	 * @param pageNo     当前页的页码
	 * @param pageSize   每页显示的记录条数
	 * @param params     参数
	 * @return QueryResult
	 * @see com.zhenjw.common.QueryResult
	 * @throws DaoException
	 */
	public QueryResult queryByHql(StringBuilder queryCount,StringBuilder queryData,int pageNo,int pageSize,List params)throws DaoException
	{
		return this.queryByHql(queryCount.toString(), queryData.toString(), pageNo, pageSize, params);
	}
	
	/**
	 * 功能:分页查询
	 * @param queryCount 查询记录总数的HQL
	 * @param queryData  查询数据的HQL
	 * @param pageNo     当前页的页码
	 * @param pageSize   每页显示的记录条数
	 * @return QueryResult
	 * @see com.zhenjw.common.QueryResult
	 * @throws DaoException
	 */
	public QueryResult queryByHql(String queryCount,String queryData,int pageNo,int pageSize)
	{
		return this.queryByHql(queryCount, queryData, pageNo, pageSize, null);
	}
	
	/**
	 * 功能:分页查询
	 * @param queryCount 查询记录总数的HQL
	 * @param queryData  查询数据的HQL
	 * @param pageNo     当前页的页码
	 * @param pageSize   每页显示的记录条数
	 * @param params     参数
	 * @return QueryResult
	 * @see com.zhenjw.common.QueryResult
	 * @throws DaoException
	 */
	public QueryResult queryByHql(String queryCount,String queryData,int pageNo,int pageSize,List params)
	{
		QueryResult result=new QueryResult(); 
		
		logger.debug("queryByHql  \n queryCount="+queryCount+" \n queryData="+queryData+" \n pageNo ="+pageNo+" \n pageSize"+pageSize);
		
		this.writeLogger(null, params);
		
		Session session=null;
		
		try{
			
			session=this.getSession();
			
			int totalRow=this.getRowCountNum(session.createQuery(queryCount).list() );
			
			result.setTotalRow(totalRow);
			
			result.setPageSize(pageSize);
			
			int totalPage=result.getPageNo();
			
			if(totalPage<pageNo)
				
				pageNo=totalPage;
			
			result.setPageNo(pageNo);
			
			//查询数据
			
			Query query=session.createQuery(queryData);
			
			this.setParamters(params, query);
			
			this.setTurnPageParam(pageNo, pageSize, query);
			
			result.setDataList(query.list());
			
		}catch(HibernateException e)
		{
			this.haveHibernateException("basedao.queryByHql.error", e);
			
		}finally
		{
			this.closeSession(session);
		}
		
		return result;
	}
		
	/**
	 * 功能:查询数据
	 * @param queryData  查询数据的SQL语句
	 * @return List
	 * @throws DaoException
	 */
	public List queryBySql(String queryData)throws DaoException
	{
		return this.queryBySql(queryData, null);
	}
	
	/**
	 * 功能:查询数据
	 * @param queryData  查询数据的SQL语句
	 * @return List
	 * @throws DaoException
	 */
	public List queryBySql(StringBuilder queryData)throws DaoException
	{
		return this.queryBySql(queryData, null);
	}
	 
	/**
	 * 功能:查询数据
	 * @param queryData 查询数据的SQL语句
	 * @param params    参数
	 * @return List
	 * @throws DaoException
	 */
	public List queryBySql(String queryData,List params)throws DaoException
	{
		logger.debug("  queryBySql  queryData="+queryData);
		
		this.writeLogger(null, params);
		
		List result=null;
		
		Session session=null;
		
		try{
			
			session=this.getSession();
			
			SQLQuery query=session.createSQLQuery(queryData);
			
			this.setParamters(params, query);
			
			result=query.list();
			
		}catch(HibernateException e)
		{
			
			this.haveHibernateException("basedao.queryBySql.error", e);
			
		}finally
		{	
			this.closeSession(session);
		}
		
		return result;
		
	}
	
	/**
	 * 功能:查询数据
	 * @param queryData 查询数据的SQL语句
	 * @param params    参数
	 * @return List
	 * @throws DaoException
	 */
	public List queryBySql(StringBuilder queryData,List params)throws DaoException
	{
		return this.queryBySql(queryData.toString(), params);
	}
	
	/**
	 * 功能:查询数据
	 * @param queryData  查询数据的HQL语句
	 * @return List
	 * @throws DaoException
	 */
	public List queryByHql(String queryData)throws DaoException
	{

		return this.queryByHql(queryData, null);
		
	}
	
	/**
	 * 功能:查询数据
	 * @param queryData  查询数据的HQL语句
	 * @return List
	 * @throws DaoException
	 */
	public List queryByHql(StringBuilder queryData)throws DaoException
	{

		return this.queryByHql(queryData, null);
		
	}
	
	/**
	 * 功能:查询数据
	 * @param queryData 查询数据的HQL语句
	 * @param params    参数
	 * @return List
	 * @throws DaoException
	 */
	public List queryByHql(String queryData,List params)throws DaoException
	{
		logger.debug("  queryByHql  queryData="+queryData);
	
		this.writeLogger(null, params);
		
		List result=null;
		
		Session session=null;
		
		try{
			
			session=this.getSession();
			
			Query query=session.createQuery(queryData);
			
			this.setParamters(params, query);
			
			result=query.list();
			
		}catch(HibernateException e)
		{
			this.haveHibernateException("basedao.queryByHql.error", e);
			
		}finally
		{
			
			this.closeSession(session);
			
		}
		
		return result;
	}
	
	/**
	 * 功能:查询数据
	 * @param queryData 查询数据的HQL语句
	 * @param params    参数
	 * @return List
	 * @throws DaoException
	 */
	public List queryByHql(StringBuilder queryData,List params)throws DaoException
	{
		return this.queryByHql(queryData.toString(), params);
	}
	
	/**
	 * 功能:执行更新数据的SQL语句
	 * @param updataSql SQL语句
	 * @throws DaoException
	 */
	public void updateBySql(StringBuilder updataSql)throws DaoException
	{
		this.updateBySql(updataSql,null);
	}
	
	/**
	 * 功能:执行更新数据的SQL语句
	 * @param updataSql SQL语句
	 * @param params    参数
	 * @throws DaoException
	 */
	public void updateBySql(StringBuilder updataSql,List params)throws DaoException
	{
		this.updateBySql(updataSql.toString(), params);
	}
	
	/**
	 * 功能:执行更新数据的SQL语句
	 * @param updataSql SQL语句
	 * @throws DaoException
	 */
	public void updateBySql(String updataSql)throws DaoException
	{
		this.updateBySql(updataSql,null);
	}
	
	/**
	 * 功能:执行更新数据的SQL语句
	 * @param updataSql SQL语句
	 * @throws DaoException
	 */
	public void updateBySql(String updataSql,List params)throws DaoException
	{
		logger.debug(" updateBySql    updataSql="+updataSql);
		
		this.writeLogger(null, params);
		
		Session session=null;
		
		Transaction tr=null;
		
		boolean commitFlag=false;
		
		try{
			
			session=this.getSession();
			
			tr=session.beginTransaction();
			
			tr.begin();
			
			SQLQuery query=session.createSQLQuery(updataSql);
			
			this.setParamters(params, query);

			query.executeUpdate();
			
			tr.commit();
			
			commitFlag=true;
			
		}catch(HibernateException e)
		{
			this.haveHibernateException("basedao.updateBySql.error", e);
			
		}finally
		{
			this.closeSession(session, tr, commitFlag);
		}
	}
	
	/**
	 * 功能:执行更新数据的 HQL语句
	 * @param updataSql HQL语句
	 * @throws DaoException
	 */
	public void updateByHql(StringBuilder updataHql)throws DaoException
	{
		this.updateByHql(updataHql, null);
		
	}
	
	public void updateByHql(StringBuilder updataHql,List params)throws DaoException
	{
		this.updateByHql(updataHql.toString(), params);
	}
	
	public void updateByHql(String updataHql)throws DaoException
	{
		this.updateByHql(updataHql, null);
		
	}
	
	public void updateByHql(String updataHql,List params)throws DaoException
	{

		logger.debug(" updateByHql    updataHql="+updataHql);
		
		this.writeLogger(null, params);
		
		Session session=null;
		
		Transaction tr=null;
		
		boolean commitFlag=false;
		
		try{
			
			session=this.getSession();
			
			tr=session.beginTransaction();
			
			tr.begin();
			
			Query query=session.createQuery(updataHql);
			
			this.setParamters(params, query);

			query.executeUpdate();
			
			tr.commit();
			
			commitFlag=true;
			
		}catch(HibernateException e)
		{	
			this.haveHibernateException("basedao.updateByHql.error", e);
			
		}finally
		{
			this.closeSession(session, tr, commitFlag);
		}
	
	}
	
	public void setParamters(List params,SQLQuery query)
	{
		if(params!=null)

			for(int i=0;i<params.size();i++)
			{
				this.setParamter(i,params.get(i), query);
			}
	}
	
	public void setParamters(List params,Query query)
	{
		if(params!=null)

			for(int i=0;i<params.size();i++)
			{
				this.setParamter(i,params.get(i), query);
			}
	}
	
	public void setParamter(int i,Object o ,SQLQuery query)
	{
		if(o instanceof java.util.Date)
		{
			query.setTimestamp(i, (java.util.Date)o);
			
		}else
		{
			query.setParameter(i,o);
		}
	}
	
	public void setParamter(int i,Object o ,Query query)
	{
		if(o instanceof java.util.Date)
		{
			query.setTimestamp(i, (java.util.Date)o);
			
		}else
		{
			query.setParameter(i,o);
		}
	}
	
	public void setTurnPageParam(int pageNo,int pageSize,SQLQuery query)
	{
		if(pageNo>0&&pageSize>0)
		{
			query.setFirstResult((pageNo-1)*pageSize);
			query.setMaxResults(pageSize);
		}
	}
	
	public void setTurnPageParam(int pageNo,int pageSize,Query query)
	{
		if(pageNo>0&&pageSize>0)
		{
			query.setFirstResult((pageNo-1)*pageSize);
			query.setMaxResults(pageSize);
		}
	}
	
	protected int getRowCountNum(List list)
	{
		int result=0;
		
		try{
			
			result=Integer.parseInt( list.get(0).toString());
			
		}catch(Exception e)
		{
			
		}	
		
		return result;
	}
	
	protected void writeLogger(String messageName,List params)
	{
		if(messageName==null)
			
			messageName=" params = ";
		
		StringBuilder paramsB=new StringBuilder();
		
		if(params!=null)
		{
			
			for(int i=0;i<params.size();i++)
			{
				if(i>0)
					paramsB.append(",");
				
				paramsB.append(this.getParamValue(params.get(i)));
					
			} 
			
			logger.debug(messageName+"   ="+paramsB.toString());
			
		}else
		{
			logger.debug(messageName+"  is null ");
		}
		
	}
	
	protected Object getParamValue(Object o)
	{
		Object result=o;
		
		if(o instanceof java.util.Date )
		{
			result=this.fomateDate((java.util.Date)o);
		}
		
		return result;
	}
	
	protected String fomateDate(Date date)
	{
		String result="";
	
		try{
		
			java.text.SimpleDateFormat formate=new java.text.SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		 
			result=formate.format(date);
			
		}catch(Exception e)
		{
			logger.debug(e.getMessage(), e);
		} 
		
		return result;
	}
	
	public static void main(String []args)
	{

		Date date=null;
		
		java.text.SimpleDateFormat formate=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		 
		System.out.println(formate.format(date) );
		
		 
	}
	
	public Session getSession()
	{  
		return  HibernateSessionFactory.getSession();
	}
	
	public void closeSession(Session session)
	{
		if(session!=null&&session.isOpen())
			
			session.close();
		
		session=null;
	}
	
	public void closeSession(Session session,Transaction tr,boolean commitFlag)
	{
		if(!commitFlag&&tr!=null)
		{
			try{
				
				tr.rollback();
			}catch(Exception e)
			{
				logger.debug(e.getMessage(),e);
			}
		}
		
		this.closeSession(session);
	}
	
	public void haveHibernateException(String key,HibernateException e)
	{
		new DaoException(logger,key, e);
	}

}

  • dao.rar (3.6 KB)
  • 下载次数: 18
0
0
分享到:
评论

相关推荐

    泛型dao 泛型dao 泛型dao

    Struts2、Hibernate、Spring整合的泛型DAO (本人评价: 代码开发效率提高30% 代码出错率减少70%) 对于大多数开发人员,系统中的每个 DAO 编写几乎相同的代码到目前为止已经成为一种习惯。虽然所有人都将这种重复...

    dao3.5数据库安装文件

    DAO(Data Access Objects)是微软在早期开发的一种用于访问数据库的应用程序编程接口(API),它在Visual Basic 6和早期的Microsoft Office版本中被广泛使用。DAO 3.5是该技术的一个特定版本,适用于32位操作系统。...

    dao3.5数据库+引擎.zip

    DAO(Data Access Objects)是微软在早期开发的一种数据访问接口,主要用于访问Microsoft Jet数据库引擎,如Access数据库。DAO 3.5是DAO的一个版本,它在Windows操作系统中广泛使用,尤其是在16位和32位应用程序中。...

    Dao Jet数据库引擎

    DAO Jet数据库引擎是微软在早期开发的用于访问和管理Access数据库的一种组件,它与Jet数据库引擎密切相关。Jet引擎是Microsoft Windows操作系统中一个内置的数据库管理系统,主要用于支持Access数据库和其他使用Jet...

    系统配置文件 dao350和dao360

    标题中的“系统配置文件 dao350和dao360”指的是Microsoft Office系统中的数据库访问对象(DAO,Database Access Objects)版本350和360。DAO是Microsoft Jet数据库引擎的一部分,主要用于与Access数据库或其他Jet...

    Dao3.5数据库引擎

    DAO(Data Access Objects)是微软在早期开发的一种数据库访问技术,它是Microsoft Jet数据库引擎的一部分,主要用于与Access数据库的交互。DAO3.5是DAO的一个特定版本,它在Windows 95和Windows 98时代非常流行,但...

    dao jet数据库引擎

    DAO(Data Access Objects)是微软在早期开发的一种数据访问接口,主要用于访问Microsoft Jet数据库引擎,它是Access数据库的基础。Jet数据库引擎是微软开发的一种强大的、快速的数据库管理工具,尤其适用于小型到...

    dao包封装包

    DAO(Data Access Object)封装包是软件开发中用于处理数据访问层的一种设计模式。它将数据库操作与业务逻辑分离,使得代码更易于维护和测试。在这个"dao封装包"中,我们通常会找到一系列与数据库交互的接口和实现类...

    dao 1.0 source code

    DAO(Data Access Object)模式是软件开发中常用的设计模式之一,主要用于数据库操作的抽象和封装。DAO 1.0 源代码的提供允许我们深入理解这一模式在实际项目中的应用。下面将详细介绍DAO模式的核心概念、作用以及...

    JSP的DAO模式留言板

    **JSP的DAO模式留言板详解** 在Web开发中,DAO(Data Access Object)模式是一种常见的设计模式,用于封装对数据库的操作,将业务逻辑与数据访问层分离,提高代码的可维护性和可测试性。本教程将详细介绍如何使用...

    C#特性标签实现通用Dao层

    在C#编程中,"通用Dao层"是一个常见的设计模式,用于封装数据库操作,使得业务逻辑层能够专注于处理业务规则,而无需关心底层数据访问的细节。本篇将重点探讨如何利用C#的特性(Attribute)标签来实现这一目标,同时...

    DAO详解 详细讲述了DAO的使用

    **DAO详解** DAO(Data Access Object)模式是软件设计中的一种模式,主要用于数据库访问层的抽象,它将数据操作逻辑封装在对象中,使得业务逻辑层与数据存储层解耦,提高了代码的可复用性和可维护性。本文将深入...

    用DAO实现的用户登录系统

    DAO(Data Access Object)模式是一种常见的软件设计模式,它用于封装对数据库的访问操作,将数据访问层与业务逻辑层分离,从而提高系统的可维护性和可扩展性。在这个"用DAO实现的用户登录系统"中,我们可以看到以下...

    .net 自动生成实体类、DAO工具

    在.NET开发环境中,自动生成实体类和DAO(Data Access Object)是提高开发效率的重要手段,尤其是在处理大量数据库交互时。这个".net 自动生成实体类、DAO工具"是一个实用的小型工具,能够帮助开发者快速构建数据...

    java 基于泛型与反射的通用 DAO

    本文将深入探讨如何结合这两种技术实现一个通用的DAO(Data Access Object)设计模式。 首先,我们来看“泛型”。泛型是Java 5引入的新特性,它允许在类、接口和方法中使用类型参数,从而提高了代码的类型安全性和...

    基于DAO设计模式的新闻发布系统

    DAO(Data Access Object)设计模式是一种在软件工程中用于封装对数据库访问的模式,它将业务逻辑和数据访问逻辑分离,提高代码的可重用性和可测试性。在这个基于DAO设计模式的新闻发布系统中,我们可以深入探讨以下...

    DAO模式实现增加删除修改操作

    DAO(Data Access Object)模式是软件开发中常用的一种设计模式,主要用于数据库操作的抽象和封装。在Java开发中,DAO模式被广泛应用于处理与数据库的交互,以提高代码的可维护性和可测试性。本篇文章将深入探讨DAO...

    java复习题,jdbc,DAO模式,oracle复习题

    DAO(Data Access Object)模式是一种设计模式,常用于在应用程序和数据库之间提供一个抽象层,以实现数据访问的独立性。Oracle则是一款强大的关系型数据库管理系统,广泛应用于大型企业的核心系统。 首先,我们来...

    DAO设计模式 DAO 设计模式 JAVA设计模式

    DAO(Data Access Object)设计模式是软件开发中一种常见的用于处理数据访问的模式,它将业务逻辑与数据访问逻辑分离,使得代码结构更加清晰,更易于维护和测试。在Java开发中,DAO模式广泛应用于数据库操作,为应用...

Global site tag (gtag.js) - Google Analytics