Java 如何将数据库返回的对象中的数据打印为对象列表?

Java 如何将数据库返回的对象中的数据打印为对象列表?,java,hibernate,spring-mvc,object,collections,Java,Hibernate,Spring Mvc,Object,Collections,我试图在SpringMVC中获取数据,我的数据库有两行。所以我的数据库返回两个对象作为列表,但我想从返回的对象中获取特定的值 这就是我获取数据和结果的方式 SQLQuery query1 = sessionFactory.getCurrentSession() .createSQLQuery("SELECT * FROM cart"); 这就是我打印列表的方式 System.out.println(query1.list()); 我得到System.out.print

我试图在SpringMVC中获取数据,我的数据库有两行。所以我的数据库返回两个对象作为列表,但我想从返回的对象中获取特定的值

这就是我获取数据和结果的方式

SQLQuery query1 = sessionFactory.getCurrentSession()
            .createSQLQuery("SELECT * FROM cart");
这就是我打印列表的方式

System.out.println(query1.list());
我得到
System.out.println(query1.list())的结果

但我想要对象的特定值。 如何从数据库中获取对象返回值作为列表

请帮助….

列表。toString()
依赖于列表元素的
toString()
方法。
看到结果
[Ljava.lang.Object;@16b2af1c,…
,元素类不会重写
toString()

因此,当您猜测要执行这种调试输出时,您需要在您有列表的实体类中重写
toString()

请注意,在使用Hibernate时必须小心,因为字段引用了可能会引发初始化的其他实体,因此可能会执行一些其他不需要的SQL请求。

List.toString()
依赖于列表元素的
toString()
方法。
看到结果
[Ljava.lang.Object;@16b2af1c,…
,元素类不会重写
toString()

因此,当您猜测要执行这种调试输出时,您需要在您有列表的实体类中重写
toString()


请注意,使用Hibernate时必须小心,因为字段引用的其他实体可能会引发初始化,因此可能会执行其他一些不需要的SQL请求。

您需要执行以下操作:

List<Cart> results = query1.list(); // list returns a List<T>

for (Cart cart : results){  // Which you iterate 
      System.out.println(cart.getItems());
      System.out.println(cart.getTotalPrice());
}
List results=query1.List();//List返回一个列表
对于(Cart:results){//您迭代的
System.out.println(cart.getItems());
System.out.println(cart.getTotalPrice());
}

您需要执行以下操作:

List<Cart> results = query1.list(); // list returns a List<T>

for (Cart cart : results){  // Which you iterate 
      System.out.println(cart.getItems());
      System.out.println(cart.getTotalPrice());
}
List results=query1.List();//List返回一个列表
对于(Cart:results){//您迭代的
System.out.println(cart.getItems());
System.out.println(cart.getTotalPrice());
}
将为您提供一个
对象[]
。您可能希望创建一个对象(在您的情况下看起来像“购物车”),以便能够更好地对其进行序列化和操作

现在您有了一个
Cart
对象,可以执行以下操作:

List<Cart> cartList = Arrays.asList(query1.list());
如果不起作用,只需使用
对象[]

List<Object[]> cartList = query1.list();
for(Object[] cart : cartList)
    System.out.println(cart[0].toString());
List cartList=query1.List();
对于(对象[]购物车:购物车列表)
System.out.println(购物车[0].toString());
将为您提供一个
对象[]
。您可能希望创建一个对象(在您的情况下看起来像“购物车”),以便能够更好地对其进行序列化和操作

现在您有了一个
Cart
对象,可以执行以下操作:

List<Cart> cartList = Arrays.asList(query1.list());
如果不起作用,只需使用
对象[]

List<Object[]> cartList = query1.list();
for(Object[] cart : cartList)
    System.out.println(cart[0].toString());
List cartList=query1.List();
对于(对象[]购物车:购物车列表)
System.out.println(购物车[0].toString());

你知道hibernate是如何工作的吗?如果不知道,你应该从这里开始:当你执行查询时,你会得到一个结果集。你需要迭代这个结果集来获得单个条目。你应该通过for循环来迭代结果。你知道hibernate是如何工作的吗?如果不知道,你应该从这里开始:当你执行查询时,你会得到一个结果集。你需要d迭代此结果集以获取单个条目。您应该通过for循环迭代结果。i get error[Ljava.lang.Object;无法转换为com.infotech.model。Cart@DhruvRajkotiya你能试试
List results=(List)(List)query1.List();
而不是
List results=query1.List();
i得到错误信息吗[Ljava.lang.Object;无法强制转换为com.infotech.model。Cart@DhruvRajkotiya你能试试
List results=(List)(List)query1.List();
而不是
List results=query1.List();
我得到了类似[Ljava.lang.Object;无法转换到com.infotech.model.CartOk的错误,因为它返回了一个对象[],不是列表。请尝试执行以下操作:Arrays.asList(query1.List())或:List cartList=query1.List();for(Object[]cart:cartList)System.out.println(cart[0].toString());我收到类似[Ljava.lang.Object]的错误;无法转换为com.infotech.model.CartOk,因为它返回的是对象[],而不是列表。请尝试执行此操作:Arrays.asList(query1.List())或者:List cartList=query1.List();对于(对象[]cart:cartList)System.out.println(cart[0].toString());