resultset结果集转化为json源码

来源:互联网 发布:肯德基优惠券软件 编辑:程序博客网 时间:2024/06/08 13:12

下载包链接:

http://download.csdn.net/detail/ruthywei/9876958

http://download.csdn.net/detail/yangs_1235/5049404

需要导入的包为

mysql-connector-java-5.1.7-bin.jar             //JDBC包用于连接数据库

用于resultset结果集转化为json数据格式的包

其中,json-lib-2.4-jdk15.jar  用于导入net.sf.json.JSONArray和net.sf.json.JSONObject

json-rpc-1.0.jar用于导入org.json.JSONArray和org.json.JSONObject

两者之间的方法有所不同,有兴趣可以自行查询。


源码如下:

package com.eabax.plugin.yundada.utils; import java.lang.reflect.Method;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException; import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject; public class ResultSetTool {    /**     * 将resultSet转化为实体类(实体字段全为String类型)     * @param rs     * @param dto     * @return     * @throws Exception     */    public static <T> T bindDataToDTO(ResultSet rs, T dto) throws Exception {                    //取得Method方法          Method[] methods = dto.getClass().getMethods();            //取得ResultSet的列名          ResultSetMetaData rsmd = rs.getMetaData();          int columnsCount = rsmd.getColumnCount();          String[] columnNames = new String[columnsCount];          for (int i = 0; i < columnsCount; i++) {              columnNames[i] = rsmd.getColumnLabel(i + 1);          }            //遍历ResultSet          while (rs.next()) {              //反射, 从ResultSet绑定到JavaBean              for (int i = 0; i < columnNames.length; i++) {                  //取得Set方法                  String setMethodName = "set" + columnNames[i];                  //遍历Method                  for (int j = 0; j < methods.length; j++) {                      if (methods[j].getName().equalsIgnoreCase(setMethodName)) {                          setMethodName = methods[j].getName();                          Object value = rs.getObject(columnNames[i]);                            //实行Set方法                          try {                              //JavaBean内部属性和ResultSet中一致时候                              if(value != null) {                                Method setMethod = dto.getClass().getMethod(                                          setMethodName, value.getClass());                                  setMethod.invoke(dto, value);                              }                        } catch (Exception e) {                              //JavaBean内部属性和ResultSet中不一致时候,使用String来输入值。                              Method setMethod = dto.getClass().getMethod(                                      setMethodName, String.class);                              setMethod.invoke(dto, value.toString());                          }                      }                  }              }          }         return dto;      }         /**     * 将resultSet转化为JSON数组     * @param rs     * @return     * @throws SQLException     * @throws JSONException     */    public static JSONArray resultSetToJsonArry(ResultSet rs) throws SQLException,JSONException     {        // json数组        JSONArray array = new JSONArray();                 // 获取列数        ResultSetMetaData metaData = rs.getMetaData();        int columnCount = metaData.getColumnCount();                 // 遍历ResultSet中的每条数据         while (rs.next()) {             JSONObject jsonObj = new JSONObject();                           // 遍历每一列             for (int i = 1; i <= columnCount; i++) {                 String columnName =metaData.getColumnLabel(i);                 String value = rs.getString(columnName);                 jsonObj.put(columnName, value);             }              array.put(jsonObj);          }                 return array;     }         /**     * 将resultSet转化为JSONObject     * @param rs     * @return     * @throws SQLException     * @throws JSONException     */    public static JSONObject resultSetToJsonObject(ResultSet rs) throws SQLException,JSONException     {        // json对象        JSONObject jsonObj = new JSONObject();            // 获取列数        ResultSetMetaData metaData = rs.getMetaData();        int columnCount = metaData.getColumnCount();        // 遍历ResultSet中的每条数据         if (rs.next()) {             // 遍历每一列             for (int i = 1; i <= columnCount; i++) {                 String columnName =metaData.getColumnLabel(i);                 String value = rs.getString(columnName);                 jsonObj.put(columnName, value);             }           }       return jsonObj;     }}


原创粉丝点击