服务端和数据库 - 开发教程 - 项目管理

服务端和数据库

功能作用

EdoProject的服务端只有两个简单的功能:加载项目和保存项目。

服务端所有的代码都围绕这两个功能展开。具体有:

  • 页面操作:接收和返回项目JSON数据
  • 服务端JSON操作:序列化encode和反序列化decode
  • 项目类:项目新增和保存操作
  • 数据库操作:插入和查询项目数据

服务端类

服务端有如下几个类:

  • Edo.project.Project:项目类。基本、标准的项目数据类。
  • Edo.project.DBAccess:项目数据库操作类。
  • Edo.util.JSON:JSON类。
  • Edo.data.Project:项目业务类。提供面向业务逻辑的项目操作。
  • EdoProject.aspx:业务交互类。发布与Ajax操作相关的业务逻辑。

其中,EdoProject.aspx是直接与Ajax交互的,是最常用的文件。
如果您需要实现自己的数据库操作,请替换Edo.project.DBAccess中的方法实现即可。

数据库表结构

EdoProject定义了一个与微软Project类似的数据结构
在做数据库保存时,我们设计了如下表结构来存储项目数据:

  • edo_project:项目表。
  • edo_task:任务表。
  • edo_calendar:日历表。
  • edo_resource:资源表。
  • edo_weekday:日历详细信息表。
  • edo_baseline:比较基准表。
  • edo_predecessorlink:任务关系表。
  • edo_assignment:资源分配表。

更多详细字段和类型,可以参考下载包内database文件夹内的sql文件。

数据库操作层

EdoProject使用了ibatis作为数据库操作层。支持Oracle、MySql、SqlServer等三个数据库。
以JAVA为例,一般我们需要如下三个步骤:

  1. sqlmapconfig.xml:定义数据库连接配置参数,以及SQL文件。
  2. EdoProject.xml:定义了所有的SQL操作语句,如insert, select等。
  3. 进行SQL操作,如:
    //查询
    DaoFactory.getDao().queryForObject("EdoProject.getProjectByUID", projectuid);
    //新增
    DaoFactory.getDao().insert("EdoProject.insertProject", project);
    //删除
    DaoFactory.getDao().delete("EdoProject.deleteProject", o);		
    ......
    
    这部分代码全部放在Edo.project.DBAccess。
    如果您需要实现自己的数据库操作代码,请重写Edo.project.DBAccess即可。