2015-09-25 3 views
0

Прежде всего я новичок, когда дело доходит до программирования. У меня есть задание в течение нескольких дней, где я должен создать базу данных животных, чтобы продемонстрировать использование API JDBC. это точные требования задания:Создание базы данных через API JDBC

Напишите программу Java (без GUI предпочтительнее), чтобы продемонстрировать использование JDBC.

Программа должна позволять пользователю выполнить следующие действия:

• Составьте список животных и его характеристик в базе данных с использованием JDBC
• Отображение характеристик животного, когда это животное выбран.

Теперь я проливал свои учебники, читая все разделы по базам данных и пытаясь следовать приведенным ниже примерам, чтобы закончить это задание, и я застрял.

Я продолжаю получать no suitable driver found error for the database URL.

Я следовал примерам, изменяя их в областях, необходимых для отражения задания, и он все еще не работает.

Я ввожу примеры точно так, как они написаны, и они не будут компилироваться. Я смотрю по всему Интернету, пытаясь понять это, и, честно говоря, я не понимаю.

Я использую среду IDE NetBeans 8.0.2, если это имеет значение.

Вот код, который я имею до сих пор. Я знаю, что пока еще нет методов отображения или информации в таблице базы данных, но это не относится к точке, если я даже не могу ее реализовать для реализации базы данных.

Я также получаю сообщение «Unclosed String Literal» в IDE в строке 15. Эта строка написана ЭСКАТО, как показывают мои учебники.

package animalsweek4; 
import java.sql.*; 


public class AnimalsWeek4 { 


    public static void main(String[] args) throws SQLException{ 
     try{ 
      final String DB_URL = "jdbc:derby:Animals; create = true"; 
      Connection conn = DriverManager.getConnection(DB_URL); 

      Statement s = conn.createStatement(); 
      s.execute(CREATE TABLE Animals ("+ 
      "Name Char(10)"+ 
      "Type Char(10)"+ 
      "Diet Char (10)"+ 
      "Habitat Char 10)"); 
      s.close(); 
      conn.close(); 
     } 
     catch(Exception ex){ 
      System.out.println("Error"+ ex.getMessage()); 
     } 
    } 

} 
+2

При запуске программы вам необходимо включить драйвер JDBC (для Derby в вашем случае) в пути к классам. Вы, например, не скомпилируете либо – MadProgrammer

+0

В Netbeans вы можете включить Jar-файл JDBC-драйвера, щелкнув правой кнопкой мыши узел «Библиотеки» в вашем проекте и выбрав «Добавить Jar/Folder» и просматривая туда, где когда-либо был Jar (вам понадобится для его загрузки) – MadProgrammer

+0

Предлагаю начать с чтения [Apache Derby: Быстрый старт] (https://db.apache.org/derby/quick_start.html). –

ответ

0

Вы получаете ошибку водителя, которая не найдена, потому что вы, возможно, не добавили драйверы дерби в библиотеку программ. В своей программе щелкните правой кнопкой мыши по папке библиотек и выберите добавить jar/Folder и добавьте файлы jar derby (у вас должны быть файлы jar derby с вашей локальной системой). Или загрузите из Интернета или попросите своих друзей для этого.

Что касается кода, ваш SQL-код неверен. Поэтому я внес некоторые изменения в ваш код и его работу в моей системе. После добавления драйверов вы можете запустить код.

import java.sql.*; 


public class AnimalsWeek4 { 


    public static void main(String[] args) throws SQLException{ 
     Connection conn=null; 
     PreparedStatement preparedStatement = null; 
     String createTableSQL="CREATE TABLE Animals (Name VARCHAR(10),Type VARCHAR(10),Diet VARCHAR(10),Habitat VARCHAR(10))"; 
     try{ 
      final String DB_URL = "jdbc:derby:Animals;create = true"; 
      //final String DB_URL = "jdbc:derby://localhost:1527/sample"; 
      conn = DriverManager.getConnection(DB_URL); 
      Statement s = conn.createStatement(); 
      s.executeUpdate("DROP TABLE IF EXISTS Animals"); 
      s.close(); 
      preparedStatement = conn.prepareStatement(createTableSQL); 
      preparedStatement.executeUpdate(); 
      System.out.println("Table is created!"); 

     } 
     catch(Exception ex){ 
      System.out.println("Error"+ ex.getMessage()); 
     }finally { 

      if (preparedStatement != null) { 
       preparedStatement.close(); 
      } 

      if (conn != null) { 
       conn.close(); 
      } 

     } 
    } 

} 
+0

Также вы должны создать базу данных и запустить сервер изначально в своем локальном. После этого вы можете получить доступ к БД, а затем добавить таблицу в БД. –

+0

Спасибо за информацию всем. Я собираюсь сделать это и посмотреть, что я могу сделать. – EMatthews

+0

create table Строка не закрыта (имеет coma ',' но не ')') в конце. Если дерби примет такое, я удивлюсь. –

0

См. Измененный код.

import java.sql.*; 
public class AnimalsWeek4 { 
    public static void main(String[] args) throws SQLException{ 
     Connection conn=null; 
     PreparedStatement preparedStatement = null; 
     Statement s =null; 
     String createTableSQL="CREATE TABLE Animals (" 
        +"Name VARCHAR(10)," 
        +"Type VARCHAR(10)," 
        +"Diet VARCHAR(10)," 
        +"Habitat VARCHAR(10))"; 
     try{ 
      //final String DB_URL = "jdbc:derby:Animals; create = true"; 
      final String DB_URL = "jdbc:derby://localhost:1527/TestDB"; 
      conn = DriverManager.getConnection(DB_URL); 
      System.out.println("Connected to DB successfully"); 
      final String dropTableSQL="DROP TABLE Animals"; 
      s = conn.createStatement(); 
      try{ 
      s.executeUpdate(dropTableSQL); 
      System.out.println("Table Dropped"); 
      } 
      catch(Exception e){ 
       System.out.println("Exception is "+e); 
       // if (!e.getSQLState().equals("proper SQL-state for table does not exist")); 
      } 
      preparedStatement = conn.prepareStatement(createTableSQL); 
      preparedStatement.executeUpdate(); 
      System.out.println("Table is created!"); 

     } 
     catch(Exception ex){ 
      System.out.println("Error"+ ex.getMessage()); 
     }finally { 

      if (preparedStatement != null) { 
       preparedStatement.close(); 
      } 

      if (conn != null) { 
       conn.close(); 
      } 
         if (s!=null){ 
          s.close(); 
         } 

     } 
    } 

} 
Смежные вопросы