小弟不懂jsp,现在有个需求,在jsp页面中有两个文本域输入两个字段A和B,还有一个空的文本域txtC一个按钮,
输入A和B后,点击按钮就可以查询显示出数据库中的字段C根据输入字段A和B SqL语句为“select C from talbe1 where datet between A  and B”把查处出的C返回到空文本域txtC中。
数据库连接已经做好,请问怎么实现最简单,用到哪些方法,最好有实例代码参考。

解决方案 »

  1.   

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                                    Connection con=DriverManager.getConnection("jdbc:odbc:studlist"); 
                                    Statement stmt=con.createStatement();
                                    ResultSet rs=stmt.executeQuery("select * from student");
                                    System.out.println("Result before executeUpdate");
                                    while(rs.next())
                                    { 
                                            System.out.println(rs.getString("name"));
            System.out.println(rs.getString("age"));
                    }
      

  2.   

    主协议jdbc 驱动程序类型为odbc,它指明JDBC管理器如何访问数据库,该例指名为采用JDBC-ODBC桥接方式;其它为数据库的位置表示。 
    例如:装载mySQL JDBC驱动程序
    Class.forName("org.gjt.mm.mysql.Driver ");
    String url 
    ="jdbc:mysql://localhost/softforum?user=soft&password=soft1234&useUnicode=true&characterEncoding=8859_1" 
      //testDB为你的数据库名 
      Connection conn= DriverManager.getConnection(url);
    例如:装载Oracle JDBC OCI驱动程序(用thin模式)
    Class.forName("oracle.jdbc.driver.OracleDriver ");
    String url="jdbc:oracle:thin:@localhost:1521:orcl"; 
      //orcl为你的数据库的SID 
      String user="scott"; 
      String password="tiger"; 
      Connection conn= DriverManager.getConnection(url,user,password);
    注意:也可以通过con.setCatalog("MyDatabase")来加载数据库。
    例如:装载DB2驱动程序
    Class.forName("com.ibm.db2.jdbc.app.DB2Driver ")
    String url="jdbc:db2://localhost:5000/sample"; 
      //sample为你的数据库名 
      String user="admin"; 
      String password=""; 
      Connection conn= DriverManager.getConnection(url,user,password); 
    例如:装载MicroSoft SQLServer驱动程序
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver ");
    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; 
      //pubs为你的数据库的 
      String user="sa"; 
      String password="";   
      Connection conn= DriverManager.getConnection(url,user,password);
    (4)查询数据库的一些结构信息
    这主要是获得数据库中的各个表,各个列及数据类型和存储过程等各方面的信息。根据这些信息,从而可以访问一个未知结构的数据库。这主要是通过DatabaseMetaData类的对象来实现并调用其中的方法来获得数据库的详细信息(即数据库的基本信息,数据库中的各个表的情况,表中的各个列的信息及索引方面的信息)。
    DatabaseMetaData dbms=con.getMetaData();
    System.out.println("数据库的驱动程序为 "+dbms.getDriverName());
    (5)查询数据库中的数据:
    在JDBC中查询数据库中的数据的执行方法可以分为三种类型,分别对应Statement (用于执行不带参数的简单SQL语句字符串),PreparedStatement(预编译SQL语句)和CallableStatement(主要用于执行存储过程)三个接口。
    9.5.1、实现对数据库的一般查询Statement
    1、创建Statement对象(要想执行一个SQL查询语句,必须首先创建出Statement对象,它封装代表要执行的SQL语句)并执行SQL语句以返回一个ResultSet对象,这可以通过Connection类中的createStatement()方法来实现。
    Statement stmt=con.createStatement();
    2、执行一个SQL查询语句,以查询数据库中的数据。Statement接口提供了三种执行SQL语句的方法:executeQuery()、executeUpdate() 和execute()。具体使用哪一个方法由SQL语句本身来决定。
    方法 executeQuery 用于产生单个结果集的语句,例如 SELECT 语句等。
            方法 executeUpdate 用于执行INSERT、UPDATE或DELETE 语句以及SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。
            方法 execute 用于执行返回多个结果集、多个更新计数或二者组合的语句。一般不会需要该高级功能。
                    下面给出通过Statement类中的executeQuery()方法来实现的代码段。executeQuery()方法的输入参数是一个标准的SQL查询语句,其返回值是一个ResultSet类的对象。 
            ResultSet rs=stmt. executeQuery ("select * from DBTableName");         
            要点:①JDBC在编译时并不对将要执行的SQL查询语句作任何检查,只是将其作为一个String类对象,直到驱动程序执行SQL查询语句时才知道其是否正确。对于错误的SQL查询语句,在执行时将会产生 SQLException。
            ②一个Statement对象在同一时间只能打开一个结果集,对第二个结果集的打开隐含着对第一个结果集的关闭。
            ③如果想对多个结果集同时操作,必须创建出多个Statement对象,在每个Statement对象上执行SQL查询语句以获得相应的结果集。
            ④如果不需要同时处理多个结果集,则可以在一个Statement对象上顺序执行多个SQL查询语句,对获得的结果集进行顺序操作。 
            import java.sql.*;
            public class ResultSetTest
            { public static void main(String args[])
                    {        try
                            {    
                                    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                                    Connection con=DriverManager.getConnection("jdbc:odbc:studlist"); 
                                    Statement stmt=con.createStatement();
                                    ResultSet rs1=stmt.executeQuery("select name from student");
                                    ResultSet rs2=stmt.executeQuery("select age from student");
            //此时rs1已经被关闭    
                    while(rs2.next())
                    {    
                    System.out.println(rs2.getObject(1));
                    }
                    rs2.close();
                    stmt.close();
                    con.close();
                    }
                    catch(Exception e)
                    {
                            System.out.println(e);
                    }    
                    }
            }
            注意:
            此时显示出的将是姓名还是年龄?(将显示的是rs2的结果集的内容,即学生的年龄,因为采用JDBC-ODBC方式的驱动程序时,并且是采用同一个Statement对象,它只会保留最新的结果集,rs1中的内容将会被新的结果集所取代)。
            3、 关闭Statement对象:每一个Statement对象在使用完毕后,都应该关闭。
            stmt.close();