0

こんにちは、ショッピング カート モジュールのハッシュマップとリストにデータを格納できるアプリケーションを作成しています。しかし、MS-Access データベースからこのデータを取得したいと考えています。次のコードを試しましたが、コンパイルできませんでした。 .

コード:

import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

public class Program {
    public static void main(String [] args){}

    public static HashMap getProductsAsMap() {
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection con = DriverManager.getConnection("jdbc:odbc:pd");
            ResultSet rs = null;
            Statement st = con.createStatement();
            String sql = ("select * from products");
            rs=st.executeQuery(sql);
            while (rs.next()) { 
                HashMap<String, ProductBean> products= new HashMap<String, ProductBean>();
                String name=rs.getString("pname");
                String desc=rs.getString("pdesc");
                String image=rs.getString("pimage");
                products.put("P1", new ProductBean(name,desc,image));
                return products;
            }
            rs.close();
            st.close();
            con.close();
        }
        catch(Exception e){}   
    }

    public static List getProductsAsList() {
        List<ProductBean> products = new ArrayList<ProductBean>();
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Connection con = DriverManager.getConnection("jdbc:odbc:pd");
            ResultSet rs = null;
            Statement st = con.createStatement();
            String sql = ("select * from products");
            rs=st.executeQuery(sql);
            while (rs.next()) { 
                String name=rs.getString("pname");
                String desc=rs.getString("pdesc");
                String image=rs.getString("pimage");
                products.add(new ProductBean(name,desc,image));
            }
            rs.close();
            st.close();
            con.close();
        }
        catch(Exception e){}
        return products;  
    }
}

次のように2つのエラーが発生します。

ここに画像の説明を入力

4

3 に答える 3

2

このクラスには、3 つの文字列をパラメーターとして受け取るコンストラクターがありませProductBeanん。

于 2012-09-15T11:41:21.667 に答える
1

エラーが示すように、クラスProductBeanには 3 つの文字列の署名を持つコンストラクターがありません - ProductBean(String, String, String)

このクラスをもう一度確認して既存のコンストラクターと一致させるか、新しいコンストラクターを追加してコードに一致させます。

于 2012-09-15T11:41:14.193 に答える
0

次のようになります。

products.add(bean)

bean はProductBeanクラス ProductBean のオブジェクト bean = new ProductBean();

于 2013-07-29T19:05:41.707 に答える