나는 패키지 도우미, ProcessBean.java 및 DBHandler.java기호, 기호를 찾을 수 없습니다 : 변수 DBHandler 위치 : 클래스 ProcessBean
ProcessBean.java에 두 개의 클래스가 있습니다
package helpers;
import java.util.*;
import java.sql.*;
public class ProcessBean implements java.io.Serializable {
public ProcessBean() {}
public String processRequest(String option) {
String query = "";
String type = option.split("|")[0];
int id = Integer.parseInt(option.split("|")[1]);
if(type.equals("category"))
query = "Select * from products where categoryId="+id;
else if(type.equals("vendor"))
query = "Select * from products where vendorId="+id;
else
query = "select * from products";
Vector<String []> v = DBHandler.doQuery(query);
return DBHandler.getQueryResultTable(v);
}
}
을 DBHandler.java :
package helpers;
import java.util.*;
import java.sql.*;
public class DBHandler implements java.io.Serializable {
public static Vector<String []> doQuery(String s) {
String user = "xxx";
String password = "xxx";
String database = "xxx";
String connectionURL = "jdbc:mysql://opatija:3306/" + database +
"?user=" + user + "&password=" + password;
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
Vector<String[]> v = new Vector<String[]>();
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection = DriverManager.getConnection(connectionURL);
statement = connection.createStatement();
resultSet = statement.executeQuery(s);
ResultSetMetaData md = resultSet.getMetaData();
int numCols = md.getColumnCount();
while(resultSet.next()) {
String [] tmp = new String[numCols];
for(int i=0; i < numCols; i++)
tmp[i] = resultSet.getString(i+1); // resultSet getString is 1 based
v.add(tmp);
}
}
catch(Exception e) {
e.printStackTrace();
}
finally {
try {
resultSet.close();
statement.close();
connection.close();
}
catch(SQLException e) {} // don't do anything if the connection is not open.
}
return v;
}
public static int doUpdate(String s) {
String user = "xxx";
String password = "xxx";
String database = "xxx";
String connectionURL = "jdbc:mysql://opatija:3306/" + database +
"?user=" + user + "&password=" + password;
Connection connection = null;
Statement statement = null;
int result = -1;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
connection = DriverManager.getConnection(connectionURL);
statement = connection.createStatement();
result = statement.executeUpdate(s);
}
catch(Exception e) {
e.printStackTrace();
}
finally {
try {
statement.close();
connection.close();
}
catch(SQLException e) {} // don't do anything if the connection is not open.
}
return result;
}
public static String getQueryResultTable(Vector<String []> v) {
StringBuffer toReturn = new StringBuffer();
toReturn.append("<table>");
for(int i=0; i < v.size(); i++) {
String [] tmp = v.elementAt(i);
toReturn.append("<tr>");
for(int j=0; j < tmp.length; j++)
toReturn.append("<td>" + tmp[j] + "</td>");
toReturn.append("</tr>");
}
toReturn.append("</table>");
return toReturn.toString();
}
}
내가 ProcessBean를 컴파일하고 때210
, 나는
ProcessBean.java:21: error: cannot find symbol
Vector<String []> v = DBHandler.doQuery(query);
^
symbol: variable DBHandler location: class ProcessBean
ProcessBean.java:22: error: cannot find symbol
return DBHandler.getQueryResultTable(v);
^
symbol: variable DBHandler location: class ProcessBean
2 errors
내가 서버에 연결 notepad++
, mac
및 xQuartz
을 사용하여이 오류를 '헬퍼'폴더로 CD 모든 방법을 얻을 다음 명령 -
javac ProcessBean.java
두 파일 모두 서버의 폴더 도우미 아래에 있으며 DBHandler
이 성공적으로 컴파일되었습니다. 모든 것을 시도했지만 그것을 이해할 수는 없습니다.
도움이 매우 감사합니다.
벡터를 올바르게 사용하지 않거나 올바른 벡터를 가져 오지 못합니다.어느 쪽이든 문제는 벡터에 있습니다. –
오, 신경 쓰지 마세요, 죄송합니다. 오류 메시지는 정말 분명하지 않습니다. –