java - Java Servlet - 找不到符号 - 同一文件夹中的对象
问题描述
我写了以下两个类:
设备.java
class Equipment{
private int id;
private String name;
private String local;
public void setId(int id){
this.id = id;
}
public void setName(String n){
this.name = n;
}
public void setLocal(String l){
this.local = l;
}
public int getId(){
return this.id;
}
public String getName(){
return this.name;
}
public String getLocal(){
return this.local;
}
}
JDBCCommands.java
import java.util.*;
import java.sql.*;
class JDBCCommands{
private static Connection con = new ConnectionFactory().getConnection();
public static void Create(String name, String local){
String sql = "insert into equipment (name,local) values (?,?)";
try{
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, local);
ps.execute();
ps.close();
}catch(SQLException erro_sql){
throw new RuntimeException(erro_sql);
}
}
public static List<Equipment> Show(){
List <Equipment> Components = new ArrayList <Equipment> ();
String sql = "select * from equipment";
try{
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs.next()) {
Equipment e = new Equipment();
e.setId(Integer.parseInt(rs.getString("equip_id")) );
e.setName(rs.getString("nome"));
e.setLocal(rs.getString("local"));
Components.add(e);
}
rs.close();
ps.close();
return Components;
}catch(SQLException erro_sql){
throw new RuntimeException(erro_sql);
}
}
public static void Update(int id, String name, String local){
String sql = "update equipment set name = ?, local = ? where equip_id = ?";
try{
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, local);
ps.setInt(3, id);
ps.execute();
ps.close();
}catch(SQLException erro_sql){
throw new RuntimeException(erro_sql);
}
}
public static void Delete(int id){
String sql = "delete from equipment where equip_id = ?";
try{
PreparedStatement ps = con.prepareStatement(sql);
ps.setInt(1, id);
ps.execute();
ps.close();
}catch(SQLException erro_sql){
throw new RuntimeException(erro_sql);
}
}
public static List<Equipment> Search(String name, String local){
List <Equipment> Components = new ArrayList <Equipment> ();
String sql = "select * from equipment where name like ? and local like ?";
try{
PreparedStatement ps = con.prepareStatement(sql);
ps.setString(1, "%" + name + "%");
ps.setString(2, "%" + local + "%");
ResultSet rs = ps.executeQuery();
while(rs.next()) {
Equipment e = new Equipment();
e.setId(Integer.parseInt(rs.getString("equip_id")) );
e.setName(rs.getString("nome"));
e.setLocal(rs.getString("local"));
Components.add(e);
}
rs.close();
ps.close();
return Components;
}catch(SQLException erro_sql){
throw new RuntimeException(erro_sql);
}
}
}
我用这门课测试过,效果很好
import java.util.*;
import java.sql.*;
class MainTest{
public static void main(String[] args) throws SQLException {
JDBCCommands jdbc = new JDBCCommands();
//jdbc.Create("Teste novo", "Novo Teste");
for(Equipment c : jdbc.Show()){
System.out.print(c.getId() + " ");
System.out.print(c.getName() + " ");
System.out.print(c.getLocal() + "\n");
}
System.out.println("-------------------------------------");
for(Equipment c : jdbc.Search("est n" , "est")){
System.out.print(c.getId() + " ");
System.out.print(c.getName() + " ");
System.out.print(c.getLocal() + "\n");
}
}
}
问题是当我尝试这门课时:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
class ListEquipment extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
PrintWriter out = response.getWriter();
JDBCCommands jdbc = new JDBCCommands();
System.out.println("<table style=\"width:100%\">");
for(Equipamento c : jdbc.Show()){
System.out.println("<tr>");
System.out.print("<th>" + c.getId() + "</th>");
System.out.print("<th>" + c.getName() + "</th>");
System.out.print("<th>" + c.getLocal() + "</th>");
System.out.println("</tr>");
}
System.out.println("</table>");
}
}
它显示了这个错误:
ListEquipment.java:13:错误:找不到符号
JDBCCommands jdbc = new JDBCCommands();
^
符号:类 JDBCCommands
位置:类 ListEquipment
ListEquipment.java:13:错误:找不到符号
JDBCCommands jdbc = new JDBCCommands();
^
符号:类 JDBCCommands
位置:类 ListEquipment
ListEquipment.java:16:错误:找不到符号
for(Equipment c : jdbc.Show()){
^
符号:类设备
位置:类 ListEquipment
3 个错误
所有文件都在同一个文件夹中,并且名称正确。我怎样才能解决这个问题?
解决方案
我只需要将用于与 MariaDB 连接的 .jar 文件放在 lib 文件夹中,现在一切正常。
推荐阅读
- magento - Magento 2.3 设置“InstallSchema”脚本未创建表
- c# - 旋转正在改变对象的 x 轴
- python - 当时只允许一个布尔值 True 吗?
- c# - 将构建过程从 devenv 更新到 MSBuild:错误 allowDefinition='MachineToApplication'
- java - 如何运行多个 ExecutorServices 来发出请求并通过单个接口汇集响应?
- flutter - 将弹出范围小部件仅适用于我的项目的最后一个屏幕我想在每个页面或特定页面上使用它
- flutter - 通过对 Observatory 服务器的 HTTP/CURL 请求手动触发 Flutter 热重载/完全重启
- android - 重新编译后无法从旧版本的应用程序加载文件
- python - 我应该如何在 Python/Pandas 中构建我的时间序列数据框?
- c# - 当外键实体属于同一类型时,AutoMapper 会忽略 MaxDepth