Java 如何将数据库返回的对象中的数据打印为对象列表?
我试图在SpringMVC中获取数据,我的数据库有两行。所以我的数据库返回两个对象作为列表,但我想从返回的对象中获取特定的值 这就是我获取数据和结果的方式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
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());