executeQuery(String SQL)只能执行查询,也就是对数据库没有改动的操作,它返回SQL语句指定条件的RESULT
executeUpdate能执行添加、删除、修改.它的返回值是添加、删除、修改的记录的条数

解决方案 »

  1.   

    to:foregump(临江一笑)
    它的用法和executeQuery(String SQL)一样吗?也是将SQL语句作为它的参数吗?
    “返回值是添加、删除、修改的记录的条数”——就是说它的返回类型为int了?
      

  2.   

    1.查询用executeQuery,返回结果集,返回类型为ResultSet,增删改用executeUpdate,返回影响的行数,返回类型为int。具体的可参看java的API:executeQuery
    public ResultSet executeQuery(String sql)
                           throws SQLException
    Executes the given SQL statement, which returns a single ResultSet object. Parameters:
    sql - an SQL statement to be sent to the database, typically a static SQL SELECT statement 
    Returns:
    a ResultSet object that contains the data produced by the given query; never null 
    Throws: 
    SQLException - if a database access error occurs or the given SQL statement produces anything other than a single ResultSet object--------------------------------------------------------------------------------executeUpdate
    public int executeUpdate(String sql)
                      throws SQLException
    Executes the given SQL statement, which may be an INSERT, UPDATE, or DELETE statement or an SQL statement that returns nothing, such as an SQL DDL statement. Parameters:
    sql - an SQL INSERT, UPDATE or DELETE statement or an SQL statement that returns nothing 
    Returns:
    either the row count for INSERT, UPDATE or DELETE statements, or 0 for SQL statements that return nothing 
    Throws: 
    SQLException - if a database access error occurs or the given SQL statement produces a ResultSet object
      

  3.   

    完全正确!!!
    用法和executeQuery(String SQL)一样
    返回类型为int
    祝你好运~!@
      

  4.   

    2.1)jdbc:(前提是下载了jdbc的驱动)jsp连接Sql Server7.0/2000数据库 
    testsqlserver.jsp如下: 
    <%@ page contentType="text/html;charset=gb2312"%> 
    <%@ page import="java.sql.*"%> 
    <html> 
    <body> 
    <%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 
    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; 
    //pubs为你的数据库的 
    String user="sa"; 
    String password=""; 
    Connection conn= DriverManager.getConnection(url,user,password); 
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    String sql="select * from test"; 
    ResultSet rs=stmt.executeQuery(sql); 
    while(rs.next()) {%> 
    您的第一个字段内容为:<%=rs.getString(1)%> 
    您的第二个字段内容为:<%=rs.getString(2)%> 
    <%}%> 
    <%out.print("数据库操作成功,恭喜你");%> 
    <%rs.close(); 
    stmt.close(); 
    conn.close(); 
    %> 
    </body> 
    </html> 具体的可以参见帖子:http://www.csdn.net/develop/Read_Article.asp?Id=17769
      

  5.   

    2.2)jdbc:odbc(在开始->设置->控制面板->管理工具->数据源(odbc)中设置你的数据源)一步一步next下去,很容易的。jsp里面:
    <%
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //载入驱动程序类别
    Connection con = DriverManager.getConnection("jdbc:odbc:"+dsnname+"",""+DBusername+"",""+DBpwd+""); //建立数据库连接
    java.sql.Statement stmt = con.createStatement(); //建立Statement对象
    ResultSet rs; //建立ResultSet(结果集)对象
    %>当然,你也可以选择写成javabean有关数据库连接还可以考虑使用数据库连接池。这一类的帖子可以参见:CSDN_数据库连接池java实现小结帖子ID:http://www.csdn.net/Develop/Article/18/18434.shtm
      

  6.   

    3.假设你建的数据表名为temptable
    <%
    String str1 = "";
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //载入驱动程序类别
    Connection con = DriverManager.getConnection("jdbc:odbc:"+dsnname+"",""+DBusername+"",""+DBpwd+""); //建立数据库连接
    java.sql.Statement stmt = con.createStatement(); //建立Statement对象
    ResultSet rs; //建立ResultSet(结果集)对象String SQL = "select * from temptable";//查询的sql语句;增删改操作改为相应的sql语句
    rs = stmt.executeQuery(SQL);//如果是增删改操作,那么这里改为stmt.executeQuery(SQL);就可以的while(rs.next())//增删改操作这里就不用了。
    {
         str1 = rs.getString(1);//rs.getString是说该字段数据类型为String,如果是int的话就用rs.getInt(1);
         out.print(str1); 
    }
    %>你也可以把对数据库的操作封装成一个类,写成javabean在程序中调用。你也可以参见《JSP Examples and Best Practices》一书中的第21页起的例子,描述的非常详细。英文版的.pdf格式的下载地址在www.7yue.com。上面还有很多很好的书籍,呵呵。
      

  7.   

    3.假设你建的数据表名为temptable<%
    /******这一段的有关数据库连接最好try,catch一下****/
    String str1 = "";
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //载入驱动程序类别
    Connection con = DriverManager.getConnection("jdbc:odbc:"+dsnname+"",""+DBusername+"",""+DBpwd+""); //建立数据库连接
    java.sql.Statement stmt = con.createStatement(); //建立Statement对象
    ResultSet rs; //建立ResultSet(结果集)对象String SQL = "select * from temptable";//这是查询的sql语句,增删改操作只要改动相应的sql语句即可。
    rs = stmt.executeQuery(SQL);//增删改操作这里就要相应改为:stmt.executeUpdate(SQL);while(rs.next())//这句一定要,否则会出现无效的光标状态的错误,如果是增删改操作则整段都不用了
    {
        str1 = rs.getString(1);//如果字段类型为int则用rs.getInt(1);其它类型相应变动
        out.print(str1);//显示str1,也就是数据库中的数据
    }
    %>你也可以把有关数据库的操作封装成类,写成javabean在程序中调用本问题可以参见《JSP Examples and Best Practices》一书中第21页起的例子,写的很详细。呵呵
      

  8.   

    to:acefr()
    这些我都知道,但我想看一个具体实例,最好是使用swing做的界面,最好是表格化输出的。而且如果我的数据库(比如SQL Server 2000)中有多个表,那么我要对某个表进行操作的话是不是只要在SQL语句中写明就可以了,而在数据库连接中不需要注明是那个表?
    另:1、2问题的分我马上开贴另给。
    to: foregump(临江一笑)
    问题1的分我另开贴给你。
      

  9.   

    正确,连接完数据库后你要对表进行操作只要在sql里面写清楚就可以了。连接不用说明。:)
      

  10.   

    to:acefr()
    能给出3的例子吗?谢谢了!呵呵。
      

  11.   

    还有,刚才漏了,最后要记得释放连接,也就是最后加上rs.close();
    stmt.close();
    con.close();
      

  12.   

    谢谢!
    不过好像只要rs.close();就可以了,Java会自动关闭stmt和con的。
      

  13.   

    swing做界面的例子我手头没有,用html的你可以把从数据库取到的值放在<tr><td>和</td></tr>之间,这样也是表格化输出的效果,可以用drameweaver做可视化编程观看。
      

  14.   

    楼上的,大流量测测,赫赫~~~有始必有终,acefr() 的教程写的足足di^_^
      

  15.   

    Java Web Start应用程序管理器里的SwingSet的JTable演示有源代码。你可以下载完看一下。呵呵,是Swing的界面。
      

  16.   

    下载地址:http://java.sun.com/products/javawebstart/demos.html
      

  17.   

    JTable我会用,我是想看看有没有实例,然后从中借鉴一些数据库实现方法。
    还是谢谢你。
      

  18.   

    to:acefr() 
    我准备结贴了,虽然你没有给我实例,但是还是谢谢你的解答,我准备再开贴给你50分。