多分誰かが私を助けることができます。データアクセスオブジェクトを使用しています。私はデータベースを持っています:テーブルReceiverz
num name
1 Walmart
2 Target
3 McDonalds
このテーブルのクラスを作成しました
public class Receiverz {
private int num;
private String name;
public void setNum(int num) {
this.num = num;
}
public void setName(String name) {
this.name = name;
}
}
次に、Daoインターフェイスを作成し、それにメソッドを渡しました。
public interface Dao {
Receiverz getReceiverz(int num);}
次に、Daoを実装するクラスExpensesDaoを作成し、その中にシングルトンを作成し(データベースとの接続もセットアップしましたが、その部分はスキップします)、データベースでの作業を可能にすることでgetReceivers(int num)メソッドをオーバーライドします。
public class ExpensesDao implements Dao {
private static Dao thisdao;
public static synchronized Dao getDao() {
if (thisdao==null) {
thisdao = new ExpensesDao();
}
return thisdao;
}
@Override
public Receiverz getReceiverz(int num) {
Receiverz receiver = new Receiverz();
try {
Statement stmt = myConnection.createStatement();
ResultSet result = stmt.executeQuery("SELECT * FROM receiverz");
while(result.next()){
receiver.setNum(num);
receiver.setName(result.getString(2));
}
}
catch (SQLException e){
System.out.println(e.getMessage());
}
return receiver;
}
メインクラスで実行しようとすると:
public class TryDatabase {
public static void main(String[] args) {
Dao ex = ExpensesDao.getDao();
System.out.println(ex.getReceiverz(2));
私が得るのは:
listexpenses.Receiverz@193499fd
しかし、私は取得する必要があります
2 Target
(パラメーターに2を渡し、データベースのTargetを参照しているため、コードで何が問題になっているのか、何を変更する必要があるのかを誰かが知っていますか。PS十分に明確にしたことを願っています。