将 netbeans (JAVA) 连接到 MYSQL

Connecting netbeans (JAVA) to MYSQL

问题是当我 运行 这段代码时,我总是得到答案 COL12,而不是像我在 MYSQL workbench 中那样得到所有包含数据的列。我需要获得相同的值。此外,当我在 netbeans 中使用此查询 "DELETE FROM test WHERE col1 = 2;" 时,我得到错误异常。

这是我在 Netbeans 中编写的代码。
包裹 sams;

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 中进行了 table 测试,其中列="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); returns 结果集中的一列。如果你想拥有你必须使用的所有列:

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

我认为问题来自 rs.getString(2)
在这里,您刚刚尝试获取第三列。您可以使用 rs.getString(0) 和 rs.getString(1) 来获取其他值。

测试 table

col1 col2 col3

col1 1 2
col2 col11 col21
col3 col12 col22

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

字符串名称= rs.getString(2);
System.out.println(名字);

rs.getString(2) 即我们正在传递列索引,即第二列 col2 并打印第 2 列中的第一个值,即 1
这里 1 应该在现实中打印