四、实现伪SqlMapper
1、BaseMapper类
using System; using System.Collections.Generic; using System.Data; using System.Data.Common; using System.Data.SqlClient; namespace AdoNetDataAccess.Mapper { using AdoNetDataAccess.Core.Contract; public abstract class BaseMapper { public IDbOperation CurrentDbOperation; #region query for list public abstract IList<T> QueryForList<T>(string sqlStr) where T : class, new(); public abstract IList<T> QueryForList<T>(string sqlStr, Type objType) where T : class, new(); public abstract IList<T> QueryForList<T>(string sqlStr, CommandType cmdType, List<DbParameter> listParams) where T : class, new(); public abstract IList<T> QueryForList<T> (string sqlStr, CommandType cmdType, List<DbParameter> listParams, Type objType) where T : class, new(); #endregion #region query for dictionary public abstract IDictionary<K, T> QueryForDictionary<K, T>(string key, string sqlStr) where T : class, new(); public abstract IDictionary<K, T> QueryForDictionary<K, T>(string key, string sqlStr, Type objType) where T : class, new(); public abstract IDictionary<K, T> QueryForDictionary<K, T> (string key, string sqlStr, CommandType cmdType, Type objType) where T : class, new(); public abstract IDictionary<K, T> QueryForDictionary<K, T> (string key, string sqlStr, CommandType cmdType, List<DbParameter> listParams, Type objType) where T : class, new(); #endregion #region dataset datatable public abstract DataTable FillDataTable(string sqlStr, CommandType cmdType, List<DbParameter> listParams); public abstract DataSet FillDataSet(string sqlStr, CommandType cmdType, List<DbParameter> listParams); #endregion #region ExecuteScalar public abstract object ExecuteScalar(string sqlStr, CommandType cmdType, List<DbParameter> listParams); #endregion #region insert public abstract int Insert(string sqlStr); public abstract int Insert(string sqlStr, CommandType cmdType, List<DbParameter> listParams); public abstract bool BatchInsert(string tableName, int batchSize, int copyTimeout, DataTable dt); #endregion #region delete public abstract int Delete(string sqlStr); public abstract int Delete(string sqlStr, CommandType cmdType, List<DbParameter> listParams); #endregion #region update public abstract int Update(string sqlStr); public abstract int Update(string sqlStr, CommandType cmdType, List<DbParameter> listParams); #endregion } } |
上面代码中的方法您是不是很熟悉呢? 呵呵,使用IBatis.net 的童鞋应该会和楼猪产生更多的共鸣。