JDBC编写数据库操作返回JSONArray

使用传统的JDBC编写数据库操作返回JSONArray

1.首先编写一个Dao接口类:
public interface DataInterfaceService {

   public JSONArray getFriends(String filter,int nowpage,int pagesize) throws SQLException;

}

2.编写一个实现类接口:
@Service
public class DataInterfaceServiceImpl implements DataInterfaceService {
@Override
public JSONArray getFriends(String filter, int nowpage, int pagesize)
throws SQLException {
// TODO Auto-generated method stub
return dataItf.friends(ConnectionFactory.getInstance().getConnection(), filter, nowpage, pagesize);
}
}

3.编写普通方法实现类:
public class PublicData {
public JSONArray friends(Connection conn, String filter,int nowpage,int pagesize)
throws SQLException {
String sql =”“;
sql = “select * from slsw.dbo.V_FRIENDS where 1=1 And erp_id =1 And (pagerank between “+((nowpage-1)*pagesize+1)+” And “+nowpage*pagesize+” )”;
Statement st = conn.createStatement();
JSONArray rs = RstToList.resultSetToJson(st.executeQuery(sql));
if(st!=null){
st.close();
}
if(conn!=null){
conn.close();
}
return rs;
}
}

4.编写一个ResultSet工具类:
public class RsUtile {
public static JSONArray resultSetToJson (ResultSet rs) {
// json数组
JSONArray array = new JSONArray();

    try {
    // 获取列数  
    ResultSetMetaData metaData = rs.getMetaData();  
    int columnCount = metaData.getColumnCount();  
    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.add(jsonObj);
    }  
    }catch (SQLException e){
        ///
    }
    return array;
}

}

5.最后只需要在接口中调用 getFriends(String filter,int nowpage,int pagesize);就可以返回你在数据库操作语句中所需要查询的东西了

总结:
好处:这样操作可以根据你想查询返回的任何数据,如:在多表查询时,需要返回多张表的字段,就可以很方便的从集合中取到。
缺点:与框架相比是一个非常low的写法,

猜你喜欢

转载自blog.csdn.net/dbsjack/article/details/78054313