簡體   English   中英

將Netbeans(JAVA)連接到MYSQL

[英]Connecting netbeans (JAVA) to MYSQL

問題是,當我運行此代碼時,我總是得到答案COL12,而不是像在MYSQL工作台中那樣獲得所有包含數據的列。 我需要獲得相同的值。 而且,當我使用此查詢“ DELETE FROM test WHERE col1 = 2;”時 在netbeans中,我收到錯誤異常。

這是我在Netbeans中編寫的代碼。
包裝袋

import java.sql.*;  
import java.sql.Statement;
import java.sql.DriverManager;




public class Temp_Class {



public static void main(String[] args){

    try {

String query="SELECT * FROM test";
        Class.forName("com.mysql.jdbc.Driver");
        Connection con=      DriverManager.getConnection("jdbc:mysql://localhost/JavaProject", "root",  "19881990");
        Statement st=con.createStatement();
        ResultSet rs=st.executeQuery(query);
        rs.next();
        String sname= rs.getString(2);
 System.out.println(sname);
con.close();
    } catch (Exception e) {

            System.out.println("Error");

      }


    }



}

我已經在MYSQL Workbench中進行了表測試,其中column =“ col1,col2,col3”的值=“ 1,COL11,COL12”和“ 2,COL21,COL22”;

這是我用來刪除數據庫中值的代碼。 但出現錯誤異常。

public static void main(String[] args){

    try {


        String deletesql="DELETE FROM test WHERE col1 = 2";

        Class.forName("com.mysql.jdbc.Driver");
        Connection con= DriverManager.getConnection("jdbc:mysql://localhost/JavaProject", "root", "19881990");
        Statement st=con.createStatement();
        ResultSet rs=st.executeQuery(select);

        Statement ds=con.createStatement();
        ResultSet dsrow=ds.executeQuery(deletesql);

        dsrow.next();
        String ds1= dsrow.getString(1);
        String ds2= dsrow.getString(2);
        String ds3= dsrow.getString(3);
        System.out.println(ds1+" "+ ds2+" "+ds3);

        con.close();
    } catch (Exception e) {

        System.out.println("Error");

    }


}

獲得一列的原因是因為您僅獲取一列

rs.next();
String sname= rs.getString(2);   //will give you one column

代替做

while(rs.next){                     //get all rows

 String col1= rs.getString(0);      //get column 1 of respective row
 String col2= rs.getString(1);      //get column 2 of respective row

 System.out.println(col1+" "+col2);

}

String sname= rs.getString(2); 從resultSet返回一列。 如果要具有所有列,則必須使用:

String sname0= rs.getString(0);
String sname1= rs.getString(1);
String sname2= rs.getString(2);

我認為問題出在rs.getString(2)
在這里,您剛剛嘗試獲取第三列。 您可以使用rs.getString(0)和rs.getString(1)來獲取其他值。

測試

col1 col2 col3

col1 1 2
col2 col11 col21
col3 col12 col22

您是對col1的查詢(即SELECT * FROM test)

字符串sname = rs.getString(2);
的System.out.println(SNAME);

rs.getString(2),即我們正在傳遞列索引,即第二列col2,並在列2中打印第一個值,即1
這里1應該是現實印刷

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM