Справка по базе данных Java - PullRequest
0 голосов
/ 25 июня 2011

Проходя путь изучения главы, мне дали код, в котором созданы две базы данных, я скомпилировал код, и он работает.Я не пытался настроить код, так что это единственная база данных, когда дело доходит до выбора информации и ее отображения, я просто получаю пробел без вывода информации, где я ошибся, угадывая его где-то в выборе информациииз БД?

Спасибо

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
      }
   }


}

Ответы [ 2 ]

1 голос
/ 26 июня 2011

Глядя на эти строки, ваши операторы 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),") ;
1 голос
/ 25 июня 2011

Возможно, вы не зафиксировали данные?connection.setAutoCommit(true), или начать и завершить транзакцию: Транзакции JDBC

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...