将 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 应该在现实中打印
问题是当我 运行 这段代码时,我总是得到答案 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 应该在现实中打印