2012-09-15 51 views
0

你好,我正在创建一个应用程序,我可以将数据存储在购物车模块的哈希映射和列表中。但我想从我的MS-Access数据库中获取这些数据。我尝试了下面的代码但它不编译。请给我指导。将数据添加到数据库hashmap中

代码:

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个错误如下:

enter image description here

+1

答案是在屏幕截图本身。找不到符号构造函数。我猜你对编程非常陌生!你绝对应该选择一些关于Java的初学者书籍。 – CKing

+0

是的我纠正了,现在它显示缺少返回语句。 –

+0

感谢每一个人的帮助,现在工作得很好 –

回答

2

您的ProductBean类没有以三个字符串作为参数的构造函数。

1

由于错误显示,该类ProductBean缺少与签名的构造与3线 - ProductBean(String, String, String)

再次检查此类以匹配现有的构造函数或添加一个新的匹配代码。

0

这应该是这样的:

products.add(bean) 

bean是ProductBean类的ProductBean豆=新的ProductBean的对象();