java中使用反射机制把查询出的结果集放入java对象中

下面的方法是使用反射把ResultSet对象得到的单条结果放入到java对象中,返回Object对象

 public static Object singleResultset(ResultSet rs,String str){
    	try {
    		//加载类
    		Class clazz = Class.forName(str);
    		//创建此 Class对象所表示的类的一个新实例。
    		Object obj = clazz.newInstance();
    		//获取此 ResultSet对象的列的编号、类型和属性。
    		ResultSetMetaData rsmd = rs.getMetaData();
    		//ResultSetMetaData.getColumnCount()方法获取此 ResultSet对象中的列数。
    		int count = rsmd.getColumnCount();
    		
		//遍历该ResultSet对象的行数据
		while(rs.next()){
			//遍历ResultSet对象的列数据
			for(int i=1;i

调用该方法

AssetPo ap = (AssetPo)singleResultset(rs,"com.wlx.po.AssetPo");//参数一是查询到的ResultSet对象,参数二是反射得到的结果集放入的java对象(应返回的是一个Object对象所以需要强转一下)

下面的方法是使用反射把ResultSet对象得到的多条结果放入到List 集合中,和上面的方法没有什么区别,唯一不同的是下面的结果集放入的是一个集合,返回List 集合

public static List listResultset(ResultSet rs,String str){
		List list = new ArrayList();
		try {
			//加载类
			Class clazz = Class.forName(str);
			//获取此 ResultSet 对象的列的编号、类型和属性。
			ResultSetMetaData rsmd = rs.getMetaData();
			//返回此 ResultSet 对象中的列数。
			int count = rsmd.getColumnCount();
			
			while(rs.next()){
				//创建此 Class对象所表示的类的一个新实例。
				Object obj = clazz.newInstance();
				for(int i=1;i

调用该方法

List list = listResultset(rs, "com.wlx.po.AssetPo");//参数一是查询到的ResultSet对象,参数二是反射得到的结果集放入的java对象

上面的两个方法是使用java的反射机制来获得Po类中get方法的返回类型,来设置set的参数类型,并把查询得到的ResultSet对象中的结果通过执行set方法设入Po类中。

你可能感兴趣的:(java中使用反射机制把查询出的结果集放入java对象中)