2017-07-17 86 views
1

im Java新手。 如何从数据库中检索数据并将其放在某个变量上。我已经考虑过阵列,但数据是各种类型的。而且数据的检索是使用另一个类的方法。如何从Java数据库中的每个行和列中检索数据

我有一个提示使用ArrayList,但我没有任何想法使用它。对我有任何线索或建议?

这是主要的方法:

class JavaAppsTes { 
    public static void main(String[] args) { 
     Database app = new Database(); 

     /* I don't know what to do here */ 
    } 

这是数据库类:

public void getMenu() { 
    String SQL = "SELECT * FROM menu ORDER by id_kategori"; 
    String nama, gambar; 
    int id_menu, id_kategori, harga, persediaan; 
    int count = 0; 

    try (Connection conn = connect(); Statement stmt = conn.createStatement(); ResultSet cartRslt = stmt.executeQuery(SQL)) { 
     while(cartRslt.next()) { 
      id_menu = cartRslt.getInt("id_menu"); 
      id_kategori = cartRslt.getInt("id_kategori"); 
      harga = cartRslt.getInt("harga"); 
      persediaan = cartRslt.getInt("persediaan"); 
      nama = cartRslt.getString("nama"); 
      gambar = cartRslt.getString("gambar"); 
     } 
    } catch (SQLException ex) { 
     System.out.println(ex.getMessage()); 
    } 
} 

我怎样才能把这些数据输入到东西,所以前端可以使用检索到的数据?

顺便说一句,因为我得到了线索有关的ArrayList我创造了一些菜单类是这样的:

public class Menu { 
    private int id_menu; 
    private int id_kategori; 
    private String nama; 
    private int harga; 
    private int persediaan; 
    private String gambar; 

    public Menu(int id_menu, int id_kategori, String nama, int harga, int persediaan, String gambar) { 
     this.id_menu = id_menu; 
     this.id_kategori = id_kategori; 
     this.nama = nama; 
     this.harga = harga; 
     this.persediaan = persediaan; 
     this.gambar = gambar; 
    } 

    public int getid_menu(){ 
     return id_kategori; 
    } 

    public void setid_menu(int id_menu){ 
     this.id_menu = id_menu; 
    } 

    public int getid_kategori(){ 
     return id_kategori; 
    } 

    public void setid_kategori(int id_kategori){ 
     this.id_kategori = id_kategori; 
    } 

    public String getnama(){ 
     return nama; 
    } 

    public void setnama(String nama){ 
     this.nama = nama; 
    } 

    public int getharga(){ 
     return harga; 
    } 

    public void setharga(int harga){ 
     this.harga = harga; 
    } 

    public int getpersediaan(){ 
     return persediaan; 
    } 

    public void setpersediaan(int persediaan){ 
     this.persediaan = persediaan; 
    } 

    public String getgambar(){ 
     return gambar; 
    } 

    public void setgambar(String gambar){ 
     this.gambar = gambar; 
    } 
} 

回答

0

如果你需要ArrayList在循环之前定义它,添加每个菜单并在之后返回。

public ArrayList<Menu> getMenu() { 
String SQL = "SELECT * FROM menu ORDER by id_kategori"; 
String nama, gambar; 
int id_menu, id_kategori, harga, persediaan; 
int count = 0; 
ArrayList<Menu> arr = new ArrayList<>(); 
try (Connection conn = connect(); 
Statement stmt = conn.createStatement(); 
ResultSet cartRslt = stmt.executeQuery(SQL)) { 
    while(cartRslt.next()) { 
     id_menu = cartRslt.getInt("id_menu"); 
     id_kategori = cartRslt.getInt("id_kategori"); 
     harga = cartRslt.getInt("harga"); 
     persediaan = cartRslt.getInt("persediaan"); 
     nama = cartRslt.getString("nama"); 
     gambar = cartRslt.getString("gambar"); 
     arr.add(new Menu(id_menu, id_kategori, nama, harga, persediaan, gambar)); 
} 
} 
return arr; 
} 
0

您可以创建一个JSON数组,每个条目是具有键值对的JSON对象列和值在结果集的每个记录中:

JSONArray json = new JSONArray(); 
try (Connection conn = connect(); Statement stmt = conn.createStatement(); ResultSet cartRslt = stmt.executeQuery(SQL)) { 
    while(cartRslt.next()) { 
     JSONObject row = new JSONObject(); 
     id_menu = cartRslt.getInt("id_menu"); 
     id_kategori = cartRslt.getInt("id_kategori"); 
     harga = cartRslt.getInt("harga"); 
     persediaan = cartRslt.getInt("persediaan"); 
     nama = cartRslt.getString("nama"); 
     gambar = cartRslt.getString("gambar"); 

     row.put("id_menu", String.valueOf(id_menu)); 
     row.put("id_kategori", String.valueOf(id_kategori)); 
     row.put("harga", String.valueOf(harga)); 
     row.put("persediaan", String.valueOf(persediaan)); 
     row.put("nama", nama); 
     row.put("gambar", gambar); 
     json.put(row); 
    } 
} catch (SQLException ex) { 
    System.out.println(ex.getMessage()); 
} 

然后,稍后在您的代码中,您可以简单地将此JSON字符串传递到您的UI层。

0

要使用数组列表,您应该将方法的签名从void更改为List<Menu>。这样你可以返回一个包含所有菜单对象的列表。

public List<Menu> getMenu() { 
    String SQL = "SELECT * FROM menu ORDER by id_kategori"; 
    String nama, gambar; 
    int id_menu, id_kategori, harga, persediaan; 
    int count = 0; 
    List<Menu> menus = new ArrayList<>(); 

    try (Connection conn = connect(); Statement stmt = conn.createStatement(); ResultSet cartRslt = stmt.executeQuery(SQL)) { 
     while(cartRslt.next()) { 
      id_menu = cartRslt.getInt("id_menu"); 
      id_kategori = cartRslt.getInt("id_kategori"); 
      harga = cartRslt.getInt("harga"); 
      persediaan = cartRslt.getInt("persediaan"); 
      nama = cartRslt.getString("nama"); 
      gambar = cartRslt.getString("gambar"); 
      menus.add(new Menu(id_menu, id_kategori, ...)); 
     } 
    } catch (SQLException ex) { 
     System.out.println(ex.getMessage()); 
    } 
return menus 
} 

就显示给用户而言,您需要决定一个web框架还是gui。

相关问题