私は本当に奇妙な奇妙な状況にあります。それは私を夢中にさせています。私はコードを1時間いじっていましたが、最後に、別のプロジェクトでは正常に機能することがわかりました。データベースから情報を取得したい。
だから私はこれを実行します:
public class DBtest {
public static void main(String[] args) throws Exception {
KnockKnockProtocol kkp = new KnockKnockProtocol();
kkp.processInput("USERNAME,PASSWORD");
}
}
これを呼び出す:
import java.net.*;
import java.io.*;
import org.apache.commons.codec.binary.Base64;
import de.vogella.mysql.first.load_login;
public class KnockKnockProtocol {
public String theOutput[];
public void processInput(String theInput) throws Exception {
String[] data = theInput.split(",");
byte[] encoded = Base64.encodeBase64(data[1].getBytes());
String pass = new String(encoded);
load_login get = new load_login();
theOutput = get.nalozi(data[0], pass);
for (String n : theOutput) {
System.out.println(n);
}
}
}
これは、DB を呼び出して結果を取得するための私のコードです。
package de.vogella.mysql.first;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import org.apache.commons.codec.binary.Base64;
public class load_login {
private Connection connect = null;
private Statement statement = null;
private PreparedStatement preparedStatement = null;
private ResultSet resultSet = null;
int count = 0;
String user, password, ssl, tls, smtp_domain, smtp_port, signature = null;
String[] rezultat = new String[3];
public String[] nalozi(String mail, String pass) throws Exception {
try {
// This will load the MySQL driver, each DB has its own driver
Class.forName("com.mysql.jdbc.Driver");
// Setup the connection with the DB
connect = DriverManager
.getConnection("jdbc:mysql://localhost/?????"
+ "user=?????&password=?????");
String checkSql = "select * from OFFLINE where (user_mail='" + mail
+ "' AND user_pass='" + pass + "')";
Statement st = connect.createStatement();
resultSet = st.executeQuery(checkSql);
while (resultSet.next()) {
rezultat[0] = user = resultSet.getString("user_mail");
rezultat[1] = password = resultSet.getString("user_pass");
rezultat[2] = ssl = resultSet.getString("ssl_protocol");
}
} catch (Exception e) {
} finally {
close();
}
return rezultat;
}
private void close() {
try {
if (resultSet != null) {
resultSet.close();
}
if (statement != null) {
statement.close();
}
if (connect != null) {
connect.close();
}
} catch (Exception e) {
}
このすべてのコードで申し訳ありません。つまり、ある Eclipse プロジェクトでは結果が正しく、別のプロジェクトでは結果が NULL であるということです -> null が 3 回書き込まれます。これはバグですか、それとも非常に重要な何かが欠けていますか?
助けてくれてありがとう。