以下的数据库连接程序,错在哪里啊?
发现自己查错能力好差啊,高手帮帮忙
import java.sql.*;public class DBConnection {
  public static Connection getConnection() {
    Connection conn = null;
    ResultSet rs;
    Statement st;
    try {
      Class.forName("org.gjt.mm.mysql.Driver");
      conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/guestBook?user=admin&password=apple");
      st=conn.createStatement();
      String sql="create table bookInf (bookID numberic(12) ,bookName varchar(20))";
      rs=st.executeUpdate(sql);
      rs=st.executeUpdate("insert into bookInf values ('123','java')");
      rs=st.executeQuery("select * from bookInf");
      
      
    }
    catch (Exception e) {
      e.printStackTrace();
      System.out.println("连接数据库失败!!");
    }
    
    
    while(rs.next()){
     int ID=rs.getInt(1);
     String bookname=rs.getString(2);
     System.out.println("ID:"+ID+";BookName:"+bookname+"\n");
    }
    
    try{
     st.close();
    
    }catch(Exception e){
     e.printStackTrace();
    }
  }
}

解决方案 »

  1.   

    import java.sql.*;public class DBConnection {
      public static void main(String args[]) {
        Connection conn = null;
        ResultSet rs;
        Statement st;
        try {
          Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
          conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=meeting","sa","");
          st=conn.createStatement();
          String sql="create table bookInf (bookID numberic(12) ,bookName varchar(20))";
          st.executeUpdate(sql);
          st.executeUpdate("insert into bookInf values ('123','java')");
          rs=st.executeQuery("select * from bookInf");
          while(rs.next()){
         int ID=rs.getInt(1);
         String bookname=rs.getString(2);
         System.out.println("ID:"+ID+";BookName:"+bookname+"\n");
        }
        
        
         st.close();
          
        }
        catch (Exception e) {
          e.printStackTrace();
          System.out.println("连接数据库失败!!");
        }
       }
    }
    调试了一下,不过我的机子上没有装mysql驱动,所以改成了,sql server,应该差不多,楼主看看!
      

  2.   

    我的编译错误如下:--------------------Configuration: <Default>--------------------
    C:\javaapplication\DBConnection.java:13: incompatible types
    found   : int
    required: java.sql.ResultSet
          rs=st.executeUpdate(sql);
                             ^
    C:\javaapplication\DBConnection.java:14: incompatible types
    found   : int
    required: java.sql.ResultSet
          rs=st.executeUpdate("insert into bookInf values ('123','java')");
                             ^
    2 errorsProcess completed.看不懂是什么原因啊?你上面的程序在sqlserver能通过吗
      

  3.   

    create table bookInf (bookID numberic(12) ,bookName varchar(20))
    int ID=rs.getInt(1);
    类型不匹配
      

  4.   

    Statement对象的executeUpdate()函数返回的是int类型,executeQuery返回的才是ResultSet类,你的类型不匹配。可以这样:
    int result = rs.executeUpdate(sql);
    返回到的int型是用来判断SQL语句是否执行成功的,如果不成功,result的值为0
      

  5.   

    我那程序在sql server中没有问题啊,而且我也帮你改正了:rs=st.executeUpdate("insert into bookInf values ('123','java')");这个错误,看来楼主没有看API的习惯!
      

  6.   

    to 科大浪子
    是有很多错误,不过最主要的改了,小错误容易些
    to  浪者:
    的确没有怎么看api,看着英文就烦啊
      

  7.   

    老兄 !可以告诉我你是怎么配制JDBC驱动程序的环境变量吗?