有高手自己写数据库访问层吗?进来讨论下好吗
最近都没怎么用JAVA了,一直写C#,原来写JAVA也不常用Hibernate和spring这类框架,多数都是jsp   +   javabean   或者Ejb了。   
 写C#时发现C#几乎没有成熟度较高的框架,多数C#的程序员们好像也不太爱考虑系统框架的问题。所以没事儿时,就用C#写了一个免配置的DB访问组件。   
 基本结构是这样的   
 ---------------------------------------------- 
 public   interface   IDBEngine 
 { 
 ///   保存数据 
 int   insert(Object   pojo)   ;   
 ///   更新数据 
 int   update(Object   pojo);   
 ///   删除数据 
 int   delete(Object   pojo);     
 ///   提取结果集 
 ArrayList   select(Object   pojo);   
 ///   提取结果集到DataTable 
 DataTable   selectIntoDataTable(Object   pojo);   
 ///   提取结果集 
 ArrayList   select(Object   pojo,   Pagination   pagination);   
 ///   提取连接    
 OleDbConnection   getConnection();   
 ///   打开事务 
 void   beginTrans();   
 ///   提交 
 void   commit();   
 ///   回滚 
 void   rollback();   
 ///   执行单条SQL 
 void   executeSQL(String   SQL);   
 ///   带返回执行存储过程语句 
 ArrayList   executeProcedureCall(String   SQL,   Object[]   param,   Object   voclass);   
 ///   不带返回执行存储过程语句 
 void   executeProcedureCall(String   SQL,   Object[]   param);   
 int   getInt(string   SQL);   
 int   getColumnMaxValue(string   TableName,   string   ColumnName);   
 DataTable   executeSqlProcedureCall(String   SQL,   object[]   param);   
 ///   执行一条SQL语句,将返回记录集放入POJO并返回POJO列表 
 ArrayList   SelectFromSQL(string   SQL,   object   pojo);   
 ///   执行一条SQL语句,将返回记录集放入POJO并返回POJO列表,同时分页 
 ArrayList   SelectFromSQL(string   SQL,   object   pojo,   Pagination   pagination);   
 ///   注销对象 
 void   Release();   
 ///   得到当前事务状态 
 int   getTransStates();   
 ///   得到数据库类型 
 string   getDBType();   
 ///   得到数据库当前时间 
 string   getDBDateTime();   
 ----------------------------------   
 所有的实体bean都要与对应的数据库表同名,字段名列名就是加get\set 
 并且必须要继承以下类 
 public   class   BasePojo 
 {   
 //设置查询条件 
 public   void   setCondtion(Condtion   c)   
 //获取查询条件 
 public   Condtion   getCondtion()     
 //设置排序 
 public   void   setOrderBy_DESC(string   FiledName) 
 public   void   setOrderBy_ASC(string   FiledName) 
 public   string   getOrderBy()   
 -----------------------------------   
 我在写这个之前看了speedframework的结构,也没有太仔细看,糊里糊涂的就写了   
 这个组件目前我看到的缺点:   
 1、没有自主的分页功能,要依靠数据库里的一个分页存储过程(我自己也感觉这样比较垃圾,而且我只写了oracle和mssql下的分页存储过程)   
 2、没有cache   
 3、没有connection   pool,主要是因为MS的驱动里自带了。   
 4、实体类完全反映了数据库中的表或视图的结构。   
 ------------------------ 
 以下有我调用时的一些示例   
 public   int   CancelAssignedSalePlanCollect(SalePlan.v_SalePlan_Collect   sale_plan) 
                         { 
                                     Engine   db   =   Engine.getInstance();   
                                     try 
                                     {                                                   
                                                 //检查计划是否已经审核