使用struts编写的bug管理(附二)

来源:互联网 发布:tomcat域名绑定项目 编辑:程序博客网 时间:2024/06/04 18:36

很搞的,昨天写SQL语句很是别扭,不爽,下面要改一下数据库表结构,使其更有效的工作:(我是想到哪做到哪得,大家别跟我学坏了)

需要建六个表:

分别是

  • project(id, name, decription, group, status)
  • users(password, name, power_level, inUse)
  • person(name, displayname)
  • tasks(id, project_id, name, description, operator, status, solution, isBug)
  • group(id, name, person_id, description, begin_date, end_date, measure, ismanager, commants)
  • taskreport(id, task_id, checkby, reportby, fixby, recheckby, problem, checkdate, reportdate, fixdate, recheckdate, fixtime)

整个业务逻辑可以这样解释:

每个project需要一个group来完成,每个group包含多个person(其中一个person为manager,使用ismanager字段划分);同时,一个project分成很多的task,每个task有一个group里的person负责完成,在交叉测试的过程中会产生error以及exception,使用taskreport进行报告和修复;只有当task中的status都为完成时,project才可以close。

相对于前面的几个表,我认为这样的设计更适合扩展功能。

另外,在前文提及的database包里,将database操作独立出来,加入了Query类:

/*
 * setQuery.java
 *
 * Created on 2006/4/16, PM 6:00
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package com.esc.database;

import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 *
 * @author tony
 */
public class Query {
   
    /** Creates a new instance of setQuery */
    public Query(){
      
    }
    private Connection conn = null;
    private database db = new database();
    private ResultSet rs = null;
   
    public ResultSet getResult(String command) {
       
        try{
           
            conn = db.getConnection();
            Statement smt = conn.createStatement();
            rs = smt.executeQuery(command);
           
        }catch(SQLException e1){
            e1.printStackTrace();
            return null;
        }catch(IOException e2){
            e2.printStackTrace();
            return null;
        }catch(ClassNotFoundException e3){
            e3.printStackTrace();
            return null;
        }finally{
        }
        return rs;
    }
    public boolean closedb(){
        if(conn != null){
                try{
                    conn.close();
                }catch(Exception e) {
                    e.printStackTrace();
                    return false;
                }
        }
        return true;
    }
   
}

 

 这样,我想可以方便操作,loginAction要做相应的修改,各位不妨试试,在此不述。

这个系统将慢慢扩展,大家不要着急。

“弄点儿米出来,才能做饭呀!”----木匠语录一

 

原创粉丝点击