通过JDBC API创建数据库

时间:2015-09-25 03:19:59

标签: java jdbc

首先,我在编程方面是一个新手。我有几天的任务,我应该创建动物数据库来演示JDBC API的用途。这是作业的确切要求:

  

编写Java程序(非GUI首选)来演示使用   JDBC。

     

该程序应允许用户执行以下操作:

     

•使用,将动物及其特征列表写入数据库   JDBC
•显示动物的动物特征   地选择。

现在,我一直在阅读我的教科书,阅读有关数据库的所有部分,并尝试按照所提出的示例完成此任务,我被困住了。

我一直在no suitable driver found error for the database URL

我已按照这些示例进行操作,在反映作业所需的区域对其进行更改,但仍然无效。

我完全按照编写的方式输入示例,但它们不会编译。我一直在寻找整个互联网试图解决这个问题,老实说,我没有得到它。

如果有所不同,我正在使用NetBeans IDE 8.0.2。

这是我到目前为止的代码。我知道我还没有显示方法或数据库表中的信息,但如果我甚至无法实现数据库,那么这就是重点。

我也在第15行的IDE中收到一条“Unclosed String Literal”消息。该行是在我的教科书显示时以ESCATLY写的。

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 个答案:

答案 0 :(得分:0)

您收到驱动程序未找到错误,因为您可能没有将derby驱动程序添加到程序库中。在你的程序中,右键单击libraries文件夹并选择add jar / Folder并添加derby jar文件(你的本地系统中应该有你的derby jar文件)。或者从互联网上下载或询问你的朋友。

来到代码,你的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();
            }

        }
    }

}

答案 1 :(得分: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();
                        }

        }
    }

}