Исключение нулевого указателя при вставке в базу данных Java - PullRequest
0 голосов
/ 25 марта 2012

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

   public void insertReservation(String name, String phone, int size, String date, String time, String additionalRequirements, String memberID, String themeID) throws SQLException, ClassNotFoundException {

        try {
            String strQuery = "INSERT INTO reservation VALUES (?, ? ,?, TO_DATE(?, 'dd-MMM-yy'), ?, ?, ?, ?)";
            PreparedStatement stmt = conn.prepareStatement(strQuery);/
            stmt.setString(1, name);
            stmt.setString(2, phone);
            stmt.setInt(3, size);
            stmt.setString(4, date);
            stmt.setString(5, time);
            stmt.setString(6, additionalRequirements);
            stmt.setString(7, memberID);
            stmt.setString(8, themeID);
            results = stmt.executeQuery();

        } catch (Exception e) {
            e.printStackTrace();
        }//end try
    }

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

Ответы [ 2 ]

7 голосов
/ 25 марта 2012

conn равно null, выведите его значение.

0 голосов
/ 13 апреля 2013

Не знаю, но попробуйте это

String strQuery = "insert into reservation(ColumnName1, ColumnName2 ,ColumnName3,) values(?,? ,?) ";

, и в конце будет выполнено только execute (); вот так stmt.execute();

executeQuery(); оператор работает только с запросом выбора.

Во-вторых, вы описали значение conn в конструкторе или методе, в каком классе вы используете запрос, если назначаете его следующим образом: conn = SqlConnection.ConnecrDb();

ниже указан отдельный класс SqlConnection, который я создал

public class SqlConnection {

    Connection conn=null;

    public static Connection ConnecrDb(){
        try
        {
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        Connection conn= DriverManager.getConnection("jdbc:odbc:Test","","");
        return conn;
        }
        catch(Exception e)
        {
        JOptionPane.showMessageDialog(null, e);
        return null;
        }
    }
}

Надеюсь, он вам поможет

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