2011-06-25 70 views
0

按照我的研究方法進行工作,我已經給出了有兩個數據庫的代碼,我已經編譯了代碼並且它可以工作。我沒有試圖撬動代碼,所以它只有一個數據庫,當涉及到選擇的信息,並顯示它,我只是得到一個空白的沒有輸出,我錯了我猜在它的某處選擇的信息從DB?Java數據庫幫助

感謝

import java.sql.Connection; 
import java.sql.Driver; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.Enumeration; 

public class FootballTeamDataBase 
{ 
    Connection connection; 
    Statement statement; 
    ResultSet results; 

    public FootballTeamDataBase() 
    { 
     try 
     { 

     Class.forName("org.apache.derby.jdbc.ClientDriver"); 
     } 

     catch (ClassNotFoundException cnfe) 
     { 
     System.err.println("Derby driver not found."); 
     } 

     try 
     { 

     // What drivers are there? 
     System.out.println("Available drivers:"); 
     Enumeration<Driver> drivers = DriverManager.getDrivers(); 
     while (drivers.hasMoreElements()) 
     { 
      System.out.println(drivers.nextElement()); 
     } 
     System.out.println(); 


     connection = DriverManager.getConnection 
       ("jdbc:derby://localhost:1527/MusicShop;create=true;user=admin;pass=admin"); 

     statement = connection.createStatement(); 


     try 
     { 
      statement.execute("drop table FootballTeam"); 
     } 
     catch (SQLException e) 
     { 
      System.out.println("Table did not previously exist " + e); 
     } 

     // Now create the table. 
     statement.execute("create table " + 
       "FOOTBALLTEAM(" + 
       "ID varchar(12) primary key not null, " + 
       "POSITION varchar(24), " + 
       "NAME varchar(24),") ; 

     } 
     catch (SQLException sqle) 
     { 
     System.err.println("Problem:" + sqle); 
     } 
    } 

    public void addData() 
    { 
     try 
     { 
     statement.execute("insert into FOOTBALLTEAM values " + 
       "('1',Keeper','Dale'"); 
     statement.execute("insert into FOOTBALLTEAM values " + 
       "('2',Defender','Lewis'"); 
     statement.execute("insert into FOOTBALLTEAM values " + 
       "('3','MIDFIELD','Jones'"); 
     } 
     catch (SQLException sqle) 
     { 
     System.err.println("Problem populating data:" + sqle); 
     } 

    } 

    public void showTeam() 
    { 
     try 
     { 
      // check the contents of the table 
     System.out.println("DB contents:"); 
      // select all records 
     statement.execute("select * from FOOTBALLTEAM"); 

      ResultSet results = statement.getResultSet(); 
     while (results.next()) 
     {  
      System.out.println(results.getString("ID") + " " + results.getString("POSITION") + 
        " = " + results.getString("NAME")); 
     } 

     } 

     catch (SQLException e) 
     { 
     // nothing wrong 
     } 
    } 


} 
+0

對不起來解決這些格式不知道爲什麼會發生 – user445714

+0

感謝排序是艾米特 – user445714

+0

任何信息關於哪個數據庫,程序應該做什麼,輸入示例和輸出(預期和實際輸出)將使這個問題更容易理解。 – amit

回答

1

看着這些線,你的SQL語句是畸形的:

statement.execute("insert into FOOTBALLTEAM values " + 
    "('1',Keeper','Dale'"); 
statement.execute("insert into FOOTBALLTEAM values " + 
    "('2',Defender','Lewis'"); 
statement.execute("insert into FOOTBALLTEAM values " + 
    "('3','MIDFIELD','Jones'"); 

注意,SQL語句包含的開口(但沒有結束)。改變這樣的:

statement.execute("insert into FOOTBALLTEAM values " + 
    "('1',Keeper','Dale')"); 
statement.execute("insert into FOOTBALLTEAM values " + 
    "('2',Defender','Lewis')"); 
statement.execute("insert into FOOTBALLTEAM values " + 
    "('3','MIDFIELD','Jones')"); 

同樣在這裏,這看起來並不像一個完整的SQL語句:

// Now create the table. 
statement.execute("create table " + 
    "FOOTBALLTEAM(" + 
    "ID varchar(12) primary key not null, " + 
    "POSITION varchar(24), " + 
    "NAME varchar(24),") ; 
+0

感謝加斯帕,現在固定他們的問題,但仍然沒有改變 – user445714

+0

沒有爲沒有開口報價守護者或防禦者要麼! –

1

也許你還沒有犯下的數據? connection.setAutoCommit(true),或者,開始和結束交易:JDBC Transactions