封装.Net数据访问层---羽量级Hibernate (连载二---查询及其参数)
首先先说明一下对于没有外键的查询,在写SQL语句上和普通写法一致.。
GetEntityList<T>方法有两种重载:
1.(IDataReader reader):通过传递一个读取器完成查询操作
2.(CommandType cmdType, string cmdText, IDbDataParameter[] cmdParams):这个方法通过传递命令的类型、sql语句和参数数组完成查询操作,如没有参数可传递null
B.查询带参数的存储过程,我们通常在.Net中用参数肯定用Parameter参数类,但如果参数很多时那就很麻烦,设置的属性的太多不方便,下面看一下利用【绿茶】的自带的参数生成功能完成参数的赋值和传递。
DbParamHelper类也是【绿茶】中重要的类,他的任务是完成参数的生成和赋值操作,这个类里面方法比较多,各有各的用处而且再用它之前还需配置xml文件方可正确运行。
1.首先说一下参数配置文件,该配置文件是一个独立的配置文件,不是放在web.config中的,如果你是写asp.net,需要把参数配置文件放到网站根目录下面(web.config平行);如果你写的是WinForms的话需要把配置文件放到.exe的地方;
2.
每一个param配置节就是一张表,tableName属性指向的是真实的表名,每一个col配置节代表的是一张表的一个列,name是列的名称,type是列的数据类型,size是列的长度,precision是列的精度,scale是列的小数位数;其实这个配置文件可以同CodeSmith生成,这样开发的速度会更快。
3.该类的几个重要方法:
GetAllParams(string tableName, object objValue):获取一张表表所有参数,第一参是表名(就是配置文件中的表名),第二参是给这张表所有参数赋值的值,这是一个对象
GetParamsInName(string tableName, string[] paramNames, params object[] paramValues):获取一张表中指定列名的参数,第一参是表名;第二参是一个string类型的数组,用来指定你要的列名;第三参是给第二参指定的参数赋值的值,记住参数和参数值顺序一致
GetParamsSpecific(string tableName, object objValue, params string[] colName):获取指定列名的参数,第一参是表名;第二参事传递的参数值(对象类型);第三参是你需要的列,在这里写你需要的列名
GetParamsExcept(string tableName, object objValue, params string[] colName):获取除了指定的参数的参数列表,第一参是表名;第二参事传递的参数值(对象类型);第三参是你不需要的列,在这里写你不需要的列名
以上这些方法都是返回IDbDataParameter类型的数组
北大青鸟-中博www.njaccp.com