Ошибка «не удается найти символ» для соединения с классом и инструкции класса

#java #maven #jakarta-ee #jdbc #glassfish

#java #maven #джакарта-ee #jdbc #стеклянная рыба

Вопрос:

Я использую GlassFish, Maven и Commmand Line для размещения своего проекта.

Я создал базу данных JDBC в Glassfish, и теперь я пытаюсь создать в ней таблицу с помощью этого файла Java-EE:

 package edu.ndnu.arivera;

import javax.sql.*;
import javax.annotation.Resource;

public class dbCreate{
    @Resource(name="jdbc/arivera") DataSource ds;

    public void connectAndQueryDB(String username, String password)
    {
        Connection con = ds.getConnection();
        Statement stmt = con.createStatement();
        stmt.executeQuery("CREATE TABLE Voter (firstName varchar(30),lastName varchar(30), address varchar(30), city varchar(30), state varchar(30), zip varchar(30), phone varchar(30), affil varchar(30))");
        con.close();
    }
}
 

Однако я получаю эту ошибку:

 [ERROR] symbol:   class Connection
[ERROR] location: class edu.ndnu.arivera.dbCreate
[ERROR] /home/student/ContestedCounty/src/main/java/edu/ndnu/arivera/dbCreate.java:[12,1] cannot find symbol
[ERROR] symbol:   class Statement
[ERROR] location: class edu.ndnu.arivera.dbCreate
 

Я не уверен, что я делаю неправильно.

Комментарии:

1. В stackoverflow вы должны ограничиться одной темой в одном вопросе (и даже тогда ваш второй вопрос будет слишком широким). Я отредактировал ваш вопрос, чтобы удалить вторую часть, чтобы он стоял сам по себе.

Ответ №1:

Классы — это java.sql.Connection и java.sql.Statement . В настоящее время вы только импортируете javax.sql.* , поэтому он не может найти эти классы.

Если вы хотите использовать классы из пакета, отличного от текущего пакета или java.lang , вам необходимо импортировать классы (например import java.sql.Connection , и import java.sql.Statement ). Любая среда разработки предложила бы вам это.

Ответ №2:

импортируйте эти два пакета:-

импорт java.sql.SQLException; импорт java.sql.Statement;

Причина, по которой отображается ошибка, заключается в том, что соединение с классом недоступно в пакете javax.sql. Спасибо,

Ответ №3:

Если вы обратитесь к javax.sql пакету, вы обнаружите, что он не содержит thc Connection и Statement class. Но в вашем примере вы используете оба этих класса, поэтому очевидно, что вам нужно их импортировать. Поэтому просто импортируйте их из java.sql пакета. Вы можете сделать это, добавив эти инструкции импорта java.sql.Connection и java.sql.Statement .

Попробуйте обработать SQLException , окружив ваш код с try помощью and catch и закрыв соединение в finally блоке.