下面的例子是把User对象插入到Mongodb中,并读出来
代码如下 | 复制代码 |
User.java: package com.mongo; public class User { String name; int age; Oid _id; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } /** * Mongodb会自动生成ObjectId * @author fhp * */ public class Oid{ String $oid; public String get$oid() { return $oid; } public void set$oid(String $oid) { this.$oid = $oid; } } } |
Main.java:
代码如下 | 复制代码 |
package com.mongo; import java.net.UnknownHostException; import com.google.gson.Gson; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.DBObject; import com.mongodb.MongoClient; import com.mongodb.util.JSON; public class Main { /** * @param args * @throws UnknownHostException */ public static void main(String[] args) throws UnknownHostException { // TODO Auto-generated method stub MongoClient mongoClient = new MongoClient(); DB psdoc = mongoClient.getDB("psdoc"); DBCollection user=psdoc.getCollection("user"); User u1=new User(); u1.setAge(20); u1.setName("ssss"); Gson gson=new Gson(); //转换成json字符串,再转换成DBObject对象 DBObject dbObject = (DBObject) JSON.parse(gson.toJson(u1)); //插入数据库 user.insert(dbObject); DBCursor cursor=user.find(); while(cursor.hasNext()) { DBObject obj=cursor.next(); //反转 User u=gson.fromJson(obj.toString(), User.class); System.out.println(u.name); } } } |
为了方便,可以直接把Gson整合进驱动里,直接修改驱动的源代码
com.mongodb.DBCollection.java:
新增方法:
代码如下 | 复制代码 |
/** * 把普通的对象写入数据库 * * @param obj * @return */ public WriteResult insert(Object obj) { Gson gson = new Gson(); DBObject dbObject = (DBObject) JSON.parse(gson.toJson(obj)); gson=null; return insert(dbObject); } com.mongodb.DBCursor.java: |
新增方法
代码如下 | 复制代码 |
/** * 从数据库读出对象 * @param obj * @param clazz * @return */ public _checkType( CursorType.ITERATOR ); Gson gson=new Gson(); T u=gson.fromJson(_next().toString(), clazz); gson=null; return u; } |
修改后的调用方法:
代码如下 | 复制代码 |
Main.java: package com.mongo; |
敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载像素火影骨架佐助 (Perseverance Fire Shadow)手机版v1.16
下载要塞英雄 安卓版v33.20.0-39082670-Android
下载梦想城镇vivo最新版本 安卓版v12.0.1
梦想城镇vivo版是这款卡通风模拟经营类手游的渠道服版本,玩
怦然心动的瞬间 安卓版v1.0
怦然心动的瞬间是一款真人向的恋爱互动游戏,在游戏中玩家将扮演
曼尼汉堡店游戏 安卓版v1.0.3
曼尼汉堡店是一款非常好玩的精品恐怖类型冒险游戏,在这款游戏中
现代总统模拟器去广告版 安卓版v1.0.46
现代总统模拟器是一款休闲养成类游戏,可能对于不少的玩家来说都
现代总统模拟器付费完整版 安卓版v1.0.46
现代总统模拟器高级版在商店是需要付费的,相对于普通版本,高级