2016-04-18 11 views
0

ich habe CodeWie Liste Drucken <> Ergebnis aus der Datenbank

 Customer customerWithId10 = customerDao.getCustomerById(1); 

     List<Customer> customerFirst10Rows = customerDao.getCustomers(0, 10); 
     for(int i=0;i<customerFirst10Rows.size();i++){ 
      System.out.println(customerFirst10Rows.get(i)); 
     } 

Aber ich Folge bekommen wie dieses

[email protected] [email protected] [email protected]

Wie drucken und die Daten?

hier mein CustomerDao

public class CustomerDaoMysql implements CustomerDao{ 
private static final String SELECT_PAGING_QUERY 
     = "SELECT * FROM CUSTOMER LIMIT ?,?"; 
    private static final String SELECT_BY_ID_QUERY 
     = "SELECT * FROM CUSTOMER WHERE ID=?"; 
private Connection connection; 

public CustomerDaoMysql(Connection connection) { 
    this.connection = connection; 
} 
@Override 
    public List<Customer> getCustomers(Integer indexStart, Integer numOfRows) { 
    try { 
     PreparedStatement selectWithPagingPreparedStatement 
       = connection.prepareStatement(SELECT_PAGING_QUERY); 
     selectWithPagingPreparedStatement.setInt(1, indexStart); 
     selectWithPagingPreparedStatement.setInt(2, numOfRows); 
     ResultSet customerResultSet = selectWithPagingPreparedStatement.executeQuery(); 
     List<Customer> customers = new ArrayList<>(); 
     while (customerResultSet.next()) { 
      customers.add(extractCustomerFromResultSet(customerResultSet)); 
     } 
     return customers; 
    } catch (SQLException ex) { 
     Logger.getLogger(CustomerDaoMysql.class.getName()).log(Level.SEVERE, null, ex); 
    } 
    return Collections.emptyList(); 
} 

public Customer extractCustomerFromResultSet(ResultSet customerResultSet) throws SQLException { 
    Customer customer = new Customer(); 
    customer.setId(customerResultSet.getInt("ID")); 
    customer.setName(customerResultSet.getString("NAME")); 
    customer.setEmail(customerResultSet.getString("EMAIL")); 
    customer.setAddress(customerResultSet.getString("ADDRESS")); 
    Date birthDate = customerResultSet.getDate("BIRTH_DATE"); 
    customer.setBirthDate(new java.util.Date(birthDate.getTime())); 
    return customer; 

}

+1

definieren 'toString' Methode für' Customer'. – Makoto

+0

Welche Elemente des Kunden möchten Sie drucken? – SpringLearner

+0

Ich möchte Name und ID aus den Daten, was soll ich tun –

Antwort

0
List<Customer> customerFirst10Rows = customerDao.getCustomers(0, 10); 

Dies bedeutet einfach, eine Liste von Kunden erhalten werden 10 sein kann, in Ihrem Fall.

In dieser Liste jedes Element ist ein Objekt vom Typ Kunde und daher System.out.println(customerFirst10Rows.get(i)); druckt die Inhalte der toString() Methode

Wenn Sie Getter für die Felder verwendet, in Ihrem Customer-Klasse definiert haben, können Sie sie nennen hier wie Sie ein Feld „Name“ haben, die den Namen des Kunden

Dann sollten Sie System.out.println(customerFirst10Rows.get(i).getName()) erhalten den Wert Simillarly für alle Felder

repräsentiert verwenden

Sonst könnten Sie die toString() - Methode für Ihre Kundenklasse übersteuern. Wie Sie Ihre Werte drucken möchten

+0

Dank Sawhney, mit diesem Programm eigentlich bekomme ich nur 10 Daten, wenn ich alle Daten aus der Tabelle bekommen soll, was soll ich tun.? –

+0

poste hier deinen getCustomer() - Methodencode oder die aktuelle Methode, mit der du auf die Datenbank zugreifen willst, die die SELECT-Abfrage enthält –

+0

Ich habe den customerDao-Code in meinen Fragen veröffentlicht –

0

Überschreiben Sie einfach die Methode toString() in Ihrer Kundendatenklasse. Auf diese Weise können Sie Ihr Customer-Objekt in jedem Out-Vorgang hübsch ausdrucken. Verwandte Code wie unten:

@Override 
public String toString() { 
    return getName() + " , "+getSurname() + " , "+getAdress(); 
} 

Nachdem Sie toString() Methode überschreiben, wird Ihre Ausgaben aussehen:

Lionel , Messi , Barcelona 
Cristiano , Ronaldo , Madrid 
Verwandte Themen