哎,没人看过吗?
相关内容如下:在我使用时候Bean通常有三类,分别在manager,entry,database目录下面。    manager下面的bean做商业逻辑    entry下的bean就是封装数据,其实就是每个数据库表对应会有一个bean。jsp得到的也全部是类。    database下的bean就是操作数据库,执行如insert,update,delete,load(查询一条记录),batchload(查询多条记录)。   他们之间的关系是entry负责封装数据,作为database的调用参数,返回结果。     manager调用database处理的结果。manager和jsp通信。jsp得到的结果从manager来, jsp需要做操作调用manager,即使是一个insert 在database存在这样的方法但在manager中你还是需要再封装一次。这样做的目的是使结构尽量简单。database只负责操作数据库。manager只做逻辑(取相应的数据)处理相应的逻辑,而entry则只把database取到的数据封装,或则把页面得到的参数封装,做为参数传给相应的Bean. 

解决方案 »

  1.   

    //ServiceInfoModel.java
    package spmanager;
    import common.*;
    import java.sql.*;
    import java.util.*;
    public class ServiceInfoModel {
      int spnumber=0;
      String servicenumber="";
      String servicecode="";
      String servicename="";
      int servicetype2=0;
      int billcode=0;
      int billtype=0;
      int billvalue=0;
      int servicetype=0;
      int scope=0;
      String dmocommand="";
      String cmocommand="";
      int activeflag=0;
      long applytime=0;
      int testdays=0;
      String reserve="";
      int modifystaff=0;
      long modifytime=0;  //begin get
      public int getSpnumber(){
      return spnumber;
      }  public String getServicenumber(){
      return Function.charGet(servicenumber);
      }  public String getServicecode(){
      return Function.charGet(servicecode);
      }  public String getServicename(){
      return Function.charGet(servicename);
      }  public int getServicetype2(){
       return servicetype2;
      }  public int getBillcode(){
      return billcode;
      }  public int getBilltype(){
      return billtype;
      }  public int getBillvalue(){
      return billvalue;
      }  public int getServicetype(){
      return servicetype;
      }  public int getScope(){
      return scope;
      }  public String getDmocommand(){
      return Function.charGet(dmocommand);
      }  public String getCmocommand(){
      return Function.charGet(cmocommand);
      }  public int getActiveflag(){
      return activeflag;
      }  public long getApplytime(){
       return applytime;
      }  public int getTestdays(){
       return testdays;
      }  public String getReserve(){
      return Function.charGet(reserve);
      }  public int getModifystaff(){
      return modifystaff;
      }  public long getModifytime(){
      return modifytime;
      }
      //end get  //begin set
      public void setSpnumber(int spnumber){
      this.spnumber = spnumber;
      }  public void setServicenumber(String servicenumber){
      this.servicenumber = Function.charSet(servicenumber);
      }  public void setServicecode(String servicecode){
          this.servicecode = Function.charSet(servicecode);
      }  public void setServicename(String servicename){
          this.servicename = Function.charSet(servicename);
      }  public void setServicetype2(int servicetype2){
       this.servicetype2 = servicetype2;
      }  public void setBillcode(int billcode){
          this.billcode = billcode;
      }  public void setBilltype(int billtype){
      this.billtype = billtype;
      }  public void setBillvalue(int billvalue){
      this.billvalue = billvalue;
      }  public void setServicetype(int servicetype){
      this.servicetype = servicetype;
      }  public void setScope(int scope){
      this.scope = scope;
      }  public void setDmocommand(String dmocommand){
      this.dmocommand = Function.charSet(dmocommand);
      }  public void setCmocommand(String cmocommand){
      this.cmocommand = Function.charSet(cmocommand);
      }  public void setActiveflag(int activeflag){
      this.activeflag = activeflag;
      }  public void setApplytime(long applytime){
       this.applytime = applytime;
      }  public void setTestdays(int testdays){
       this.testdays = testdays;
      }  public void setReserve(String reserve){
      this.reserve = Function.charSet(reserve);
      }  public void setModifystaff(int modifystaff){
      this.modifystaff = modifystaff;
      }  public void setModifytime(long modifytime){
      this.modifytime = modifytime;
      }
      //end set  public String getSeqSql() {
        String sql="SELECT SP_SERVICE_INFO_SEQ.NEXTVAL FROM DUAL";
        return sql;
      }
      public String getInsertSql(ServiceInfoModel model) {
        String sql="INSERT INTO SP_SERVICE_INFO (SPNUMBER,SERVICENUMBER,SERVICECODE,SERVICE_NAME,SERVICE_TYPE,BILL_CODE,BILL_TYPE,BILL_VALUE,SERVICETYPE,SCOPE,DMOCOMMAND,CMOCOMMAND,ACTIVEFLAG,APPLYTIME,TESTDAYS,RESERVE,MODIFYSTAFF,MODIFYTIME) VALUES ("+model.getSpnumber()+",'"+model.getServicenumber()+"','"+model.getServicecode()+"','"+model.getServicename()+"',"+model.getServicetype2()+","+model.getBillcode()+","+model.getBilltype()+","+model.getBillvalue()+","+model.getServicetype()+","+model.getScope()+",'"+model.getDmocommand()+"','"+model.getCmocommand()+"',"+model.getActiveflag()+","+model.getApplytime()+","+model.getTestdays()+",'"+model.getReserve()+"',"+model.getModifystaff()+","+model.getModifytime()+")";
        return sql;
      }
      public String getUpdateSql(ServiceInfoModel model) {
        String sql="UPDATE SP_SERVICE_INFO SET SERVICENUMBER='"+model.getServicenumber()+"',SERVICECODE='"+model.getServicecode()+"',SERVICE_NAME='"+model.getServicename()+"',SERVICE_TYPE="+model.getServicetype2()+",BILL_CODE="+model.getBillcode()+",BILL_TYPE="+model.getBilltype()+",BILL_VALUE="+model.getBillvalue()+",SERVICETYPE="+model.getServicetype()+",SCOPE="+model.getScope()+",DMOCOMMAND='"+model.getDmocommand()+"',CMOCOMMAND='"+model.getCmocommand()+"',ACTIVEFLAG="+model.getActiveflag()+",APPLYTIME="+model.getApplytime()+",TESTDAYS="+model.getTestdays()+",RESERVE='"+model.getReserve()+"',MODIFYSTAFF="+model.getModifystaff()+",MODIFYTIME="+model.getModifytime()+" WHERE SPNUMBER="+model.getSpnumber()+"";
        return sql;
      }
      public String getUpdateSqlByCondition(ServiceInfoModel model,String condition){
    String sql="UPDATE SP_SERVICE_INFO SET SERVICENUMBER='"+model.getServicenumber()+"',SERVICECODE='"+model.getServicecode()+"',SERVICE_NAME='"+model.getServicename()+"',SERVICE_TYPE="+model.getServicetype2()+",BILL_CODE="+model.getBillcode()+",BILL_TYPE="+model.getBilltype()+",BILL_VALUE="+model.getBillvalue()+",SERVICETYPE="+model.getServicetype()+",SCOPE="+model.getScope()+",DMOCOMMAND='"+model.getDmocommand()+"',CMOCOMMAND='"+model.getCmocommand()+"',ACTIVEFLAG="+model.getActiveflag()+",APPLYTIME="+model.getApplytime()+",TESTDAYS="+model.getTestdays()+",RESERVE='"+model.getReserve()+"',MODIFYSTAFF="+model.getModifystaff()+",MODIFYTIME="+model.getModifytime()+" WHERE " + condition;
        return sql;
      }
      public String getDeleteSql(int spnumber) {
        String sql="DELETE FROM SP_SERVICE_INFO WHERE SPNUMBER="+spnumber;
        return sql;
      }
      public String getDeleteSqlByCondition(String condition) {
        String sql="DELETE FROM SP_SERVICE_INFO WHERE "+condition;
        return sql;
      }
      public String getDeleteBatchSql(int[] ids) {
        String sql="";
        for (int i=0;i<ids.length;i++){
          sql+=" OR SPNUMBER="+ids[i];
        }
        sql="DELETE FROM SP_SERVICE_INFO WHERE 1=2"+sql;
        return sql;
      }
      public String getQueryAllSql() {
        String sql="SELECT * FROM SP_SERVICE_INFO ";
        return sql;
      }
      public String getQueryByConditionSql(String condition) {
        String sql="SELECT * FROM SP_SERVICE_INFO"+" WHERE "+condition;
        return sql;
      }
      public String getQueryRowCountByConditionSql(String condition) {
        if (Function.isEmpty(condition))
          condition="1=1";
        String sql="SELECT COUNT(*) COUT FROM SP_SERVICE_INFO"+" WHERE "+condition ;
        return sql;
      }
    }
      

  2.   

    //ServiceControl.java
    package spmanager;
    import common.*;
    import java.sql.*;
    import java.util.*;
    /*user-defined import begin*//*user-defined import end***/
    public class ServiceInfoControl extends Database{
      public static ServiceInfoModel insert(ServiceInfoModel ServiceInfoModel) throws BrowException{
        String sql=ServiceInfoModel.getInsertSql(ServiceInfoModel);
        try{
          int row=executeUpdate(sql);
          if (row==1) return ServiceInfoModel;
          Debug.println("errer sql:"+sql);
          throw new BrowException(6);//新增失败,可能是别的用户已经先加入了相同的数据
        }catch(BrowException be){
          throw be;
        }catch(Exception e){
          e.printStackTrace();
          Debug.println("errer sql:"+sql);
          throw new BrowException(6);//新增失败,可能是别的用户已经先加入了相同的数据
        }
      }  public static ServiceInfoModel update(ServiceInfoModel ServiceInfoModel) throws BrowException{
        String sql=ServiceInfoModel.getUpdateSql(ServiceInfoModel);
        try{
          int row=executeUpdate(sql);
          if (row==1) return ServiceInfoModel;
          Debug.println("errer sql:"+sql);
          if (row!=0) throw new BrowException(9);//更新了多条记录
          try {
            queryById(ServiceInfoModel.getSpnumber());
          }catch(BrowException be){
            if (be.getExceptionCode()==5) throw be;//系统繁忙
            if (be.getExceptionCode()==13) throw new BrowException(7);//修改失败,此记录早已不存在
          }
          throw new BrowException(3);//修改失败
        }catch(BrowException be){
          throw be;
        }catch(Exception e){
          e.printStackTrace();
          Debug.println("errer sql:"+sql);
          throw new BrowException(3);//修改失败
        }
      }  public static ServiceInfoModel updateByCondition(ServiceInfoModel ServiceInfoModel,String condition) throws BrowException{
        String sql=ServiceInfoModel.getUpdateSqlByCondition(ServiceInfoModel,condition);
        try{
          int row=executeUpdate(sql);
          if (row==1) return ServiceInfoModel;
          Debug.println("errer sql:"+sql);
          if (row!=0) throw new BrowException(9);//更新了多条记录
          try {
            queryById(ServiceInfoModel.getSpnumber());
          }catch(BrowException be){
            if (be.getExceptionCode()==5) throw be;//系统繁忙
            if (be.getExceptionCode()==13) throw new BrowException(7);//修改失败,此记录早已不存在
          }
          throw new BrowException(3);//修改失败
        }catch(BrowException be){
          throw be;
        }catch(Exception e){
          e.printStackTrace();
          Debug.println("errer sql:"+sql);
          throw new BrowException(3);//修改失败
        }
      }  public static ServiceInfoModel update(ServiceInfoModel ServiceInfoModel,Connection conn) throws BrowException{
        String sql=ServiceInfoModel.getUpdateSql(ServiceInfoModel);
        try{
          Statement stmt=conn.createStatement();
          int row=stmt.executeUpdate(sql);
          stmt.close();
          if (row==1) return ServiceInfoModel;
          Debug.println("errer sql:"+sql);
          if (row!=0) throw new BrowException(9);//更新了多条记录
          try {
            queryById(ServiceInfoModel.getSpnumber());
          }catch(BrowException be){
            if (be.getExceptionCode()==5) throw be;//系统繁忙
            if (be.getExceptionCode()==13) throw new BrowException(7);//修改失败,此记录早已不存在
          }
          throw new BrowException(3);//修改失败
        }catch(BrowException be){
          throw be;
        }catch(Exception e){
          e.printStackTrace();
          Debug.println("errer sql:"+sql);
          throw new BrowException(3);//修改失败
        }
      }
      public static boolean delete(int spnumber) throws BrowException{
        String sql=new ServiceInfoModel().getDeleteSql(spnumber);
        try{
          int row=executeUpdate(sql);
          if (row==1) return true;
          Debug.println("errer sql:"+sql);
          if (row!=0) throw new BrowException(10);//删除了多条记录
          try {
            queryById(spnumber);
          }catch(BrowException be){
            if (be.getExceptionCode()==5) throw be;//系统繁忙
            if (be.getExceptionCode()==13) throw new BrowException(8);//删除失败,此记录早已不存在
          }
          throw new BrowException(14);//可能有的数据关联到此记录,所以未能删除此记录
        }catch(BrowException be){
          throw be;
        }catch(Exception e){
          e.printStackTrace();
          Debug.println("errer sql:"+sql);
          throw new BrowException(4);//删除失败
        }
      }
      public static boolean deleteByUniqueId(int spnumber,String servicecode) throws BrowException{
        String sql=new ServiceInfoModel().getDeleteSqlByCondition(" SPNUMBER='"+spnumber+"' and SERVICECODE='"+servicecode+"' " );
        System.out.println(sql);
        try{
          int row=executeUpdate(sql);
          if (row==1) return true;
          Debug.println("errer sql:"+sql);
          if (row!=0) throw new BrowException(10);//删除了多条记录
          try {
            queryById(spnumber);
          }catch(BrowException be){
            if (be.getExceptionCode()==5) throw be;//系统繁忙
            if (be.getExceptionCode()==13) throw new BrowException(8);//删除失败,此记录早已不存在
          }
          throw new BrowException(14);//可能有的数据关联到此记录,所以未能删除此记录
        }catch(BrowException be){
          throw be;
        }catch(Exception e){
          e.printStackTrace();
          Debug.println("errer sql:"+sql);
          throw new BrowException(4);//删除失败
        }
      }
      public static boolean delete(int spnumber,Connection conn) throws BrowException{
        String sql=new ServiceInfoModel().getDeleteSql(spnumber);
        try{
          Statement stmt=conn.createStatement();
          int row=stmt.executeUpdate(sql);
          stmt.close();
          if (row==1) return true;
          Debug.println("errer sql:"+sql);
          if (row!=0) throw new BrowException(10);//删除了多条记录
          try {
            queryById(spnumber);
          }catch(BrowException be){
            if (be.getExceptionCode()==5) throw be;//系统繁忙
            if (be.getExceptionCode()==13) throw new BrowException(8);//删除失败,此记录早已不存在
          }
          throw new BrowException(14);//可能有的数据关联到此记录,所以未能删除此记录
        }catch(BrowException be){
          throw be;
        }catch(Exception e){
          e.printStackTrace();
          Debug.println("errer sql:"+sql);
          throw new BrowException(4);//删除失败
        }
      }
      public static boolean deleteBatch(int[] spnumbers) throws BrowException{
        String sql=new ServiceInfoModel().getDeleteBatchSql(spnumbers);
        try{
          int row=executeUpdate(sql);
          if (row==spnumbers.length) return true;
          Debug.println("errer sql:"+sql);
          if (row==0) throw new BrowException(4);//删除失败
          if (row<spnumbers.length) throw new BrowException(11);
          else throw new BrowException(12);//删除了太多记录
        }catch(BrowException be){
          throw be;
        }catch(Exception e){
          e.printStackTrace();
          Debug.println("errer sql:"+sql);
          throw new BrowException(4);//删除失败
        }
      }
      public static Collection queryAll() throws BrowException{
        String sql=new ServiceInfoModel().getQueryAllSql();
        Collection coll=new ArrayList();
        Connection conn=null;
        try {
          conn=pool.getConnection();
          Statement stmt=conn.createStatement();
          ResultSet rs=stmt.executeQuery(sql);
          while (rs.next()){
            ServiceInfoModel ServiceInfoModel=parseResultSet(rs);
            coll.add(ServiceInfoModel);
          }
          rs.close();
          stmt.close();
          pool.freeConnection( conn ,0 );
        }catch(BrowException be){
          throw be;
        }catch(Exception e){
          pool.freeConnection( conn ,1 );
          e.printStackTrace();
          Debug.println("errer sql:"+sql);
          throw new BrowException(5);//系统繁忙
        }
        return coll;
      }
      

  3.   


    //调用jsp
    <%
    if (Function.isEmpty(strPage)) strPage="1";
    int pageNum=Integer.parseInt(strPage);//当前页号
                int rowCount=ServiceInfoControl.getRowCountBySpnumber(loginId);//总共行数
    int pageCount=rowCount/Variable.INIT_PAGE_SIZE;//总共页数
    if (rowCount%Variable.INIT_PAGE_SIZE!=0) pageCount++;
    if (pageNum>pageCount) pageNum=pageCount;
    if (pageNum<1) pageNum=1;
    Collection coll=ServiceInfoControl.queryBySpnumber(loginId,(pageNum-1)*Variable.INIT_PAGE_SIZE+1,pageNum*Variable.INIT_PAGE_SIZE);
    Iterator it=coll.iterator();
    while (it.hasNext()){
    ServiceInfoModel model=(ServiceInfoModel)it.next();
    %>
    <tr>
      <td bgcolor="#ffffff" class="test2black" align="center"
         nowrap height=22><%=model.getSpnumber()%>
      </td>
     .....
    太长,只摘取部分,自己去看吧