学着调试,学着明白三层结构!~
这段时间双伟一直过来教我调试的基本要领并和我一起用三层结构的思想重写了我的数据调用。
现在回过头来,还是不甚清楚,趁记忆尚存,将三层结构的一些思路理出来,请高手指点!~
叙述顺序是:先从调用的层次逐层深入进去,再从构造的层次逐层反推回来。
以前取数据是直接写一堆SQL连接,然后根据连接直接用SQL语句得到数据;
现在呢,从WEB层开始,就得学着调Facade(即中间层)层的方法,通过Facade层的方法调用DAOFactory,然后通过DAOFactory里的方法调用IDAO(即数据接口),从IDAO接口进去,就到了DAO,DAO里写的,即是Facade层里方法的实现。而DAO的实现里,包含了对PO的调用及SQL查询语句,PO即是数据库数据的实体形式。此外,DAO里还包含了对DbHelperSQL的调用,而DbHelperSQL里写的,就是不懂三层结构时写的那些SQL连接语句。
如此一来,循环一圈,将数据取出。
而从构建的角度看,顺序是这样的:
先构建数据库相应的PO,调用PO的DAO,接口IDAO及调用接口的DAOFactory;
然后,构建包含SQL连接语句的DbHelperSQL,供DAO调用;
再次,构建中间层Facade,写一个方法来调用DAOFactory;
最后,在WEB层里调用Facade层的方法,再将PO写成一个List的形式,List<PO的类> abc= new List<PO的类>(),将方法取出的值放进这个List里;
若要进行XML串行化,则将此List放进一个Session里,Session["CDE"] = abc;
到时若是需要取出Session,只需List<PO的类> xyz = Session["CDE"] as List<PO的类>;
然后即可将其串行化:
List<PO的类> xyz = Session["CDE"] as List<PO的类>;
string file = "D:\\PBC.xml";
TextWriter writer = new StreamWriter(file);
XmlSerializer sr = new XmlSerializer(typeof(List<PO的类>));
sr.Serialize(writer, xyz );
writer.Close();
浙公网安备 33010602011771号