mongodb基础系列——数据库查询数据返回前台JSP(一)
2013-10-10 21:25
691 查看
经过一段时间停顿,终于提笔来重新整理mongodb基础系列博客了。
同时也很抱歉,由于各种原因,没有及时整理出,今天做了一个demo,来演示,mongodb数据库查询的数据在JSP显示问题。
做了一个简单的测试,不过基本上能满足前台展示的问题,若有问题,可以及时联系我,及时沟通。
在上篇博客<<mongodb基础系列——java操作mongodb实现CURD>>中,当时查看数据如下,无论是查看所有还有查看具体。
同时网上很多篇博客,也都是如此查看。那若界面需要后台数据咋办?到底怎么传递过去啊?
想想咱们程序是如何传递过去的,查询操作,无非是传递List、Map、具体实体对象。
OK,既然想到如此,那在你对mongdb一无所知时,其API是最好的入口处。通过API,发现DBCursor类有个方法toArray,其返回值为List,OK,发现这个方法后,其问题已经解决了50%啦。
继续……
上述代码中数据结果,可以发现其实是JSON对。
那看看输出List结果如下:
其实List其上的数组而已。
那我们测试这个list,JSP就显示输出name、复核地址中的city、code
提示:测试Demo使用Jquery的Ajax做测试。
步骤:
第一:后台Dao的查询方法。与上篇博客基本一样,只是方法返回值不同而已。
第二:搭建JSP与后台的桥梁,在此使用Servlet,没有配置Struts【有点嫌麻烦】,写简单的Servlet,配置Servlet【在web.xml中配置,不在此给出了,后面有具体demo】
其中doGet方法中,因为前台使用Ajax,所以应该写到response中,使用response的getWriter,当然也可以使用Struts2Util【若使用struts2】。
第三:前端JSP使用Ajax调用,来获取name、city、code值。
Ajax中的成功返回的d,是个object对象,准确的说是JSON对象,为了方便客户看,转换成字符串.JSON.stringfy(object)
为啥是用d[0]呢?
因为返回的d是个数组,[]包围的。打印的d是[],所以以数组方式显示。
若返回的不是数组形式,比如不用[],结果如下:
这样的话:前台Ajax展示如下:直接使用d.name、d.id、d.address.city
通过这种方式基本可以获取其中的某值,若付给某个字段,可以通过jquery赋值。
比如$("#id值").val(d.name); //类似这种形式赋值。
下篇博客,给出常规table如何显示list以及ligerui中显示查询的数据的demo。
至于博客中项目demo,点我下载~~
同时也很抱歉,由于各种原因,没有及时整理出,今天做了一个demo,来演示,mongodb数据库查询的数据在JSP显示问题。
做了一个简单的测试,不过基本上能满足前台展示的问题,若有问题,可以及时联系我,及时沟通。
在上篇博客<<mongodb基础系列——java操作mongodb实现CURD>>中,当时查看数据如下,无论是查看所有还有查看具体。
//查询所有 //其中类似access数据库中游标概念 DBCursor cursor=collection.find(); System.out.println("mongodb中的user表结果如下:"); while(cursor.hasNext()){ System.out.println(cursor.next()); }
同时网上很多篇博客,也都是如此查看。那若界面需要后台数据咋办?到底怎么传递过去啊?
想想咱们程序是如何传递过去的,查询操作,无非是传递List、Map、具体实体对象。
OK,既然想到如此,那在你对mongdb一无所知时,其API是最好的入口处。通过API,发现DBCursor类有个方法toArray,其返回值为List,OK,发现这个方法后,其问题已经解决了50%啦。
继续……
上述代码中数据结果,可以发现其实是JSON对。
{ "_id" : { "$oid" : "52564aa6b16b9c6f728c0cf8"} , "id" : 1 , "name" : "小明" , "address" : { "city" : "beijing" , "code" : "065000"}}
那看看输出List结果如下:
List<DBObject> list=cursor.toArray(); System.out.println(list.toString()); return list;
其实List其上的数组而已。
[{ "_id" : { "$oid" : "52564aa6b16b9c6f728c0cf8"} , "id" : 1 , "name" : "小明" , "address" : { "city" : "beijing" , "code" : "065000"}}]
那我们测试这个list,JSP就显示输出name、复核地址中的city、code
提示:测试Demo使用Jquery的Ajax做测试。
步骤:
第一:后台Dao的查询方法。与上篇博客基本一样,只是方法返回值不同而已。
public static List selectAll() throws Exception{ //第一:实例化mongo对象,连接mongodb服务器 包含所有的数据库 //默认构造方法,默认是连接本机,端口号,默认是27017 //相当于Mongo mongo =new Mongo("localhost",27017) Mongo mongo =new Mongo(); //第二:连接具体的数据库 //其中参数是具体数据库的名称,若服务器中不存在,会自动创建 DB db=mongo.getDB("myMongo"); //第三:操作具体的表 //在mongodb中没有表的概念,而是指集合 //其中参数是数据库中表,若不存在,会自动创建 DBCollection collection=db.getCollection("user"); //查询操作 //查询所有 //其中类似access数据库中游标概念 DBCursor cursor=collection.find(); System.out.println("mongodb中的user表结果如下:"); /* while(cursor.hasNext()){ System.out.println(cursor.next()); }*/ List<DBObject> list=cursor.toArray(); System.out.println(list.size()); System.out.println("dao.."+list.toString()); return list; }
第二:搭建JSP与后台的桥梁,在此使用Servlet,没有配置Struts【有点嫌麻烦】,写简单的Servlet,配置Servlet【在web.xml中配置,不在此给出了,后面有具体demo】
其中doGet方法中,因为前台使用Ajax,所以应该写到response中,使用response的getWriter,当然也可以使用Struts2Util【若使用struts2】。
@Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { List list=new EntityTest().selectAll(); response.setCharacterEncoding("UTF-8");//解决显示中文乱码问题 response.getWriter().write(list.toString()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
第三:前端JSP使用Ajax调用,来获取name、city、code值。
<body> <input type="button" value="test" onclick="testajax()" /> </body>
function testajax() { var _url = "http://localhost:8080/testmongodb/mongodb/"; jQuery.ajax({ url : _url, type : "get", dataType : "json", success : function(d) { alert(JSON.stringify(d)); alert(d[0].name); alert(d[0].address.code); } }); }
Ajax中的成功返回的d,是个object对象,准确的说是JSON对象,为了方便客户看,转换成字符串.JSON.stringfy(object)
为啥是用d[0]呢?
因为返回的d是个数组,[]包围的。打印的d是[],所以以数组方式显示。
若返回的不是数组形式,比如不用[],结果如下:
response.getWriter().write(list.get(0).toString());
{ "_id" : { "$oid" : "52564aa6b16b9c6f728c0cf8"} , "id" : 1 , "name" : "小明" , "address" : { "city" : "beijing" , "code" : "065000"}}
这样的话:前台Ajax展示如下:直接使用d.name、d.id、d.address.city
success : function(d) { alert(JSON.stringify(d)); alert(d.name); alert(d.address.code); }
通过这种方式基本可以获取其中的某值,若付给某个字段,可以通过jquery赋值。
比如$("#id值").val(d.name); //类似这种形式赋值。
下篇博客,给出常规table如何显示list以及ligerui中显示查询的数据的demo。
至于博客中项目demo,点我下载~~
相关文章推荐
- mongodb基础系列——数据库查询数据返回前台JSP(一)
- mongodb基础系列——数据库查询数据返回前台JSP(一)
- mongodb基础系列——数据库查询数据返回前台JSP(二)
- mongodb基础系列——数据库查询数据返回前台JSP(二)
- jsp数据库基础之---从MySQL数据库中查询数据
- 模糊查询,从数据库获取值,返回前台JSP的方法。
- 数据库基础系列之七:IMP数据到指定的表空间
- php实现查询数据库返回json数据
- TP5 实现查询数据库返回json数据(返回json数据函数实例)
- 前台jsp获取后台查询的结果集数据并实现分页显示
- JAVA实践-mybatis中junit查询无结果返回,数据库查询有数据
- jquery与后台进行数据交互--前台发单一数据对象,后台返回一个json字符串 jsp页面
- node里面连接mongodb查询返回一天的数据(根据时间段查询)
- 查询数据库时如何把数据按照字段名和字段值的数据返回
- python数据库sqlite基础(一)-------数据库创建,表的建立,数据录入,数据查询
- 根据id查询数据(向前台返回json格式的数据)
- 关系型数据库基础之:简单的数据查询
- 数据库中的记录通过servlet回显到jsp页面中(连接数据库或者查询參照:对数据进行增删改查)
- ajax动态查询数据库数据并显示在前台
- java mongodb 基础系列---查询,排序,limit,$in,$or,输出为list,创建索引,$ne 非操作