如何把ResultSet转换成Java对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何把ResultSet转换成Java对象相关的知识,希望对你有一定的参考价值。

首先定义一个实体类对象User
public class User 
private int id;
private String name;
private String password;

/*
省略set,get方法
*/


例如执行查询操作
Connection conn=null;
PreparedStatement pst=null;
ResultSet rs=null;
String sql="select * from user";
List<User> list=new ArrayList<User>();
try 
conn=new jdbc().DBConnect();
pst=conn.prepareStatement(sql);
rs=pst.executeQuery();
while(rs.next())
User user=new User();
user.setId(rs.getInt("id"));
        user.setName(rs.getString("name"));
user.setPassword(rs.getString("password"));
list.add(user);

 catch (SQLException e) 
// TODO Auto-generated catch block
e.printStackTrace();

查询出来的结果集是resultset,分别取其中的元素并赋值给声明的实体变量user
再把user放到list集合中,这样就完成了取值和转化

参考技术A 一种方法是根据resultSet返回值与表列的顺序对应的位置,顺序地为对象的属性赋值

还可以使用ResultSetMapper这个类的mapRersultSetToObject方法

在java中如何把list转换成List<>

我通过这条DAOSupportFactory.getInstance().getJdbcDAOSupport().queryForList(sql)查询到一个list,但是我想把这个list转换成List<Event>,请问要怎么转?

Java在JDK1.4之后,提供了泛型功能,可以在运行之前确定运行类型,同样也可以运用到集合当中,通过泛型,支持在集合里面在套用集合,代码:
ArrayList<ArrayList<String>> listall = new ArrayList<ArrayList<String>>();
ArrayList<String> list1 = new ArrayList<String>();
ArrayList<String> list2 = new ArrayList<String>();
ArrayList<String> list3 = new ArrayList<String>();
listall.add(list1);
listall.add(list2);
listall.add(list3);
这样就可以把3个list放到一个list里面。
参考技术A list在声明的时候就要求给定范型的,当你不给定是默认为Object类型的范型,而且给定不同的范型的list也是不同的数据类型。 参考技术B 估计是queryForList返回的List里面包含的对象不是Event,而是其它的对象。
如果不这样就不能强行的cast过去。
参考技术C 你可以在new List的时候直接就new成泛型的List,jdk要1.5以上的就支持泛型本回答被提问者和网友采纳 参考技术D List<Event> event= (Event)DAOSupportFactory.getInstance().getJdbcDAOSupport().queryForList(sql)

以上是关于如何把ResultSet转换成Java对象的主要内容,如果未能解决你的问题,请参考以下文章

请问各位java中如何将数据库返回的多个字段值拼接为一个list并转换为json对象返回到前台,谢谢!

ResultSet转成java类对象

java:把查询结果存储到resultSet对象中,在把该对象的数据放置在一个JTable对象中

java中如何把hashmap转换成object数组

Java中如何把字符串转换成map

java 怎么把对象集合转换成json