package test;
import java.sql.*; 
public class QueryBean 

  public String query_statement; /*定义sql语句*/ 
  public String param[]; /*查询条件*/ 
  public ResultSet result=null; /*查询结果*/
  public Connection conn; 
  //设置查询参数
  public void setParam(String[] param) 
  { 
    this.param=param; 
  } 
  //设置SQL查询语句
  public void setQuerystatement(String query_statement) 
  { 
    this.query_statement=query_statement; 
  } 
  //设置连接参数
  public void setConnection(String driverName,String jdbcURL,String username,String passwd) throws Exception 
  { 
    Connection conn1; 
    Class.forName(driverName); 
    conn1=DriverManager.getConnection(jdbcURL,username,passwd); 
    conn1.setAutoCommit(false); 
    this.conn = conn1; 
  } 
  /*获取查询结果*/ 
  public ResultSet getResult() 
  { 
    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() 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(); 
    } 
    catch(Exception e) 
    { 
      System.out.println(e); 
      conn.rollback(); 
    } 
  } 
  /*对数据记录进行更新操作*/ 
  public void updateRecord() throws SQLException,java.io.UnsupportedEncodingException 
  { 
    try 
    { 
      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(); 
     } 
     catch(Exception e) 
     { 
       System.out.println(e); 
       conn.rollback(); 
     } 
  } 
  /*删除数据记录*/ 
  public void deleteRecord() throws SQLException,java.io.UnsupportedEncodingException 
  { 
    try 
    { 
      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(); 
    } 
    catch(Exception e) 
    { 
      System.out.println(e); 
      conn.rollback(); 
    } 
   } 
}

解决方案 »

  1.   

    这个是别人写的javabean  我能调用连接和查询 ,但是   增加 删除和修改呢   不知道 该怎么使用
      

  2.   

    我遇到过类似的问题,你试试看当新增一条记录后把你的和数据库的联接关掉试试看.也就是说把conn对象close掉.这样可能就可以新增记录了.
      

  3.   

    to  JIEK_ONE(adeuxLuow想她了) 增加的时候 连接数据库.查询的时候不连接数据库,提示错误,  应该更改hjavabean  怎样更改才是最好的办法,哥们能指教下不
      

  4.   

    to JIEK_ONE(adeuxLuow想她了) 谢谢你的回答增加的时候 连接数据库.查询的时候不连接数据库,提示错误, 应该更改hjavabean 怎样更改才是最好的办法,哥们能指教下不 
      

  5.   

    建议你新建一个页面比如save.jsp的空白页来处理表单里面的数据
    保存和修改是需要提交你的表单到save.jsp来进行的,
    所以在save.jsp中可以写类似这样的代码:
    <jsp:useBean id="query" scope="session" class="test.QueryBean" />
    <%@ page language="java" contentType="text/html;charset=gb2312"
        import="java.sql.*"
        import="java.io.*"
    %>
    <%
    String flag =request.getParameter("flag");//flag是你之前页面list.jsp的某对象的值,比如某个文本框的值
    String sql = "insert into tab set flag='"+flag+"'";//生成update语句
    //然后再次调用bean,执行修改操作
    query.updateRecord(sql);
    //这样你就执行了修改操作,最后再跳回你的首页也就是list.jsp
    response.sendRedirect("list.jsp");
    %>
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <head><title>用户登录</title>
    </head>
    <body>
       <form name="FORM" id="FORM" method="post" target="_self" action="">
       </form>
       保存成功!
    </body>
    </html>
    这只是一个想法,可以帮助你完成保存的操作,重点在于如何将表单数据传入java程序中,
    所以需要将页面提交用
    request对象来获得这些你修改好的参数。
    在调用bean中的修改、保存等方法。
      

  6.   

    不好意思sql语句写错了应该是
    String sql = "update tab set flag='"+flag+"'";//生成update语句