Board logo

标题: [原创]学习javabean的小程序,欢迎批评 [打印本页]

作者: wxf    时间: 2006-8-11 13:23     标题: [原创]学习javabean的小程序,欢迎批评

小弟近日学习java ,然后自己试着写了个小javabean,纯当学习,其中定有许多不正确之处,请大家知道的指出啊,谢谢拉
DbOprt.java
这是数据库操作的bean,用的是sqlserver2000
  1. package dbop;
  2. import java.io.*;
  3. import java.util.*;
  4. import java.sql.*;
  5. public class DbOprt{
  6.   /////////////////////////////////////////////////////////////////////////////
  7.   //To use a different database please modify here first...
  8.   String dbDriverPath = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
  9.   String dbUrl = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=";
  10.   String dbName = "sdppcpeople";
  11.   /////////////////////////////////////////////////////////////////////////////
  12.   //Basic friendly properties...
  13.   String user = null;
  14.   String password = null;
  15.   Connection conForQuery = null;
  16.   Statement stmtForQuery = null;
  17.   ResultSet rsForQuery = null;
  18.   /////////////////////////////////////////////////////////////////////////////
  19.   //Constrator...
  20.   public DbOprt()
  21.   {
  22.     try {
  23.       Class.forName(dbDriverPath);
  24.     }catch(Exception e){
  25.       System.err.println(e.getMessage());
  26.     }
  27.   }
  28.   /////////////////////////////////////////////////////////////////////////////
  29.   //Base public set* method...
  30.   public void setUser(String user)
  31.   {
  32.     this.user = user;
  33.   }
  34.   public void setPassword(String password)
  35.   {
  36.     this.password = password;
  37.   }
  38.   /////////////////////////////////////////////////////////////////////////////
  39.   //Base public get* method...
  40.   public String getUser()
  41.   {
  42.     return this.user;
  43.   }
  44.   public String getPassword()
  45.   {
  46.     return this.password;
  47.   }
  48.   public Connection getConForQuery()
  49.   {
  50.     return this.conForQuery;
  51.   }
  52.   public Statement getStmtForQuery()
  53.   {
  54.     return this.stmtForQuery;
  55.   }
  56.   public ResultSet getRsForQuery()
  57.   {
  58.     return this.rsForQuery;
  59.   }
  60.   /////////////////////////////////////////////////////////////////////////////
  61.   //Extra method depends the base public set* & get* method...
  62.   public Boolean closeResultSet()
  63.   {
  64.     Boolean closeFlag = true;
  65.     try{
  66.       if(getRsForQuery() != null)
  67.         this.rsForQuery.close();
  68.     }catch(Exception e)
  69.     {
  70.       System.err.println(e.getMessage());
  71.       closeFlag = false;
  72.     }
  73.     return closeFlag;
  74.   }
  75.   public Boolean closeStatement()
  76.   {
  77.     Boolean closeFlag = true;
  78.     try{
  79.       if(getStmtForQuery() != null)
  80.         this.stmtForQuery.close();
  81.     }catch(Exception e)
  82.     {
  83.       System.err.println(e.getMessage());
  84.       closeFlag = false;
  85.     }
  86.     return closeFlag;
  87.   }
  88.   public Boolean closeConnection()
  89.   {
  90.     Boolean closeFlag = true;
  91.     try{
  92.       if(getConForQuery() != null)
  93.         this.conForQuery.close();
  94.     }catch(Exception e)
  95.     {
  96.       System.err.println(e.getMessage());
  97.       closeFlag = false;
  98.     }
  99.     return closeFlag;
  100.   }
  101.   public Boolean getLogin()
  102.   {
  103.     Boolean loginFlag = true;
  104.     Connection con = null;
  105.     try{
  106.       con = DriverManager.getConnection(dbUrl, getUser(), getPassword());
  107.     }catch(Exception e)
  108.     {
  109.       System.err.println(e.getMessage());
  110.       loginFlag = false;
  111.     }finally{
  112.       try {
  113.         if(con != null)
  114.           con.close();
  115.       } catch (Exception e) {
  116.         System.err.println(e.getMessage());
  117.       }
  118.     }
  119.     return loginFlag;
  120.   }
  121.   /////////////////////////////////////////////////////////////////////////////
  122.   //Warning:
  123.   //After call thismethod you must call the close*() method release them...
  124.   public ResultSet excuteQuery(String tablename)
  125.   {
  126.     Boolean queryFlag = true;
  127.     String sqlToQuery = "SELECT * FROM " + tablename;
  128.     try{
  129.       conForQuery = DriverManager.getConnection(dbUrl, getUser(), getPassword());
  130.       stmtForQuery = conForQuery.createStatement();
  131.       rsForQuery = stmtForQuery.executeQuery(sqlToQuery);
  132.     }catch(Exception e)
  133.     {
  134.       System.err.println(e.getMessage());
  135.       queryFlag = false;
  136.     }finally
  137.     {
  138.       if (!queryFlag)
  139.       {
  140.         try{
  141.           if (rsForQuery != null)
  142.             rsForQuery.close();
  143.           if (stmtForQuery != null)
  144.             stmtForQuery.close();
  145.           if (conForQuery != null)
  146.             conForQuery.close();
  147.         }catch(Exception e)
  148.         {
  149.           System.err.println(e.getMessage());
  150.         }
  151.       }
  152.     }
  153.     return rsForQuery;
  154.   }
  155.   public Boolean excuteUpdate(String sqlToUpdate)
  156.   {
  157.     Boolean updateFlag = true;
  158.     Connection con = null;
  159.     Statement stmt = null;
  160.     try{
  161.       con = java.sql.DriverManager.getConnection(dbUrl, getUser(), getPassword());
  162.       stmt = con.createStatement();
  163.       stmt.executeUpdate(sqlToUpdate);
  164.     }catch(Exception e)
  165.     {
  166.       System.err.println(e.getMessage());
  167.       updateFlag = false;
  168.     }finally
  169.     {
  170.       try
  171.       {
  172.         if(stmt != null)
  173.           stmt.close();
  174.         if (con != null)
  175.           con.close();
  176.       }catch(Exception e)
  177.       {
  178.         System.err.println(e.getMessage());
  179.       }
  180.     }
  181.     return updateFlag;
  182.   }
  183.   public int getDbColumn(String tablename)
  184.   {
  185.       int columnNum = 0;
  186.       String sql = "SELECT * FROM " + tablename;
  187.       Connection con = null;
  188.       Statement stmt = null;
  189.       ResultSet rs = null;
  190.       ResultSetMetaData rsmd = null;
  191.       try
  192.      {
  193.          Class.forName(this.dbDriverPath);
  194.          con = DriverManager.getConnection(dbUrl, getUser(), getPassword());
  195.          stmt = con.createStatement();
  196.          rs = stmt.executeQuery(sql);
  197.          rsmd = rs.getMetaData();
  198.          columnNum = rsmd.getColumnCount();
  199.      }catch(Exception e)
  200.      {
  201.          System.err.println(e.getMessage());
  202.          columnNum = 0;
  203.      }finally
  204.      {
  205.          try{
  206.              if(rs != null)
  207.                  rs.close();
  208.              if(stmt != null)
  209.                  stmt.close();
  210.              if(con != null)
  211.                  con.close();
  212.          }catch(Exception e)
  213.          {
  214.              System.err.println(e.getMessage());
  215.          }
  216.      }
  217.      return columnNum;
  218. }
  219.   /////////////////////////////////////////////////////////////////////////////
  220.   //Now,this is the end...
  221. }
复制代码

作者: wxf    时间: 2006-8-11 13:25     标题: [原创]学习javabean的小程序,欢迎批评

PeopleInfo.java
这是一个用来生成查询语句的bean.
  1. package people;
  2. public class PeopleInfo{
  3.     String peoplename = null;
  4.     String peoplesex = null;
  5.     String peoplebirthday = null;
  6.     String peoplejiguan = null;
  7.     String peopledepartment = null;
  8.     String tablename = null;
  9.     String pubkey = null;
  10.     ///////////////////////////////////////////////////////////////////////////
  11.     //Basic public set* method...
  12.     public void setPeoplename(String name)
  13.     {
  14.         this.peoplename = name;
  15.     }
  16.     public void setPeoplesex(String sex)
  17.     {
  18.         this.peoplesex = sex;
  19.     }
  20.     public void setPeoplebirthday(String birthday)
  21.     {
  22.         this.peoplebirthday = birthday;
  23.     }
  24.     public void setPeoplejiguan(String jiguan)
  25.     {
  26.         this.peoplejiguan = jiguan;
  27.     }
  28.     public void setPeopledepartment(String department)
  29.     {
  30.         this.peopledepartment = department;
  31.     }
  32.     public void setTablename(String tablename)
  33.     {
  34.         this.tablename = tablename;
  35.     }
  36.     public void setPubkey(String pubkey)
  37.     {
  38.         this.pubkey = pubkey;
  39.     }
  40.     ///////////////////////////////////////////////////////////////////////////
  41.     //Basic public get* method...
  42.     public String getPeoplename()
  43.     {
  44.         return this.peoplename;
  45.     }
  46.     public String getPeoplesex()
  47.     {
  48.         return this.peoplesex;
  49.     }
  50.     public String getPeoplebirthday()
  51.     {
  52.         return this.peoplebirthday;
  53.     }
  54.     public String getPeoplejiguan()
  55.     {
  56.         return this.peoplejiguan;
  57.     }
  58.     public String getPeopledepartment()
  59.     {
  60.         return this.peopledepartment;
  61.     }
  62.     public String getTablename()
  63.     {
  64.         return this.tablename;
  65.     }
  66.     public String getPubkey()
  67.     {
  68.         return this.pubkey;
  69.     }
  70.     public String getAddSql()
  71.     {
  72.         String sql = null;
  73.         sql = "INSERT INTO " + getTablename() + " VALUES (";
  74.         sql += ("';" + getPeoplename() + "';, ';" + getPeoplesex() + "';, ';" + getPeoplebirthday());
  75.         sql +=  ("';, ';" + getPeoplejiguan() + "';, ';" + getPeopledepartment() + "';)");
  76.         return sql;
  77.     }
  78.     public String getDelSql()
  79.     {
  80.         String sql = null;
  81.         sql =  "DELETE " + getTablename() + " WHERE " + getPubkey() + "=';" + getPeoplename() + "';";
  82.         return sql;
  83.     }
  84.     public String getModSql()
  85.     {
  86.         String sql = null;
  87.         sql = "UPDATE " + getTablename() + " SET ";
  88.         sql += ("peoplesex=';" + getPeoplesex() + "';, " + "peoplebirthday=';" +
  89.                 getPeoplebirthday() + "';, " + "peoplejiguan=';" + getPeoplejiguan() +
  90.                 "';, " + "peopledepartment=';" + getPeopledepartment() +"'; WHERE " +
  91.                 getPubkey() + "=';" + getPeoplename() + "';");
  92.         return sql;
  93.     }
  94.     ///////////////////////////////////////////////////////////////////////////
  95.     //Now,it';s the end..
  96. }
复制代码

作者: wxf    时间: 2006-8-11 13:27     标题: [原创]学习javabean的小程序,欢迎批评

[程序流程] user(client) | ________>在session中生成javabean,并保存用户名和密码 | | login.htm --post--> login.jsp(验证用户) ^ | |-------------------| 关闭session| error关闭session | 离开| |right LEA BUTTON| | |<------------>operate.jsp(操作及查询页面) | ^ | | | | 返回 | 返回 | |返回 | | | | /|\ | | / | \ | | / | \ | | / | \ | | / | \ | add.jsp del.jsp mod.jsp _________________________|____________|___________|___________________________________ USE BEAN PeopleInfo & DbOp ______________________________________________________________________________________ PeopleInfo.class DbOprt.class [数据库] databasename: sdppcpeople (在javabean DbOprt.class中定义) tablename: peopleinfo (在jsp中定义,并由jsp传递至javabean) properties: 名称 数据类型 大小 附加 peoplename varchar 20 PK peoplesex varchar 30 peoplebirthday carchar 30 peoplejiguan varchar 20 peopledepartment varchar 10 如上,jsp代码就不发了啊,第一次写bean,望各位给点意见。
作者: 风灵风之子    时间: 2006-8-11 18:46     标题: [原创]学习javabean的小程序,欢迎批评

如果LZ把数据库的信息写在配置文件里
再使用O/RM的话 程序可能会更简洁和清晰些
不过LZ第一次写javabean,程序写得已经不错了




欢迎光临 黑色海岸线论坛 (http://bbs.thysea.com/) Powered by Discuz! 7.2