簡體   English   中英

使用JPA從db輸出數據

[英]Outputting data from db using jpa

嗨,我嘗試使用jpa從db打印所有客戶,但我得到的輸出格式如下: model.Customer@3d47d922, model.Customer@5f6f2271, model.Customer@6facbae5

我使用的繼承方法是:

public List<Customer> getAllCustomers()
    {
        EntityManager em = null;
        List<Customer> resultList = new ArrayList<Customer>();
        try
        {
            em = JpaUtil.getFactory().createEntityManager();
            TypedQuery<Customer> query = em.createQuery("select p from Customer p", Customer.class);
            resultList = query.getResultList();

        }
        finally {

            JpaUtil.closeQuietly(em);
        }
        return resultList; 

我嘗試在此輸出客戶的Heres Servlet:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    CustomerDAO dao = new CustomerDAO();    

    response.getWriter().println(dao.getAllCustomers());

這是我的模型課:

    @Entity
    public class Customer {

    @Id
    @SequenceGenerator(name = "my_seq", sequenceName = "seq1", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "my_seq")
    private Long id;


    private String first_name;


    private String surname;
    private String code;
    public enum Customertype{Private, Corporate};
    @Enumerated(EnumType.STRING)
    private Customertype customer_type;


    public Customer() {}


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getFirstName() {
        return first_name;
    }

    public void setFirstName(String firstname) {
        first_name = firstname;
    }


    public String getSurname() {
        return surname;
    }


    public void setSurname(String surName) {
        surname = surName;
    }


    public Customertype getCustomertype() {
        return customer_type;
    }


    public void setCustomertype(Customertype customerType) {

        this.customer_type = customerType;
    }


    public String getCode() {
        return code;
    }


    public void setCode(String code) {
        this.code = code;
    }



}

您需要在客戶類中重寫toString()方法 每當您嘗試使用println()打印對象時,都會調用toString()方法。

Object類中toString()的默認行為是打印該類的名稱,一個@符號和該對象的hascode。 那就是你所看到的。

例如

public String toString(){
    return this.getFirstName();
}

您需要在類中重寫toString方法,因為它將為您提供您可以理解的可讀格式的有關對象的清晰信息。

覆蓋toString的優點:

幫助程序員記錄調試Java程序

由於toString是在java.lang.Object中定義的,並且不會提供有價值的信息,因此,對於子類覆蓋它是一個很好的實踐。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM