2015-06-18 55 views
1

我是新的硒驅動程序。如何從數據庫表中獲取行的數據。我想這個代碼在我的數據庫名稱爲「demodatabase」,表名是「狀態」和行ID爲2使用硒webdriver獲取數據庫(phpmyadmin)數據表的行

package com.db; 

import java.sql.Array; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 



public class DbConnection { 

    public static void main(String[] args) throws ClassNotFoundException, SQLException{ 

     /*------connection url----*/ 
     String dbUrl= "jdbc:mysql://localhost/demodatabase"; 

     /*------dbUsername----*/ 
     String dbUsername= "root"; 

     /*------dbPassword----*/ 
     String dbPassword= ""; 

     /*------db query---*/ 
     String query= "select * from states where id=2"; 

     /*-----load Mysql jdbc driver------*/ 
     Class.forName("com.mysql.jdbc.Driver"); 


     /*----Get connection to DB*/ 
     Connection con = DriverManager.getConnection(dbUrl, dbUsername, dbPassword); 

     //create statement object 
     Statement stmt = con.createStatement(); 

     //send sql query to database 
     ResultSet rs= stmt.executeQuery(query); 


     // while loop to get ResultSet all rows data 
     while(rs.next()){ 
      String state =rs.getString("2"); 
      System.out.println(state); 
     } 

     //Close db connection 

     con.close(); 
    } 

} 

數據庫表截圖

http://i.stack.imgur.com/dcaGc.png

使用上面的代碼和數據庫screenshoot。我得到的數據id = 2和第2列即賈坎德只,但我想第2行的所有數據

+0

這個問題無關硒。 – aholt

回答

1

在上面的代碼中,你沒有得到表的seco nd行

請參考下面的代碼

package com.db;

import java.sql.Array; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 



public class DbConnection { 

    public static void main(String[] args) throws ClassNotFoundException, SQLException{ 

     /*------connection url----*/ 
     String dbUrl= "jdbc:mysql://localhost/demodatabase"; 

     /*------dbUsername----*/ 
     String dbUsername= "root"; 

     /*------dbPassword----*/ 
     String dbPassword= ""; 

     /*------db query---*/ 
     String query= "select * from states where id=2"; 

     /*-----load Mysql jdbc driver------*/ 
     Class.forName("com.mysql.jdbc.Driver"); 


     /*----Get connection to DB*/ 
     Connection con = DriverManager.getConnection(dbUrl, dbUsername, dbPassword); 

     //create statement object 
     Statement stmt = con.createStatement(); 

     //send sql query to database 
     ResultSet rs= stmt.executeQuery(query); 


     // while loop to get ResultSet all rows data 
     while(rs.next()){ 

      //Store columns state,country,created,modified as separate strings 

      //(pls chk spellings of column name and also datatypes of the column if it is int change it to (rs.getInt) before running) 

      String state =rs.getString("name"); 
      String country =rs.getString("country_id"); 
      String created_DATE= rs.getString("created"); 
      String modified_DATE=rs.getString("modified"); 
      System.out.println(state); 
      System.out.println(country); 
      System.out.println(created_DATE); 
      System.out.println(modified_DATE); 
     } 

     //Close db connection 

     con.close(); 
    } 

} 

希望這有助於你...請回來,如果它不能正常工作

+0

嗨@vnnogile做了上面的解決方案爲你工作 – Vicky

+0

你好Vicky,它的工作,感謝您的答覆 – vnnogile

+0

@vnnogile哦,這是GR8 ...高興成爲幫助 – Vicky