1 Mapx
Mapx类继承了LinkedHashMap,除了拥有LinkedHashMap的所有功能外,还可以通过设置LRUFlag来控制Map的换入换出算法,当LRUFlag为true时按LRU算法换入换出、为false时按FIFO算法换入换出;另外还实现了另外一个功能:按顺序存、取Map中的数据,这一点是JDK的Map数据结构所没有的。
2 DataCollection
DataCollection是Mapx的子类,它是一个可以装载任何数据类型的容器(数据收集器),有点类似于JDK1.5中的泛型;它可以通过toXML()方法把容器中的数据输出为xml,也可以通过parseXML方法把xml解析成键值对数据,这样使得DataCollection.java成为Zving框架中前台和后台交换数据的桥梁。注意:前台的JS中同样有一个DataCollection的JS对象,这是在JS语言下的实现,它也具备toXML(),和parseXML()两个方法,注意区分DataCollection在Java语言和JS语言中的不同实现。
3 DAO---DataTable
DAO和DataTable是ZCF种的两种数据库存、取值方式。
4 DAO是数据持久层
每一个数据库中的表对应一个DAO类。除了DAO外,框架还提供了DAOSet类,DAOSet是DAO的一个集合,即DAO对应表中的一条数据,DAOSet表示表中的多条数据。
举例说明:友情链接组表ZCLinkGroup 对应的类为:ZCLinkGroup。
DAO的常用方法:
l 创建一个DAO:ZCLinkGroup linkGroup = new ZCLinkGroup ( );
l 主键查询:linkGroup.fill( ); 在执行fill()方法时必须先把主键的值全部置好,如linkGroup.setID(100);
l 一般查询:query(wherePart); 执行一般的查询语句,得到一个DAOSet,
例如:DAOSet< ZCLinkGroup> set = linkGroup.query("where name like '%首页链接%'");
l 转化为Mapx:toMapx( ); 方便别的地方调用
l 转化为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类相同。
|
所有评论仅代表网友意见