背景分析:
面对当前多种的业务需求和杂乱无章的数据堆放,Java后台处理变得尤为重要。对于信息系统开发而言,归根到底是对数据的分类与处理。通过从服务器获取数据,客户给出需求,形成怎样的表格,多样化的静态图和动态图,各种各样资源文件,这些需求都不是简单的从数据库中取出来就可以直接使用的,往往需要进行对应的算法归类,类别划分等。对于复杂的图标,借助开源的前段框架或者相应的画图插件即可完成,只需要直接调用即可。
**问题导入:**借助CSDN为例子进行知识探讨,仅进行学习与技术探讨,如有侵权,请及时联系 QQ邮箱:[email protected]。
通过简单的分析,上述网页的1,2,3这三个部分肯定不是来源于一个数据库,他们的格式,数据长短也大相径庭。但是它们有一个相同点,需要同时获取数据到本页面
。从后台角度而言,用最简单的方式解决就是它们具有相同的接口,通过网址链接请求,再从服务器数据库中获取相应的数据,进行处理,整合在一个json或者其它传递格式返回到当前页面中来。
后台具体思路:
1.依据需求和接口文档,从数据库获取原数据在后台存储起来。其中需要用到
①从服务器获取json数据
②json数据与String,ArrayList等数据格式之间的转换
2.分析需求,将数据转存为hashmap或者arraylist方便一起传输。其中注意需要进行算法处理时,对下标,对应名称要仔细检查。
3.组合为一个字符串或者其它格式传递给前端。(每一个模块应有对应的名称,前端好直接获取处理)
代码实例:
1.从数据库连接路径获取数据(实测有用干货)
/** * json数据转为字符串 * @param url1 获取json数据的URL地址 * @return messageString
String类型的json字符串 */ public String getHttpResult(String url1) { String
messageString = null; try { URL url = new URL(url1); // 打开连接 HttpURLConnection
urlConnection = (HttpURLConnection) url .openConnection();
System.out.println(urlConnection); urlConnection.setConnectTimeout(8000);//连接超时
urlConnection.setReadTimeout(8000);//读操作超时 if (200 ==
urlConnection.getResponseCode()) { // 得到输入流 InputStream is =
urlConnection.getInputStream(); ByteArrayOutputStream baos = new
ByteArrayOutputStream(); byte[] buffer = new byte[1024]; int len = 0; while (-1
!= (len = is.read(buffer))) { baos.write(buffer, 0, len); baos.flush(); } //
baos.toString("utf-8"); //System.out.println("获取数据" + baos.toString("utf-8"));
messageString = baos.toString("utf-8"); baos.close(); } } catch (IOException e)
{ e.printStackTrace(); } return messageString; }
2.传递参数存储框架搭建
分析:对于要传递四个模块的数据使用map存储方式用K,V将每一个内容和模块对应。
//总仓库 static HashMap<String, Map<Integer,Map<String, String>>>result = new
HashMap<String, Map<Integer,Map<String, String>>>(); //分仓库
Map<Integer,Map<String, String>> TMmap = new LinkedHashMap<Integer,Map<String,
String>>(); //仓库子内容 Map<String, String> TMmap1 = new LinkedHashMap<String,
String>();
3.对封装好的数据进行类型转换进行传输(灵活使用gson)
//其中BaseResponse类需要自己创建,依据需求设置类属性 BaseResponse<HashMap<String,
Map<Integer,Map<String, String>>>> mes = new
BaseResponse<HashMap<String,Map<Integer,Map<String, String>>>>();
mes.setCode(1); mes.setData(result); mes.setMsg("ok"); Gson gson = new Gson();
String json = gson.toJson(mes); return json;
4.接口测试,数据如果有差异,进行适当修改即可。
热门工具 换一换