1、通用数据访问类与实体类通用数据访问类和实体类1.代码复用技术应用要求 原则:提取不变的,封装变化的 技巧:不变的作为“方法体”,变化的作为方法“参数”2.SQLHelper类 作为通用数据库访问类,我们知道必须具备一定的条件,那么需要具备什么条件呢?一般的我们访问数据库为的是什么呢?无非是进行增、删、改、查,那么我们就应该在通用数据访问类中封装这些方法。注意:1 在执行ExecuteReader()方法后,其返回的值不能作为对象返回出来,因为它本来返回的就是数据库中的一张表,因此只有即时读出来才有效,如果没有即时读出来,系统会自动将这个对象进行销毁。(参考客户端(检验是否登录),这是因为我们在
2、内存表中读取数据之前已经将数据集给关闭了,所以我们要是想返回的话,一定不要再sqlhelper中关闭数据集。返回的是一个对象,不是一个值,因此,我们在没有返回对象之前,不能将连接关掉。其中datareaderd的参数为数据表的列名。结果可能是多行多列,也可能是单行单列2 编写这些方法时,我们可以发现这些方法的参数是可变的,那么我们在执行的过程中什么是可变的呢?无非是“SQL语句、执行的的类型(SQL语句还是存储过程)、SQL语句或者存储过程中的参数(用到参数化查询的时候要用到)”。当使用的是存储过程时,我们不能使用executeScalar()方法,返回一个值,但是如果是SQL语句的话,则可以
3、。(参考客户端(通用数据访问类中executeScalar()方法的实现)。ADO.NET数据访问字符串,更新字段的SQL语句:string sqlStr = update tb_StuInfo set stuName= + stuName + ,stuSex= + stuSex + ,stuHobby= + stuHobby + where stuID= + stuID;3.实体类的设计*在数据库中的数据表是实体的集合4.数据查询和对象封装利用组合SQL语句来显示学院信息。 32 使用List集合封装多个同类型的对象Add()方法不能指定插入的位置,insert()方法可以指定插入的索引位置。清除ListView中的数据:listview.clear();3.3 多个不同类型对象查询