Class Connection和Class Statement出现“找不到符号”错误

时间:2014-06-25 01:45:39

标签: java maven java-ee jdbc glassfish

我使用GlassFish,Maven和Commmand Line来托管我的项目。

我在Glassfish中创建了一个JDBC数据库,现在我尝试使用这个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

我不确定我做错了什么。

3 个答案:

答案 0 :(得分:2)

这些课程为java.sql.Connectionjava.sql.Statement。您目前只导入javax.sql.*,因此无法找到这些类。

如果要使用当前包或java.lang以外的包中的类,则需要导入类(例如import java.sql.Connectionimport java.sql.Statement)。任何IDE都会建议你这样做。

答案 1 :(得分:1)

导入这两个包: -

import java.sql.SQLException; import java.sql.Statement;

它显示错误的原因是因为类连接在javax.sql包中不可用。 谢谢,

答案 2 :(得分:1)

如果您javax.sql Connection个套件,则会发现它不包含Statementjava.sql类。但是在您的示例中,您正在使用这两个类,因此显然您需要导入它们。所以只需从java.sql.Connection包中导入它们。您可以通过添加这些import语句来完成此操作 java.sql.StatementSQLException

尝试使用trycatch围绕代码来处理finally并关闭{{1}}块中的连接。