二次开发
1. 数据库表
打开数据库管理工具,找到COOX项目对应的数据库(若无,则创建)
1.1 COOX平台自带数据表
(请勿修改和删除系统自带表)
1.2 COOX中创建新表
在资源管理(Resources)中的持久性对象(Persisted objects)中创建。
(1)创建表UDT_Students,右键新建:
(2)添加表字段,设置索引,键等:
字段 | 描述 |
---|---|
字段ID | 整型,“主键”(默认自增),勾选“Key” |
字段Name | 短字符串型,“学生姓名” |
字段Math | 整型,“数学分数” |
字段Physics | 整型,“物理分数” |
(3)项目保存,生成数据库
(4)查看新建的表
- COOX中查看:
- 数据库中查看
1.3 COOX中数据库操作对象认识
(1)DataSet
绑定数据源作用,设置要连接的数据库、表格等,同时设置查询条件、排序条件等
(2)DataTableView等
表格对象,连接数据源,展示数据库表内数据作用,同时可以设置是否可编辑等。
(3)Swing对象
COOX自带Java可视化控件,可以直接拖拽使用。同样,我们也可以外部制作好需要的控件导入,用JavaBean方式。
1.4 数据表展示
- 手动给新建的表格UDT_Students添加几条测试数据
- COOX页面中新增测试页面
- 页面中拖入DataSet对象和DataTableView
(1)设置DataSet属性
(2)模拟运行测试
(3)练习
DataSet其他属性,自行参考手册设置和练习;DataTableView属性,也请自行参考手册设置和练习。
2. 利用代码实现数据库表的增删改查
在资源,Classes中创建类文件StudentsHelper,在里面编辑Java代码。并添加Import引入。
/** class StudentsHelper* Copyright (c) 2009 Ordinal Technologies. All Rights Reserved.*/import globalscreen.application.*;
import globalscreen.plugins.persist.DataSetSystem;
import globalscreen.plugins.persist.DataModel;
import globalscreen.application.persist.DataSet;public class StudentsHelper extends GlobalScript
{
}
2.1 新增操作
(1)添加DataSet对象数据新增方法
/*** 新增数据* @param strName 学生姓名* @param iMath 数学分数* @param iPhysics 物理分数* @return 是/否新增成功*/public static boolean insertStudent(String strName,int iMath,int iPhysics){DataSet data = new DataSet("UDT_Students");try{data.prepareInsertValue("Name",strName);data.prepareInsertValue("Math",iMath);data.prepareInsertValue("Physics",iPhysics);return data.insertElement();}catch(Exception e){e.printStackTrace(); return false;}}
(2)页面中添加如下Swing控件
(3)给Add按钮绑定脚本事件
调用上文所述方法,插入数据
/*** btnAdd_mouseReleased(mouseEvent)*/
function btnAdd_mouseReleased(mouseEvent)
{var strName = txtNameAdd.getText();var iMath = parseInt(txtMathAdd.getText());var iPhysics = parseInt(txtPhysicsAdd.getText());if(helperClass.insertStudent(strName,iMath,iPhysics)){$UI.messageBox("提示","新增成功");}else{$UI.messageBox("提示","新增失败");}
}
(4)模拟运行测试
2.2 删除操作
(1)添加DataSet对象数据新增方法
/*** 删除数据(根据ID删除数据)* @param lID 数据库表字段ID* @return 是/否删除成功*/public static boolean deleteStudent(long lID){DataSet data = new DataSet("UDT_Students");try{data.setFilter("ID="+lID+"");data.deleteAll();return true;}catch(Exception e){e.printStackTrace(); return false;}}
(2)页面中添加如下Swing控件
(3)给Delete按钮绑定脚本事件
/*** btnDelete_mouseReleased(mouseEvent)*/
function btnDelete_mouseReleased(mouseEvent)
{if(DataSet.getValue("ID")!=null){var lID = DataSet.getValue("ID");if(helperClass.deleteStudent(lID)){$UI.messageBox("提示","删除成功");}else{$UI.messageBox("提示","删除失败");}}else{$UI.messageBox("提示","请选择一行数据");}
}
(4)模拟运行测试
2.3 更新操作
(1)添加DataSet对象数据更新方法
/*** 更新数据(根据ID更新数据)* @param lID 数据库表字段ID* @param iMath 数学分数* @param iPhysics 物理分数* @return 是/否更新成功*/public static boolean updateStudent(long lID,int iMath,int iPhysics){DataSet data=new DataSet("UDT_Students");try{data.prepareInsertValue("ID",lID);data.prepareInsertValue("Math",iMath);data.prepareInsertValue("Physics",iPhysics);return data.updateElement();}catch(Exception e){e.printStackTrace(); return false;}}
(2)页面中添加如下Swing控件
(3)给Update按钮绑定脚本事件
/*** btnUpdate_mouseReleased(mouseEvent)*/
function btnUpdate_mouseReleased(mouseEvent)
{if(DataSet.getValue("ID")!=null){var lID = DataSet.getValue("ID");var iMath = parseInt(txtMathUpdate.getText());var iPhysics = parseInt(txtPhysicsUpdate.getText());if(helperClass.updateStudent(lID,iMath,iPhysics)){$UI.messageBox("提示","更新成功");}else{$UI.messageBox("提示","更新失败");}}else{$UI.messageBox("提示","请选择一行数据");}
}
(4)模拟运行测试
2.4 查询操作
直接JavaScript设置查询条件
(1)页面
(2)给Search按钮绑定脚本事件
/*** btnSearch_mouseReleased(mouseEvent)*/
function btnSearch_mouseReleased(mouseEvent)
{var iMath = parseInt(txtMathSearch.getText());DataSet.setFilter("Math >\"" + iMath +"");
}
(3)模拟运行测试
【结束】