Qqy.java
////////////////此文件有问题
ackage dxd.sql;
 
import java.util.Properties;
import java.sql.*;
import java.lang.*;
import dxd.sql.Mysql;
import dxd.datetime.DateTime;
import dxd.getstr.GetStr;public class Qqy{
public static void main(String []arg){

Mysql qqy_mysql = new Mysql();
String qqy_str="select * from temp_car_table where buy=1";
 
    ResultSet rs = qqy_mysql.executeQuery(qqy_str);
while (rs.next()){
String orderId=rs.getString("Id");
System.out.println("Order Id : "+orderId);
}
 
  }
}//////////////问题如下:
G:\tomcat\webapps\test3_back\WEB-INF\classes\Qqy.java:17: unreported exception java.sql.SQLException; must be caught or declared to be thrown
while (rs.next()){
                         ^
G:\tomcat\webapps\test3_back\WEB-INF\classes\Qqy.java:18: unreported exception java.sql.SQLException; must be caught or declared to be thrown
String orderId=rs.getString("Id");

解决方案 »

  1.   

    直接连数据库比较容易出错,还不容易管理,我建义楼主用中间件建立数据源比较好用,但是tomcat好像不支持,weblogic支持,楼主可以试一下。
      

  2.   

    把while (rs.next()){
    String orderId=rs.getString("Id");
    System.out.println("Order Id : "+orderId);
    }
    放在try..catch块里就可以解决了!!!!
      

  3.   

    下面的例子以多种方法连数据库,包括直连、连接池,数据源等。供参考
    <%@ page language="java" contentType="text/html;charset=gb2312"%>
    <%@ page import="java.sql.*"%>
    <%@ page import="java.io.*"%>
    <%@ page import="java.util.*"%>
    <%@ page import="javax.naming.*"%>
    <%/*Class.forName("com.internetcds.jdbc.tds.Driver").newInstance();
    String url="jdbc:freetds://server:1488/newXXFB";
    Connection con= DriverManager.getConnection(url,"qcc","qcc");
    Statement smt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    ResultSet rs;String sql="select * from infomation";
    System.out.println(sql);
    rs=smt.executeQuery(sql);
     while (rs.next()){
        
       
    System.out.println(rs.getString(1));
        
    }
    */
    %>
    <%
    //这是直接连接
    /*
    Driver myDriver =(Driver)Class.forName("weblogic.jdbc.mssqlserver4.Driver").newInstance();String driverURL = "jdbc:weblogic:mssqlserver4";
    Properties myProperties = new Properties();
    myProperties.put("server", "server:1488");
    myProperties.put("db", "newXXFB");
    myProperties.put("user", "qcc");
    myProperties.put("password", "qcc");
    Connection con =myDriver.connect(driverURL, myProperties);
    Statement smt=con.createStatement();
    ResultSet rs;
    String sql="select * from infomation";
    System.out.println(sql);
    rs=smt.executeQuery(sql);
     while (rs.next()){ 
    System.out.println(rs.getString(1));
    }
    */
    %>
    <%//用连接池连接
    /*
    String driverName = "weblogic.jdbc.pool.Driver";
    Driver myDriver =(Driver)Class.forName(driverName).newInstance();
    String driverURL = "jdbc:weblogic:pool:sqlPool";
    Connection con =myDriver.connect(driverURL, null);
    Statement smt=con.createStatement();
    ResultSet rs;
    String sql="select * from infomation";
    System.out.println(sql);
    rs=smt.executeQuery(sql);
     while (rs.next()){ 
    System.out.println(rs.getString(1));
    }*/%>
    <%//用datasourcce连接数据库
    javax.sql.DataSource myDS = null;
    Connection con=null;
    try {
    Context myContext = new InitialContext();
    myDS = (javax.sql.DataSource) myContext.lookup("myDataSource");
    }
        catch (NamingException e) {
    }
        try {
        con = myDS.getConnection();
    }
        catch (SQLException e) {
    }
    Statement smt=con.createStatement();
    ResultSet rs;
    String sql="select * from infomation";
    System.out.println(sql);
    rs=smt.executeQuery(sql);
     while (rs.next()){ 
    System.out.println(rs.getString(1));
    }

    try{
    con.close();
    }
      catch (SQLException e) 
    {  System.out.println(e.getMessage());
    }
    %>
      

  4.   

    将你原程序中的:
     ResultSet rs = null;
     Statement stmt;
    移到executeQuery中去,编绎后试一下行了没有,如果行了再移回去重新编绎应该可以解决。
    昨晚也是这个问题烦了我一晚上,我后来就是这样解决的。你试试看吧!
    不过这个问题总是有点怪怪的,移动一下就可以了,为什么呢?有高手说说原因吗?