我遇到的问题是我连接到数据库,但是即使我的查询语句是"从用户"选择*,也无法检索到超过第一列的问题。 下面是我的代码:
import java.sql.*;
public class Connecttodb {
public void dbConnect(String db_connect_string,String db_UserID,String db_UserPass)
{
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn = DriverManager.getConnection(db_connect_string,db_UserID,db_UserPass);
System.out.println("connected");
Statement statement= conn.createStatement();
String querystring = "SELECT * FROM Users";
ResultSet rs = statement.executeQuery(querystring);
while(rs.next()){
System.out.println(rs.getString(1));
}
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Connecttodb connServer= new Connecttodb();
connServer.dbConnect("jdbc:sqlserver://TGOURDINE-PC\\SQLEXPRESS;databaseName=picture website", "tgourdine", "thomas");
}
}
结果只是第一列,UserID:
connected
1
2
3
我想要的结果如下:
connected 1 tgourdini thomas NULL NULL 2 Geoff Marley NULL NULL 3 tara Elaine NULL NULL
谢谢,
答案 0 :(得分:1)
根据documentation getString(1)将只返回第一列。
答案 1 :(得分:0)
因为您只检索第一列
System.out.println(rs.getString(1));
将循环更改为
while(rs.next())
System.out.println(rs.getString(1) + " " + rs.getString(2) + " " + rs.getString(3) + " " + rs.getString(4));
查看getString
检索当前行中指定列的值 此ResultSet对象为Java编程语言中的String。
另请参阅收到的参数文档
columnIndex - 第一列是1,第二列是2,...