MongoDB_CURD------java

闲来无事,搞个基本操作的例子上来分享下。

入门相对简单的CURD操作。采用struts2框架,页面是jsp,jquery。页面相对简单,完成基本操作。

1. 需要导入mongoDB的.jar 文件。

2. 工具类的方法

package service;

import java.net.UnknownHostException; import java.util.ArrayList; import java.util.List;

import org.bson.types.ObjectId;

import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.DBObject; import com.mongodb.Mongo; import com.mongodb.MongoException;

public class QueryDB {

 private Mongo mg = null;  

private DB db;  

private DBCollection users;    

public void init() {   

try {    

mg = new Mongo();    

// mg = new Mongo("localhost", 27017);   

} catch (UnknownHostException e) {    

e.printStackTrace();   

} catch (MongoException e) {

   e.printStackTrace();   

}   // 获取temp DB;如果默认没有创建,mongodb会自动创建   db = mg.getDB("test");   // 获取users DBCollection;如果默认没有创建,mongodb会自动创建   users = db.getCollection("users");  

}

 public List queryAll() {   

System.out.println("查询所有数据");   

List mList = new ArrayList();   

DBCursor cur = users.find();   //db.   

while (cur.hasNext()) {    

//print(cur.next());    

mList.add(cur.next());   

}   

System.out.println("mList.size():"+mList.size());   return mList;

 }    

public void update (String _id,DBObject user){

  print("修改id = 5211c751afd00ac1d2499a88:"+      users.update (new BasicDBObject("_id", new ObjectId(_id)), user).getN());     

}    

public void remove(String _id){   

print("删除id = "+_id+":"+ users.remove(new BasicDBObject("_id", new ObjectId(_id))).getN());  

}  

 public void add(DBObject user){     

print(user.get("name")+"\t"+user.get("age")+"\t"+user.get("sex"));      print(users.save(user).getN());

 }

 public void destory() {   if (mg != null)    mg.close();   mg = null;   db = null;   users = null;   System.gc();  }

 public void print(Object o) {   System.out.println(o);  } }

3.往常一样,写一个再熟悉不过的action。

package action;

import java.util.ArrayList; import java.util.HashMap; import java.util.List;

import org.bson.types.ObjectId;

import service.QueryDB;

import com.mongodb.BasicDBObject; import com.mongodb.DBCursor; import com.mongodb.DBObject; import com.opensymphony.xwork2.ActionSupport;

/**  * @title :UserListAction  * @version V1.0  */

public class UserListAction extends ActionSupport {    

private static final long serialVersionUID = 4063690737356735922L;  

List<DBObject> MList = new ArrayList<DBObject>();    

private String _id;

 private String name;

 private String age;  

private String sex;    

//查询列表  

public String execute() {   

QueryDB  qb=new QueryDB();   

qb.init();   

setMList(qb.queryAll());   

System.out.println("action-mList.size:"+MList.size());   

for(int i=0;i<MList.size();i++){    

System.out.println(MList.get(i));  

 }   

return SUCCESS;  }

   //更新数据库  public String update(){  

 QueryDB  qb=new QueryDB();   

qb.init();   

DBObject user = new BasicDBObject();     

user.put("name", name);     

user.put("age", age);     

user.put("sex", sex);          

qb.print(_id+"\t"+user);        

qb.update(_id, user);        

 return SUCCESS;

 }    

public String del(){   

QueryDB  qb=new QueryDB();  

 qb.init();   

qb.remove(_id);   

return SUCCESS;  }        

public String add(){   

QueryDB  qb=new QueryDB();  

 qb.init();   DBObject user = new BasicDBObject();     

user.put("name", name);     

user.put("age", age);     

user.put("sex", sex);     

qb.add(user);               

return SUCCESS;  

}    

一大堆的get,set 方法。不写了

 

配置文件也不多说,直接上代码:

 <package name="struts" extends="struts-default" namespace="">

     <action name="userList" class="action.UserListAction">    <result>/index.jsp</result>   </action>      <action name="userUpdate" class="action.UserListAction" method="update">    <result  name="success" type="chain">userList</result>   </action>   <action name="userdel" class="action.UserListAction" method="del">    <result  name="success" type="chain">userList</result>   </action>   <action name="useradd" class="action.UserListAction" method="add">    <result  name="success" type="chain">userList</result>   </action>  </package> </struts>

    

 

4.写jsp页面。

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <% String path = request.getContextPath();  %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

<link href="./front.css" media="screen, projection" rel="stylesheet" type="text/css">

<script type="text/javascript"  src="./js/jquery-1.3.2.min.js"></script>

</head>

<body>

<div> <span>name:<input type="text" id="a_name"></span>

<span>sex:<input type="text" id="a_sex"></span>

<span>age:<input type="text" id="a_age"></span>

<span><input type="button" id="add" value="ADD" onclick="addRow();"></span> </div>

<fieldset id="signin_menu">    

<form method="post" id="signin" action="./userUpdate.do">      

<label >_id</label>       <input id="_id" name="_id" value="" title="_id" tabindex="4" type="text">       </p>       <p>        

<label >name</label>         <input id="name" name="name" value="" title="name" tabindex="5" type="text">       </p>   <p>        

<label >sex</label>         <input id="sex" name="sex" value="" title="sex" tabindex="5" type="text">       </p>       <p>        

<label >age</label>         <input id="age" name="age" value="" title="age" tabindex="5" type="text">       </p>      

<p class="remember">         <input id="signin_submit" value="提交" tabindex="6" type="submit">         <input id="signin_close" value="close" tabindex="6" type="button"  >       </p>    

</form>  

</fieldset>      

<table border="1" align="center" width="500"  style="border-collapse:collapse;">

<tr align="center"> <td>_id</td> <td>name</td> <td>age</td> <td>sex</td> <td>操作</td> </tr>

 ----------------------------MongoDB-CURD操作--------------------------------------  

<s:iterator id="li" value="MList">   

<tr align="center">    <td ><s:property value="_id"/></td>    <td><s:property value="name"/></td>    <td><s:property value="age"/></td>    <td><s:property value="sex"/></td>    <td> <div id="topnav" >

<a href="javascript:updateF('<s:property value="_id"/>','<s:property value="name"/>','<s:property value="age"/>','<s:property value="sex"/>')"   id="signin" title="修改">       

<span >UPDATE</span></a>&nbsp;&nbsp;&nbsp;       

<a href="#"  title="删除" onclick="delRow('<s:property value="_id"/>')"><span>DELETE</span></a> </div>    </td>   </tr>            

</s:iterator> </table> <script>

function updateF(_id,name,age,sex){  

//alert(_id+"\t"+name+"\t"+age+"\t"+sex);  

$('#_id').val(_id);  

$('#name').val(name);  

$('#age').val(age);  

$('#sex').val(sex);    

$("fieldset#signin_menu").toggle();  

$("#signin").toggleClass("menu-open"); }

function delRow(id){  

$.ajax({   

url:'<%=path%>/userdel.action',   

type: "post",   

data:{_id:id},   

success:function(r){    

//alert(r);   

 location.reload();   }  

});

}

function addRow(){  

var a_name=$('#a_name').val();  

var a_age=$('#a_age').val();  

var a_sex=$('#a_sex').val();  

$.ajax({   

url:'<%=path%>/useradd.action',  

 type: "post",   

data:{name:a_name,age:a_age,sex:a_sex},   

success:function(r){   

 //alert(r);    

$('#a_name').val("");    

$('#a_age').val("");    

$('#a_sex').val("");    

location.reload();   }  

});

}

$(document).ready(function() {

          $("fieldset#signin_menu").mouseup(function() {

      return false  });  

$("#signin_close").click(function(e) {  

 if($(e.target).parent("a.signin").length==0) {

   $(".signin").removeClass("menu-open");

   $("fieldset#signin_menu").hide();   

}  

});   

});

</script>

<script src="javascripts/jquery.tipsy.js" type="text/javascript"></script>

<script type='text/javascript'>    

$(function() {   

$('#forgot_username_link').tipsy({gravity: 'w'});  

    });  

</script>

</body>

</html>

 

jquery.tipsy.js

 

(function($) {     $.fn.tipsy = function(opts) {

        opts = $.extend({fade: false, gravity: 'n'}, opts || {});         var tip = null, cancelHide = false;

        this.hover(function() {                         $.data(this, 'cancel.tipsy', true);

            var tip = $.data(this, 'active.tipsy');             if (!tip) {                 tip = $('<div class="tipsy"><div class="tipsy-inner">' + $(this).attr('title') + '</div></div>');                 tip.css({position: 'absolute', zIndex: 100000});                 $(this).attr('title', '');                 $.data(this, 'active.tipsy', tip);             }                         var pos = $.extend({}, $(this).offset(), {width: this.offsetWidth, height: this.offsetHeight});             tip.remove().css({top: 0, left: 0, visibility: 'hidden', display: 'block'}).appendTo(document.body);             var actualWidth = tip[0].offsetWidth, actualHeight = tip[0].offsetHeight;                         switch (opts.gravity.charAt(0)) {                 case 'n':                     tip.css({top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}).addClass('tipsy-north');                     break;                 case 's':                     tip.css({top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}).addClass('tipsy-south');                     break;                 case 'e':                     tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}).addClass('tipsy-east');                     break;                 case 'w':                     tip.css({top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}).addClass('tipsy-west');                     break;             }

            if (opts.fade) {                 tip.css({opacity: 0, display: 'block', visibility: 'visible'}).animate({opacity: 1});             } else {                 tip.css({visibility: 'visible'});             }

        }, function() {             $.data(this, 'cancel.tipsy', false);             var self = this;             setTimeout(function() {                 if ($.data(this, 'cancel.tipsy')) return;                 var tip = $.data(self, 'active.tipsy');                 if (opts.fade) {                     tip.stop().fadeOut(function() { $(this).remove(); });                 } else {                     tip.remove();                 }             }, 100);                     });

    }; })(jQuery);

front.css

a {  color: #1E608E;  text-decoration:none;  outline: none; }

.tipsy {  opacity:.8;  filter:alpha(opacity=80);  background-repeat:no-repeat;  padding:5px; } .tipsy-inner {  padding:8px 8px;  max-width:200px;  font:11px 'Lucida Grande', sans-serif;  font-weight:bold;  -moz-border-radius:4px;  -khtml-border-radius:4px;  -webkit-border-radius:4px;  border-radius:4px;  background-color:#000;  color:white;  text-align:left; } .tipsy-north {  background-image:url(http://s.twimg.com/a/1249943174/images/tipsy/tipsy-north.gif);  background-position:top center; } .tipsy-south {  background-image:url(http://s.twimg.com/a/1249943174/images/tipsy/tipsy-south.gif);  background-position:bottom center; } .tipsy-east {  background-image:url(http://s.twimg.com/a/1249943174/images/tipsy/tipsy-east.gif);  background-position:right center; } .tipsy-west {  background-image:url(http://s.twimg.com/a/1249943174/images/tipsy/tipsy-west.gif);  background-position:left center; } body {  margin:0;  padding:0;  font:13px/16px "Lucida Grande", Arial, Sans-serif;  color:#789;  background-color: #ddeef6;  background-image: url(http://s.twimg.com/a/1249943174/images/front-bg.gif);  background-repeat: repeat; } #container {  width:780px;  margin:0 auto; }

#content {  width:520px;  min-height:500px; } a:link, a:visited {  color:#27b;  text-decoration:none; } a:hover {  text-decoration:underline; } a img {  border-width:0; } #topnav {  padding:10px 25px 12px;  font-size:11px;  line-height:23px;  text-align:right; } #topnav a.signin {  background:#88bbd4;  padding:4px 6px 6px;  text-decoration:none;  font-weight:bold;  color:#fff;  -webkit-border-radius:4px;  -moz-border-radius:4px;  border-radius:4px;  *background:transparent url("http://s.twimg.com/a/1249943174/images/signin-nav-bg-ie.png") no-repeat 0 0;  *padding:4px 12px 6px; } #topnav a.signin:hover {  background:#59B;  *background:transparent url("http://s.twimg.com/a/1249943174/images/signin-nav-bg-hover-ie.png") no-repeat 0 0;  *padding:4px 12px 6px; } #topnav a.signin, #topnav a.signin:hover {  *background-position:0 3px!important; }

a.signin {  position:relative;  margin-left:3px; } a.signin span {  background-image:url("http://s.twimg.com/a/1249943174/images/toggle_down_light.png");  background-repeat:no-repeat;  background-position:100% 50%;  padding:4px 16px 6px 0; } #topnav a.menu-open {  background:#ddeef6!important;  color:#666!important;  outline:none; } #small_signup {  display:inline;  float:none;  line-height:23px;  margin:25px 0 0;  width:170px; } a.signin.menu-open span {  background-image:url("http://s.twimg.com/a/1249943174/images/toggle_up_dark.png");  color:#789; }

#signin_menu {  -moz-border-radius-topleft:5px;  -moz-border-radius-bottomleft:5px;  -moz-border-radius-bottomright:5px;  -webkit-border-top-left-radius:5px;  -webkit-border-bottom-left-radius:5px;  -webkit-border-bottom-right-radius:5px;  display:none;  background-color:#ddeef6;  position:absolute;  width:210px;  z-index:100;  border:1px transparent;  text-align:left;  padding:10px;  margin-left:-8px;  *margin-left:-15px;  margin-top:5px;  color:#789;  font-size:11px; }

#signin_menu input[type=text], #signin_menu input[type=password] {  display:block;  -moz-border-radius:4px;  -webkit-border-radius:4px;  border:1px solid #ACE;  font-size:13px;  margin:0 0 5px;  padding:5px;  width:203px; } #signin_menu p {  margin:0; } #signin_menu a {  color:#6AC; } #signin_menu label {  font-weight:normal; } #signin_menu p.remember {  padding:10px 0; } #signin_menu p.forgot, #signin_menu p.complete {  clear:both;  margin:5px 0; } #signin_menu p a {  color:#27B!important; } #signin_submit {  -moz-border-radius:4px;  -webkit-border-radius:4px;  background:#39d url('http://s.twimg.com/a/1249943174/images/bg-btn-blue.png') repeat-x scroll 0 0;  border:1px solid #39D;  color:#fff;  text-shadow:0 -1px 0 #39d;  padding:4px 10px 5px;  font-size:11px;  margin:0 5px 0 0;  font-weight:bold; } #signin_submit::-moz-focus-inner { padding:0; border:0; } #signin_submit:hover, #signin_submit:focus {  background-position:0 -5px;  cursor:pointer; }

.tipsy-inner {  padding:10px 15px;  line-height:1.5em;  font-weight:bold; } .ie6 .tipsy {  width:250px; } .signup-tip {  line-height:18px;  margin:30px 0;  color:#333; } .signup-tip a {  font-weight:bold; } }

这张是背景图

代码 copy 直接可用。qq:1257325678.可直接要代码。

posted @ 2013-08-21 17:47  漠_北  阅读(122)  评论(0)    收藏  举报