关于javabean的数据库连接 和分页 代码 效率不是最高的 ,能给初学的人一点帮助

来源:互联网 发布:淘宝网中老年女服装 编辑:程序博客网 时间:2024/04/29 06:56

数据库连接  和  增删改  

QueryBean.java

package weblistbean;
import java.sql.*;
import java.io.*;
public class QueryBean
{
  //public String query_statement; /*定义sql语句*/
  public String param[]; /*查询条件*/
  public ResultSet result=null; /*查询结果*/
  public Connection conn;
//设置构造函数
 
///数据库连接
  public QueryBean() throws Exception{
       
        this.setConnection("com.microsoft.jdbc.sqlserver.SQLServerDriver","jdbc:microsoft:sqlserver://10.0.0.21:1433;DatabaseName=lngprs;SelectMethod=Cursor","sa","sa");
         System.out.println("---------设置构造函数--------------");
   }
  //设置查询参数
  public void setParam(String[] param)
  {
    this.param=param;
  }
  //设置SQL查询语句
  //public void setQuerystatement(String query_statement)
  //{
   //System.out.println(query_statement);
   // this.query_statement=query_statement;
   // System.out.println("---------传入sql语句--------------");
  //}
  //设置连接参数
  public void setConnection(String driverName,String jdbcURL,String username,String passwd) throws Exception
  {
    Connection conn1;
    Class.forName(driverName);
   // conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://"+p.getProperty("dbserver")+":1433;DatabaseName="+p.getProperty("dbname")+";charset=GB2312",p.getProperty("user"),p.getProperty("password"));        
    conn1=DriverManager.getConnection(jdbcURL,username,passwd);
    ////
   // Stm = conn.createStatement();             
    ////
    conn1.setAutoCommit(false);
    this.conn = conn1;
    System.out.println("---------数据连接成功--------------");
  }
  /*获取查询结果*/
  public ResultSet getResult(String query_statement)
  {
    try
    {
      PreparedStatement select_stm=conn.prepareStatement(query_statement,java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
      if (param!=null)
        for(int i=0;i<param.length;i++)
         select_stm.setString(i+1,param[i]);
      result=select_stm.executeQuery();
    }catch(Exception e){System.out.println(e);}
    return result;
  }
  /*对数据库进行增加记录操作*/
  public void insertRecord(String query_statement) throws SQLException,java.io.UnsupportedEncodingException
  {
    try
    {
     
      PreparedStatement insert_stm=conn.prepareStatement(query_statement);
      if (param!=null)
        for(int i=0;i<param.length;i++)
           insert_stm.setString(i+1,param[i]);
      insert_stm.executeUpdate();
      insert_stm.close();
      conn.commit();
      System.out.println("数据插入成功");
    }
    catch(Exception e)
    {
      System.out.println(e);
      conn.rollback();
    }
  }
  /*对数据记录进行更新操作*/
  public void updateRecord(String query_statement) throws SQLException,java.io.UnsupportedEncodingException
  {
    try
    {
     //System.out.println(query_statement);
      PreparedStatement update_stm=conn.prepareStatement(query_statement);
      if (param!=null)
        for (int i=0;i<param.length;i++)
          update_stm.setString(i+1,param[i]);
      update_stm.executeUpdate();
      update_stm.close();
      conn.commit();
      System.out.println("数据修改成功");
     }
     catch(Exception e)
     {
       System.out.println(e);
       conn.rollback();
     }
  }
  /*删除数据记录*/
  public void deleteRecord(String query_statement) throws SQLException,java.io.UnsupportedEncodingException
  {
    try
    {
     //System.out.println(query_statement);
      PreparedStatement delete_stm=conn.prepareStatement(query_statement);
      if (param!=null)
        for (int i=0;i<param.length;i++)
          delete_stm.setString(i+1,param[i]);
      delete_stm.executeUpdate();
      delete_stm.close();
      conn.commit();
      System.out.println("数据删除成功");
    }
    catch(Exception e)
    {
      System.out.println(e);
      conn.rollback();
    }
   }
}

searchtjreport.jsp代码
<jsp:useBean id="query" scope="session" class="weblistbean.QueryBean" />
<%@ page language="java" contentType="text/html;charset=gb2312"
    import="java.sql.*"
   import="java.io.*"
   import="java.util.*"
   import="javax.sql.*"
   import="javax.naming.*"
   import="java.text.*"
   import="java.lang.*"
%>
<%
  String stringSqlString,sumSqlString;  
  String  scontionstar,scontionend;
    scontionstar=request.getParameter("startDate");
    scontionend=request.getParameter("endDate");
 %>
  
<% //2006-08-10
 //scontionstar="2006-08-10";
 //scontionend="2006-09-17";
 
   stringSqlString="SELECT a.ALARM_TIME, b.SITE_NAME, a.INFECTANT_ID, a.STANDARD_VALUE,a.ACTUAL_VALUE";
 
   stringSqlString=stringSqlString+" FROM ALARM a LEFT OUTER JOIN T_DIC_SUBSITE b ON a.SITE_ID = b.SITE_ID WHERE (CONVERT(char(10), a.ALARM_TIME, 120) >= '"+scontionstar+"') AND (CONVERT(char(10), a.ALARM_TIME, 120) <= '"+scontionend+"')";
 
     ResultSet rs=query.getResult(stringSqlString);
   SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  //////格式化日期
     DecimalFormat df = new DecimalFormat("##.00");
  %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK href="Scripts/Global.css" type="text/css" rel="stylesheet">
<LINK href="Scripts/Web_Catalog.css" type="text/css" rel="stylesheet">
<title>统计报表</title>
</head>

<body>
<table align="center" id="tabList" bordercolordark="#EBEFFC" bordercolor=#ffffff bordercolorlight="#CCD7F7" class="itemList" border="4" cellpadding="3" cellspacing="2" width="100%">
  <tr align="center" valign="middle">
    <td bgcolor="#1F9CFA" nowrap>月份</td>
    <td bgcolor="#1F9CFA" nowrap>故障数</td>
    <td bgcolor="#1F9CFA" nowrap>超标数</td>
    <td bgcolor="#1F9CFA" nowrap>超标最大值</td>
    <td  bgcolor="#1F9CFA" nowrap colspan="2">有效小时数</td>
  </tr>
  <%             
            while(rs.next()) {
      String curdate=dateformat.format(rs.getTimestamp("ALARM_TIME"));     
     // STANDARD_VALUE=rs.getDouble("STANDARD_VALUE");
      double STANDARD_VALUE=rs.getDouble("STANDARD_VALUE");
               STANDARD_VALUE = Double.parseDouble(df.format(STANDARD_VALUE));

      double ACTUAL_VALUE=rs.getDouble("ACTUAL_VALUE");
                ACTUAL_VALUE = Double.parseDouble(df.format(ACTUAL_VALUE));
   
   
     
         %>
  <tr class='tr1' align="center" valign="middle">
    <td><%=curdate %></td>
    <td><%=rs.getString("SITE_NAME") %></td>
    <td><%=rs.getString("INFECTANT_ID")%></td>
    <td><%=STANDARD_VALUE %></td>
    <td><%=ACTUAL_VALUE %></td>
  </tr>
  <%
             }
   
           %>
  <tr align="center" valign="middle">
    <td>合计</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td colspan="2">&nbsp;</td>
  </tr>
</table>
</body>
</html>

 

数据库分页

Datapagebean.java

package weblistbean;
public class Datapagebean{
  private int currentPage;//当前页数
  private int countRecord;//总记录条数
  private int countPage;//总页数
  private int sizePage;//每页记录条数
  public void setAll(int _countRecord,int _sizePage)
//设置四个成员变量的值
{
    countRecord=_countRecord;
    sizePage=_sizePage;
    if(countRecord%sizePage==0)
      countPage=countRecord/sizePage;
    else
      countPage=countRecord/sizePage+1;
    currentPage=1;
  }
  public int getCurrentPage() {
    return currentPage;
  }
  public int getCountPage() {
    return countPage;
  }
  public long getCountRecord() {
    return countRecord;
  }
  public int getSizePage() {
    return sizePage;
  }
  public void setCurrentPage(int currentPage) {
    this.currentPage = currentPage;
  }
}
breakanalyse.jsp  调用分页代码

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<jsp:useBean id="dbbean" scope="session" class="org.modern.dbbean" />
<jsp:useBean id="query" scope="session" class="weblistbean.QueryBean" />
<jsp:useBean id="datapagebean" scope="session" class="weblistbean.Datapagebean">
</jsp:useBean>

<%@ page language="java" contentType="text/html;charset=gb2312"
    import="java.sql.*"
   import="java.io.*"
   import="java.util.*"
   import="javax.sql.*"
   import="javax.naming.*"
   import="java.text.*"
   import="java.lang.*"
%>
<%
  String sql;
  int rowCount;
  //////////////
 //String stringBREAKDOWN_TYPE_ID="gggggggg";
 //String stringMEMO="hhhhhhhhhhh";
// int Goods_id=5;
// sql="update  BREAKDOWN   set BREAKDOWN_TYPE_ID = '"+stringBREAKDOWN_TYPE_ID+"',MEMO = '"+stringMEMO+"' where BREAKDOWN_ID = "+Goods_id+" ";
  
 // dbbean.update(sql); 
  ////////////////////
   // sql="SELECT ALARM_TIME,SITE_ID,INFECTANT_ID,STANDARD_VALUE,ACTUAL_VALUE, MEMO FROM ALARM";
   sql="SELECT a.BREAKDOWN_TIME, b.SITE_NAME, a.INFECTANT_ID, a.BREAKDOWN_TYPE_ID,";
   sql=sql+"a.BREAK_result,a.BREAKDOWN_ID FROM BREAKDOWN a LEFT OUTER JOIN T_DIC_SUBSITE b ON a.SITE_ID = b.SITE_ID WHERE (CONVERT(char(10), a.BREAKDOWN_TIME, 120) >= '2005-08-10') AND (CONVERT(char(10), a.BREAKDOWN_TIME, 120) <= '2006-09-17') order by BREAKDOWN_ID desc";
 
  //dbbean.getvResult(sql); 
  ResultSet rs=query.getResult(sql);
  //rowCount=dbbean.getrow(); 
  long  BREAK_ID;
 SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  //////格式化日期
 /////分页代码/////
  String pages=request.getParameter("dipage");
         //设定Bean的属性
         rs.last();
         int countRecord=rs.getRow();//得到记录的条数
         int countPageRecord=5;//每页5条记录,要设置每页记录条数就更改这个变量的值
         if(pages==null||(pages.trim()).length()==0)
           datapagebean.setAll(countRecord,countPageRecord);
         else
         {
           try
           {
             datapagebean.setCurrentPage(Integer.parseInt(pages));
           }
           catch(Exception e)
           {
             out.println("参数不正确!");
            }
          }
         //当前记录号
         int currentRecord=(datapagebean.getCurrentPage()-1)*datapagebean.getSizePage();
         if(currentRecord==0)
           rs.beforeFirst();
         else
           rs.absolute(currentRecord);
  
     /////分页代码/////
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<LINK href="Scripts/Global.css" type="text/css" rel="stylesheet">
<LINK href="Scripts/Web_Catalog.css" type="text/css" rel="stylesheet">
<title>故障分析</title>
</head>

<body>
<form name="form1" method="post" action="">
  <table align="center" id="tabList" borderColorDark="#EBEFFC" borderColor=#ffffff borderColorLight="#CCD7F7" class="itemList" border="4" cellpadding="3" cellspacing="2" width="100%">
    <tr align="center" valign="middle">
      <td>故障时间</td>
      <td>站点</td>
      <td>污染物</td>
      <td>故障类型</td>
      <td>故障处理结果</td>
      <td></td>
    </tr>
    <%
  /////分页代码/////
    int i=0;
     /////分页代码/////
          while(rs.next())  {
           // rs.getInt("user_age")
     String curdate=dateformat.format(rs.getTimestamp("BREAKDOWN_TIME"));
    
         %>
    <tr align="center" valign="middle">
      <td><%=curdate %></td>
      <td><%=rs.getString("SITE_NAME") %></td>
      <td><%=rs.getString("INFECTANT_ID") %></td>
      <td><%=rs.getString("BREAKDOWN_TYPE_ID") %></td>
      <td><%=rs.getString("BREAK_result") %></td>
      <td><a href='edit_breakanalyse.jsp?ID=<%=rs.getString("BREAKDOWN_ID")%> '><img src="img/ico_edit.gif" width="15" height="15" alt="" border="0"></a></td>
    </tr>
    <%
             }
           %>
    <tr align="center" valign="middle">
      <td colspan="6">"共"<%=datapagebean.getCountRecord()%>"条记录,共"<%=datapagebean.getCountPage()%>"页,当前第"<%=datapagebean.getCurrentPage()%>"页,每页"<%=datapagebean.getSizePage()%>"条记录,"
 <% if(datapagebean.getCurrentPage()==1)//当前是首页
              ;
           else//当前不是首页
           {
     %>                                   
     <a href=breakanalyse.jsp?dipage=1>首页</a>,<a href='breakanalyse.jsp?dipage=<%=datapagebean.getCurrentPage()-1%>'>上一页</a>,
  <%
   }
  
     if(datapagebean.getCurrentPage()==datapagebean.getCountPage())//当前是末页
              ;
           else//当前不是末页
           {
     %>
     <a href='breakanalyse.jsp?dipage=<%=datapagebean.getCurrentPage()+1%>'>下一页</a>,
     <a href='breakanalyse.jsp?dipage=<%=datapagebean.getCountPage()%>'>末页</a>
    <%}%>
   &nbsp;</td>
    </tr>
  </table>
</form>
</body>
</html>

 

 

 

这段代码是判断数据库是否有记录  没有插入,有更新

 SITE_ID_ASK_NOWDATA_DATE="SELECT site_id FROM ASK_NOWDATA_DATE WHERE (site_id = '"+S_FZ_GX_TABLE_SITE_ID+"')";
                            Record_ASK_NOWDATA_DATE=query.getResult(SITE_ID_ASK_NOWDATA_DATE);
          if(!Record_ASK_NOWDATA_DATE.isBeforeFirst()){
                                      System.out.println("无记录");
           SQL_TIME = new String(SQL_TIME.getBytes("ISO8859_1"));
           sql_insert="insert   into   ASK_NOWDATA_DATE(site_id,rdatetime) values('"+S_FZ_GX_TABLE_SITE_ID+"','"+SQL_TIME+"')";         
                                      System.out.println("sql_update:="+sql_insert);
           query.insertRecord(sql_insert) ;
                                 }else{
                                     //输出记录
           SQL_TIME = new String(SQL_TIME.getBytes("ISO8859_1"));
           sql_update="update  ASK_NOWDATA_DATE set rdatetime ='"+SQL_TIME+"' where site_id = "+S_FZ_GX_TABLE_SITE_ID+"";
                                      System.out.println("sql_update:="+sql_update);
           query.updateRecord(sql_update) ;
                                  }

原创粉丝点击