二次开发
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)模拟运行测试
【结束】