jsp 显示
servlet作一下调度
javabean实现具体的逻辑操作

解决方案 »

  1.   

    楼上的说得对,你在javabean里边封装需要的逻辑方法
      

  2.   

    在javabean中做:
    1.查询:select * from 表名 where 条件
    2.修改:update 表名 set 字段="改成的量" where 条件
    3.删除:delete 表名 where 条件
    4.增加:insert 表名 ( 字段) value (变量)
      

  3.   

    如果在javabean中做添加,删除,修改,查询,我觉得在JSP中就可以用
    <jsp:useBean id=......>直接用了,那还要servlet干什么用呢?
      

  4.   

    servlet用来处理逻辑方面的判断,比如说是用add,update或者del等,然后再
    调用相应的bean的具体的方法!
      

  5.   

    有没有servlet这个方面的具体代码看看啊
      

  6.   

    利用javabean轻松实现对数据库的连接、查询以及增删改 --------------------------------------------------------------------------------
      我们在做jsp开发的时候,经常需要对数据库进行查询及增删改,而这些操作使用的又
    是非常频繁,因此,我写了一个javabean,来实现与数据库的连接以及对数据库的增删改。现
    在拿出来与大家共享,希望大家尊重作者的劳动,使用时保留作者信息以及版本信息等等,谢谢!
    QueryBean.java:
    pacakage operate_db;
    /**
    * Title: select insert update and delete
    * Description: select insert update and delete
    * Copyright: Copyright (c) 2001
    * @author Lci21
    * @version 1.0
    */
    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;
    }
    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_INS
    ENSITIVE,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();
    }

    }
    以下给简单地给出了使用的范例,请参考:
    <%@ page contentType="text/html" import="operate_db.*,java.sql.*" %>
    <jsp:useBean id="querybean" scope="request" class="operate_db.QueryBean" />
    <%
    String prm1,prm2,prm3;
    ResultSet rst=null;
    prm1 = ...;
    prm2 = ...;
    prm3 = ...;
    querybean.setConnection("sun.jdbc.odbc.JdbcOdbcDriver","jdbc:odbc:数据源名","sa","");try{
    String[] param = {prm1,prm2,prm3};
    /*设置select语句*/
    querybean.setQuerystatement("Select * from table where field1 = ? and field2=? and field3=?");
    querybean.setParam(param);
    rst=querybean.getResult();
    }catch(Exception e){System.out.println(e); }
    while (rst.next()){
    %><%=rst.getString(1)%>
    <%}%>
    希望大家尊重作者的劳动,使用时保留作者信息以及版本信息等等,谢谢!
    如果以后不是很忙的话,我会逐步写一些文章,把自己的一些开发经验与大家分享。
    初步的文章标题:
    **利用javabean轻松建立并管理数据库连接池!
    **利用javabean轻松实现页面导航及数据分页显示!
    **利用最终类的静态方法轻松实现对中文乱码的处理!
    **利用javabean轻松实现服务器端对数据类型的检测!
    **利用javabean轻松实现对服务器端日期格式的检测与处理!
    ......
    ......
    ......
    希望大家尊重作者的劳动,使用时保留作者信息以及版本信息等等,谢谢! 
      

  7.   

    : goodflash(another) 非常感谢,一定会尊重你的版权,有servlet的控制程序吗?我很希望能有servlet的代码让我学习一下。
      

  8.   

    其实用jsp就可以搞定,直接在jsp中放入select,update,delete,insert语句即可
      

  9.   

    这样的话,每次引用这个Bean都要建立一次数据库联结。我们知道,connection的建立是很耗资源和时间的(至少100ms),建议改进
      

  10.   

    各位朋友:
    我在做查询的时候出现一个这样的问题,我的查询语句是
    Select ysdjid,to_char(date,'yyyy-mm-dd'),name
    from ysdjb
    where ysdjid='"+ysdjid+"' and to_char(date,'yyyy-mm-dd')='"+date+"' and name='"+name"';
    请哪位告诉我这条语句错在哪里,为何不能查询。
    我用的是JavaServlet
      

  11.   

    在Java中你用PreparedStatement处理有参数的SQL语句吧,这样构造sql语句容易出错。
      

  12.   

    to_char(date,'yyyy-mm-dd')='"+date+"' 能这样写吗?
      

  13.   

    你可以命名一套命名规范,比如顺序如下:模块-操作-子操作-进一步细分,这就是所谓的消息格式,在jsp向后发请求时就按这个把参数带回去。然后用一个servlet来做分发,按照模块来加载相应的javabean,这点可以借助于XML和接口来实现,比如在servelt里你只得到模块名字,根据这个名字来在XML文件钟找到相关类的详细信息,而这些javabean又都继承了一个接口,这个接口有一个方法doServer()(当然可以有多个,关键看设计了),然后用接口来造型这些加载的类并调用doServer(),至于具体实现就时具体的bean的事了。至于连接数据库可以用连接池。在各个bean中,类名可以是模块名+bean,这样便于加载,在bean里doServer方法里根据消息格式得到操作,再由操作决定去调用doQuery()还是去调用doAdd()等,当然在这里可以加一个验证层,对数据进行检验,然后再决定是否返回。
    这样消息就要有统一的数据结构,以便传送。并且在那个servlet中要解析,大数据可能要通过流来解决。并且还要有一个返回的数据结构,这样jsp就可以拿到返回的数据了。
    只是一种肤浅的想法,仅供参考,由此引起的失败及后果概不负责。
    一切攻击概不理会,因为我目前做的基本上就是这样一个架构,只不过把bean变为ejb,除了一个分发任务的servlet外还有一些其它的辅助servlet,总之还要复杂的多,数据库也用的不是连接池。这种方式便于维护,适合做大系统,小系统不推荐。