1 Mapx

  Mapx类继承了LinkedHashMap,除了拥有LinkedHashMap的所有功能外,还可以通过设置LRUFlag来控制Map的换入换出算法LRUFlagtrue时按LRU算法换入换出、false时按FIFO算法换入换出;另外还实现了另外一个功能:按顺序存、取Map中的数据,这一点是JDKMap数据结构所没有的。 

 

2 DataCollection

  DataCollection是Mapx的子类,它是一个可以装载任何数据类型的容器(数据收集器),有点类似于JDK1.5中的泛型;它可以通过toXML()方法把容器中的数据输出为xml,也可以通过parseXML方法把xml解析成键值对数据,这样使得DataCollection.java成为Zving框架中前台和后台交换数据的桥梁。注意:前台的JS中同样有一个DataCollectionJS对象,这是在JS语言下的实现,它也具备toXML(),和parseXML()两个方法,注意区分DataCollectionJava语言和JS语言中的不同实现。

 

3 DAO---DataTable

  DAO和DataTable是ZCF种的两种数据库存、取值方式。

 

4 DAO是数据持久层

  每一个数据库中的表对应一个DAO类。除了DAO外,框架还提供了DAOSet类,DAOSet是DAO的一个集合,即DAO对应表中的一条数据,DAOSet表示表中的多条数据。

  举例说明:友情链接组表ZCLinkGroup  对应的类为:ZCLinkGroup。

  

  DAO的常用方法:

  创建一个DAO:ZCLinkGroup  linkGroup  = new ZCLinkGroup ( );

  主键查询:linkGroup.fill( );  在执行fill()方法时必须先把主键的值全部置好,如linkGroup.setID(100);

  一般查询:query(wherePart);   执行一般的查询语句,得到一个DAOSet,

  例如:DAOSet< ZCLinkGroup> set = linkGroup.query("where name like '%首页链接%'");

  转化为Mapx:toMapx( ); 方便别的地方调用

  转化为DataRow:toDataRow( );

  

  DAOSet的常用方法:

  1)add( );    set .add(linkGroup);

  2) for循环:

  DAOSet< ZCLinkGroup> set = linkGroup.query("where id in (" + ids + ")");

  for (int i = 0; i < set.size(); i++) {

  ZCLinkGroup  linkGroup = set.get(i);

  }

  3)转化为DataTable,toDataTable();

  

  1 DataTable和DataRow为数据存取提供了另外一种灵活的方式

  DataTable 多条数据,可以与DAOSet相对应,同时有相应的方法实现转化:DataTable dt = set.toDataTable();

  DataRow 单条数据,可以与DAO相对应,同时有相应的方法实现转化:DataRow dr= linkGroup.toDataRow();

  4)循环

  for (int i = 0; i < dt.getRowCount(); i++) {

  String id= dt.getString(i, "ID");

  ----------

  }

  或

  for (DataRow dr:dt) {

  String id= dr.getString("ID");

  ----------

  }

  5)得到一个数据行:DataRow dr = dt.getDataRow(int index);

  6)得到某行某列的值:String value= dt.getString(i, j);

  7)插入一行:dt.insertRow();

  8)删除一行:dt.deleteRow();

  9)得到行数:dt.getRowCount();

  10)得到列数:dt.getColCount();

  11)过滤数据表格中行:dt.filter();

  12)数据表格排序:dt.sort();

  13)把表格中的一列转化成中文:dt.decodeColumn(map);在表格中增加一列,列名为指定列列名Name,value为map中对应的值(map中的key为表格中指定列的值);

  14)把两个表格合并成一个表格:dt.union(anotherDT);

  15) toMapx( ) 以第一指定列的值为key值,以第二指定列的值为value值,填充到map中。

 

5 Transaction-事务类

  Transaction是用来管理数据库事务的类,常用方法有:

  1)Transaction trans = new Transaction(); // 创建一个实例

  2)trans.add(set1,Transaction.Insert); // 向trans中加入DAOSet集合的实例,操作方法为Insert;

  3)trans.add(set2,Transaction.Delete);   // 向trans中加入DAOSet集合的实例,操作方法为Delete;

  4)rans.add(dao,Transaction.Insert);  // 向trans中加入DAO的实例,操作方法为Insert;

  5)trans.add(new Q("update ZCLinkGroup set name = '链接demo' where id = 100"));  // 向trans中加入sql语句

  6)trans.add(new Q("delete from ZCLinkGroup  where id = ? ",123));   // 向trans中加入带参数的sql语句

  7)trans.commit();  //提交一个事务

  8) trans.rollback(); //回退一个事务

 

6 Page 页面上下文

  所有后台类(需要登陆才能有权限访问到的类)都必须集成Page类,Page已经封装好了几个重要的类:

  Request:封装了网页前台传过来的表单数据

  Cookie:封装了网页前台传过来的cookie数据

  Response:封装了响应请求了的数据

  

7 Request 

  Request是DataCollection的子类,(注意与HttpServletRequest request对象区分),主要功能是:封装了前台传过来的所有表单数据,前台数据用DataCollection 对象包装后通过Server.sendRequest()方法发送到后台,形成Request java对象。

  

8 Response

  Response是DataCollection的子类,(注意与HttpServletResponse response区分),主要功能是:通过DataCollection的方式把响应数据返回到前台。

  

9 Ajax

  所有前台类(不需要登陆就能执行的类)都必须集成Ajax类,其他用法与Page类相同。