【问题标题】:JDBC Establish connection to databaseJDBC 建立与数据库的连接
【发布时间】:2014-09-23 13:05:11
【问题描述】:

您好,我在启动数据库时遇到问题。能否请您指出我的问题所在,谢谢。

我收到的错误消息:java.sql.SQLNonTransientConnectionException:java.net.ConnectException:Error Connecting to server localhost on = port 1527 with message 连接 拒绝: 连接。

这是我的代码:

public void CreateDatabase()
    { 

    String createDB = "jdbc:derby://localhost:1527/C:/211092207/HotelBookings;create=true";
    String createCustomer = "CREATE TABLE CUSTOMER ( CUSTOMERID NUMERIC(15) NOT NULL PRIMARY KEY, LASTNAME VARCHAR(20), FIRSTNAME VARCHAR(20), GENDER CHAR(1), EMAIL VARCHAR(50), CREDITRATING VARCHAR(9), NATIONALITY VARCHAR(20), DATEOFBIRTH VARCHAR(20), PHONE NUMERIC(10), CELLPHONE NUMERIC(10) )";
    String createRoom = "CREATE TABLE ROOM ( ROOMNO NUMERIC(5) PRIMARY KEY, ROOMTYPE VARCHAR(9), DAILYRATE NUMERIC(20), STATUS CHAR(1))";
    String createBooking = "CREATE TABLE BOOKING (BOOKINGID NUMERIC(10) NOT NULL PRIMARY KEY, ROOMNO NUMERIC(5), PROPOSEDCHECKINDATE DATE, PROPOSEDCHECKOUTDATE DATE, CHECKEDIN CHAR(1), ACTUALCHECKINDATE DATE, CHECKEDOUT CHAR(1), ACTUALCHECKOUTDATE DATE, CANCELLED CHAR(1), CANCELDATE DATE, CANCELREASON VARCHAR(100),AMOUNT NUMERIC(20), PAYDATE DATE, PAYMODE VARCHAR(15), STATUS VARCHAR(50), PAID CHAR(1), DATE DATE, CUSTOMERID NUMERIC(15))";
    String refOne = "ALTER TABLE BOOKING ADD FOREIGN KEY(CUSTOMERID) REFERENCES CUSTOMER(CUSTOMERID)";
    String refTwo = "ALTER TABLE BOOKING ADD FOREIGN KEY(BOOKINGID) REFERENCES BOOKING(BOOKINGID)";

    Date one = new Date(20/9/2014);
    Date two = new Date(10/10/1010);
    Date three = new Date(16/9/2014);
    Booking book = new Booking();
    book.SetBookingID("9879974564");
    book.SetRoomNumber("001");
    book.SetProposedCheckInDate(one);
    book.SetProposedCheckOutDate(one);
    book.SetCheckedIn('F');
    book.SetActualCheckInDate(one);
    book.SetActualCheckOutDate(one);
    book.setCancelled('F');
    book.SetCancelDate(two);
    book.SetCancelReason("");
    book.SetAmount(10.20);
    book.SetPayDate(one);
    book.SetPayMode("Bank Deposit");
    book.SetStatus("Done");
    book.SetPaid('T');
    book.SetDate(three);
    book.SetCustomerID("9112315190086");

    String insertStatement = ("INSERT INTO ROOM(ROOMNO, ROOMTYPE, DAILYRATE, STATUS) VALUES (001, 'Single', 120.00, 'A')");
    String insertStatementTwo = ("INSERT INTO ROOM(ROOMNO, ROOMTYPE, DAILYRATE, STATUS) VALUES (002, 'Single', 120.00, 'A')");
    String insertStatementThree = ("INSERT INTO ROOM(ROOMNO, ROOMTYPE, DAILYRATE, STATUS) VALUES (003, 'Double', 230.00, 'A')");

    String insertStatementFour = ("INSERT INTO CUSTOMER(CUSTOMERID, LASTNAME, FIRSTNAME, GENDER, EMAIL, CREDITRATING, NATIONALITY, DATEOFBIRTH, PHONE, CELLPHONE) " +
            "VALUES (9112415190086, 'Nel', 'Piet', 'M', 'pietnel@hotmail.com', 'Good', 'America', '31/12/2014', 0721360363, 0721589859)");

    String insertStatementFive = ("INSERT INTO CUSTOMER(CUSTOMERID, LASTNAME, FIRSTNAME, GENDER, EMAIL, CREDITRATING, NATIONALITY, DATEOFBIRTH, PHONE, CELLPHONE) " +
            "VALUES (9112315190086, 'van Tonder', 'Hannes', 'M', 'hannesvantonder@gmail.com', 'Good', 'South Africa', '31/12/2014', 0711360193, 0791589789)");

    String insertStatementSix = ("INSERT INTO CUSTOMER(CUSTOMERID, LASTNAME, FIRSTNAME, GENDER, EMAIL, CREDITRATING, NATIONALITY, DATEOFBIRTH, PHONE, CELLPHONE) " +
            "VALUES (9115987489968, 'le Roux', 'Paul', 'M', 'paul@gmail.com', 'Good', 'South Africa', '31/12/2014', 0721361193, 0821589789)");

    try
    {  
        try {

            Class.forName("org.apache.derby.jdbc.ClientDriver");
        } catch (ClassNotFoundException ex) {
            JOptionPane.showMessageDialog(null, "not working");
        }

当我调试我的代码时,下一条语句使编译器转到引发错误的 catch 语句

 Connection conn = DriverManager.getConnection(createDB);

        Statement stmt = conn.createStatement();
        try
        {
        //Driver = new Driver();
        //java.sql.Driver(createDB);
        }
        catch(Exception ex)
        {

        }
        try
        {
            stmt.executeUpdate(createCustomer);
        } //End try
        catch(Exception ex)
        {
        } //End catch
        try
        {
            stmt.executeUpdate(createRoom);
        } //End try
        catch(Exception ex)
        {
        } //End try
        try
        {
            stmt.executeUpdate(createBooking);
        } //End try
        catch(Exception ex)
        {
        } //Catch
        try
        {
            stmt.executeUpdate(refOne);
        } //End try
        catch(Exception ex)
        {
            JOptionPane.showMessageDialog(null, "Failed");
        } //End catch

        try
        {
            stmt.executeUpdate(refTwo);
        } //End try
        catch(Exception ex)
        {
            JOptionPane.showMessageDialog(null, "Failed");
        } //End catch
        try
        {
        stmt.executeUpdate(insertStatement);
        }
        catch(Exception ex)
        {
        }
        try
        {
        stmt.executeUpdate(insertStatementTwo);
        }
        catch(Exception ex)
        {
        }
        try
        {
        stmt.executeUpdate(insertStatementThree);
        }
        catch(Exception ex)
        {

        }
        try
        {
        stmt.executeUpdate(insertStatementFour);
        }
        catch(Exception ex)
        {
        }
        try
        {
        stmt.executeUpdate(insertStatementFive);
        }
        catch(Exception ex)
        {
        }
        try
        {
        stmt.executeUpdate(insertStatementSix);
        }
        catch(Exception ex)
        {
            //JOptionPane.showMessageDialog(null, ex);
        }
        conn.close();
    } //End try
    catch(SQLException ex)
    {
    JOptionPane.showMessageDialog(null, ex);
    } //End catch
}

【问题讨论】:

  • java.sql.SQLNonTransientConnectionException:java.net.ConnectException:Error Connecting to server localhost on = port 1527 with message Connection refused: connect。您的连接被拒绝。所以要么您的计算机找不到主机,您的凭据可能错误(用户名/密码)或端口号可能错误,或者文件路径可能错误
  • 请勿转发您的问题。

标签: java jdbc connection


【解决方案1】:

最有可能的是更改您的连接网址。

替换

String createDB = "jdbc:derby://localhost:1527/C:/21109220/HotelBookings;create=true";

String createDB = "jdbc:derby://localhost:1527/HotelBookings;create=true";

String createDB = "jdbc:derby://localhost:1527/HotelBookings";

那应该没问题。

【讨论】:

    猜你喜欢
    • 2016-07-08
    • 2015-12-30
    • 1970-01-01
    • 2016-12-15
    • 2018-01-26
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 2019-05-11
    相关资源
    最近更新 更多