servlet从数据库取数据打包成json然后传值到前端

Servlet从数据库取数据打包成json然后传值到前端

      后端用get或者post从数据库取的数据如何打包成json:

   需要下载json的jar包,这里有:http://download.csdn.net/detail/zhangy0329/607838

复制代码
        Connection ct = null;  
        Statement  sm = null;  
        ResultSet rs = null;
          try{     
            Class.forName("com.mysql.jdbc.Driver");     //连接mysql数据库 
            ct = DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf-8","用户名"              , "密码");
            sm = ct.createStatement();
            rs = sm.executeQuery("select *from 表名");
           
            JSONArray jsonData = JSONArray.fromObject(convertList(rs));      //先转成List格式,再转成json格式

            System.out.println(jsonData.toString());

            PrintWriter out = response.getWriter();    //把json数据传递到前端,记着前端用ajax接收
            out.print(jsonData);
        } 
        catch(Exception ex)
        {  
               //error 代码
        }  
复制代码

  数据库取的数据转成List的操作函数:

复制代码
    private static List convertList(ResultSet rs) throws SQLException {
        List list = new ArrayList();
        ResultSetMetaData md = rs.getMetaData();

ResultSetMetaData rsmt=rs.getMetaData();
得到结果集(rs)的结构,比如字段数、字段名等。

使用rs.getMetaData().getTableName(1))就可以返回表名
rs.getMetaData().getColumnCount()
取得列数

int columnCount = md.getColumnCount(); while (rs.next()) { Map rowData = new HashMap(); for ( int i = 1; i <= columnCount; i++ ) { rowData.put(md.getColumnName(i), rs.getObject(i)); } list.add(rowData); } return list; }
复制代码

       前端使用jQuery解析json:

复制代码
           success : function(Result)
           {
               //Result是jsonArray字符串
                $.each(eval(Result), function (index, item) {
                        //index为序号,相对于json格式的Result而言,从0,1,2,3...到Result的长度减1,item就是每条jsonObject,
                //取值就是:item.属性名,如item.name, item.id, item.number.....

                });
           },
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值