我使用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
我不确定我做错了什么。
答案 0 :(得分:2)
这些课程为java.sql.Connection
和java.sql.Statement
。您目前只导入javax.sql.*
,因此无法找到这些类。
如果要使用当前包或java.lang
以外的包中的类,则需要导入类(例如import java.sql.Connection
和import java.sql.Statement
)。任何IDE都会建议你这样做。
答案 1 :(得分:1)
导入这两个包: -
import java.sql.SQLException; import java.sql.Statement;
它显示错误的原因是因为类连接在javax.sql包中不可用。 谢谢,
答案 2 :(得分:1)
如果您javax.sql
Connection
个套件,则会发现它不包含Statement
和java.sql
类。但是在您的示例中,您正在使用这两个类,因此显然您需要导入它们。所以只需从java.sql.Connection
包中导入它们。您可以通过添加这些import语句来完成此操作
java.sql.Statement
和SQLException
。
尝试使用try
和catch
围绕代码来处理finally
并关闭{{1}}块中的连接。