MongoDB-Java使用例子分享

达达伦 2014-05-12 05:06:27
加精
工具类: MongoDBUtil.java
内容比较简单,楼主比较懒,注释比较少

import java.io.File;
import java.io.IOException;
import java.net.UnknownHostException;
import java.util.List;
import java.util.Map;

import test.entity.User;

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;
import com.mongodb.gridfs.GridFS;
import com.mongodb.gridfs.GridFSDBFile;
import com.mongodb.gridfs.GridFSInputFile;

public final class MongoDBUtil
{
private static Mongo mongo = null;

private static DB db = null;

/**
* 初始化
*/
public static void init()
{
try
{
mongo = new Mongo("localhost", 30002);
}
catch (UnknownHostException e)
{
System.out.println(e.toString());
}
catch (MongoException e)
{
System.out.println(e.toString());
}

if (null != mongo)
{
db = mongo.getDB("test");
}
}

public static Mongo getMongo()
{
if (null == mongo)
{
init();
}

return mongo;
}

/**
* 获取DB
* @return DB
*/
public static DB getDB()
{
if (null == mongo)
{
init();
}

return db;
}

/**
* 获取User Collection
* @return DBCollection
*/
public static DBCollection getUserCollection()
{
if (null == db)
{
db = getDB();
}

if (null != db)
{
return db.getCollection("data");
}

return null;
}

public static void deleteAllUsers()
{
System.out.println("删除User Collection中所有数据...");

DBCollection collection = getUserCollection();

DBCursor cursor = collection.find();
while(cursor.hasNext())
{
collection.remove(cursor.next());
}

System.out.println("================================================================");
}

public static void queryAllUsers()
{
System.out.println("查询User Collection中所有数据:");

DBCollection collection = getUserCollection();

// Collection游标
DBCursor cur = collection.find();
while (cur.hasNext())
{
System.out.println(cur.next());
}

System.out.println("================================================================");
}

/**
* 保存用户信息
* @param user User
*/
public static void saveUser(User user)
{
System.out.println("保存用户信息:" + user.toString());
DBCollection userCollection = getUserCollection();
userCollection.insert(user.toBasicDBObject());
System.out.println("================================================================");
}

/**
* 更新用户信息
* @param user
*/
public static void update(User user)
{
System.out.println("更新用户信息:" + user.toString());
DBCollection userCollection = getUserCollection();
userCollection.update(new BasicDBObject().append("name", user.getName()), user.toBasicDBObject());
System.out.println("================================================================");
}

/**
* 增加用户更新次数
* @param userName 用户名
*/
public static void incUserUpdateTimes(String userName)
{
DBCollection userCollection = getUserCollection();
BasicDBObject newDocument =new BasicDBObject().append("$inc", new BasicDBObject().append("updateTimes", 1));
userCollection.update(new BasicDBObject().append("name", userName), newDocument);
}

/**
* 更新用户名
* @param oldName 旧用户名
* @param newName 新用户名
*/
public static void updateUserName(String oldName, String newName)
{
DBCollection userCollection = getUserCollection();
BasicDBObject newDocument =new BasicDBObject().append("$set", new BasicDBObject().append("name", newName));
userCollection.update(new BasicDBObject().append("name", oldName), newDocument);
}

/**
* 更新User Age
* @param userName 用户名
* @param age Age
*/
public static void updateUserAge(String userName, int age)
{
DBCollection userCollection = getUserCollection();
BasicDBObject newDocument =new BasicDBObject().append("$set", new BasicDBObject().append("age", age));
userCollection.update(new BasicDBObject().append("name", userName), newDocument);
}

public static void updateUsersUpdateTimesByAge(int age, int updateTimes)
{
DBCollection userCollection = getUserCollection();
BasicDBObject updateQuery =new BasicDBObject().append("$set", new BasicDBObject().append("updateTimes", updateTimes));
userCollection.update(new BasicDBObject().append("age", age), updateQuery, false, true);
}

public static User queryUserByName(String userName)
{
DBCollection userCollection = getUserCollection();
BasicDBObject query =new BasicDBObject();
query.put("name", userName);
User user = null;

DBCursor cursor = userCollection.find(query);
while(cursor.hasNext())
{
DBObject DBObject = cursor.next();

@SuppressWarnings("unchecked")
Map<String, Object> userMap = (Map<String, Object>) DBObject.toMap();

user = new User();
user.setName(String.valueOf(userMap.get("name")));
user.setAge(Integer.valueOf(String.valueOf(userMap.get("age"))));
user.setUpdateTimes(Integer.valueOf(String.valueOf(userMap.get("updateTimes"))));

System.out.println(user.toString());
}

return user;
}

public static void queryUserByAge(List<Integer> ageList)
{
DBCollection userCollection = getUserCollection();
BasicDBObject query =new BasicDBObject();
query.put("age", new BasicDBObject("$in", ageList));
DBCursor cursor = userCollection.find(query);
while(cursor.hasNext())
{
System.out.println(cursor.next());
}
}

public static void queryUserByGreatThanAge(int age)
{
DBCollection userCollection = getUserCollection();
BasicDBObject query =new BasicDBObject();
query.put("age", new BasicDBObject("$gt", age));
DBCursor cursor = userCollection.find(query);
while(cursor.hasNext())
{
System.out.println(cursor.next());
}
}

public static void queryUserByLessThanAge(int age)
{
DBCollection userCollection = getUserCollection();
BasicDBObject query =new BasicDBObject();
query.put("age", new BasicDBObject("$lt", age));
DBCursor cursor = userCollection.find(query);
while(cursor.hasNext())
{
System.out.println(cursor.next());
}
}

public static void queryUserNotEquireAge(int age)
{
DBCollection userCollection = getUserCollection();
BasicDBObject query =new BasicDBObject();
query.put("age", new BasicDBObject("$ne", age));
DBCursor cursor = userCollection.find(query);
while(cursor.hasNext())
{
System.out.println(cursor.next());
}
}

public static void deleteUserByName(String userName)
{
DBCollection userCollection = getUserCollection();
BasicDBObject document =new BasicDBObject();
document.put("name", userName);
userCollection.remove(document);
}

public static void deleteUserByNameList(List<String> nameList)
{
DBCollection userCollection = getUserCollection();
BasicDBObject query =new BasicDBObject();
query.put("name", new BasicDBObject("$in", nameList));
userCollection.remove(query);
}

public static void saveImg() throws IOException
{
String newFileName ="newImg";
File imageFile =new File("d:/Sunset.jpg");
GridFS gfsPhoto =new GridFS(getDB(), "data");
GridFSInputFile gfsFile = gfsPhoto.createFile(imageFile);
gfsFile.setFilename(newFileName);
gfsFile.save();
}

public static void getImgInfo()
{
String newFileName ="newImg";
GridFS gfsPhoto =new GridFS(getDB(), "data");
GridFSDBFile imageForOutput = gfsPhoto.findOne(newFileName);
System.out.println(imageForOutput);
}

public static void getAllImgInfo()
{
GridFS gfsPhoto =new GridFS(getDB(), "data");
DBCursor cursor = gfsPhoto.getFileList();
while(cursor.hasNext())
{
System.out.println(cursor.next());
}
}

public static void getImg() throws IOException
{
String newFileName ="newImg";
GridFS gfsPhoto =new GridFS(getDB(), "data");
GridFSDBFile imageForOutput = gfsPhoto.findOne(newFileName);
imageForOutput.writeTo("d:/newImg.jpg");
}

public static void deleteImg()
{
String newFileName ="newImg";
GridFS gfsPhoto =new GridFS(getDB(), "data");
gfsPhoto.remove(gfsPhoto.findOne(newFileName));
}
}


...全文
4814 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
yutian198 2015-07-09
  • 打赏
  • 举报
回复
有没有遇到过DateTime类型的,Java读取类型不匹配的问题?
yangjie1220 2014-05-20
  • 打赏
  • 举报
回复
感谢楼主分享!
寻-梦 2014-05-15
  • 打赏
  • 举报
回复
支持下!~
拾毅者 2014-05-15
  • 打赏
  • 举报
回复
多谢楼主分享。
honey_fansy 2014-05-14
  • 打赏
  • 举报
回复
不错,学习了
austin9972 2014-05-14
  • 打赏
  • 举报
回复
wf_kingofring 2014-05-14
  • 打赏
  • 举报
回复
卖水果的net 2014-05-14
  • 打赏
  • 举报
回复
csharpSun 2014-05-14
  • 打赏
  • 举报
回复
不明白,是起什么作用的。
is67liu 2014-05-14
  • 打赏
  • 举报
回复
感谢 楼主 分享
_skyfish 2014-05-14
  • 打赏
  • 举报
回复
MogoDB是什么?为什么这么重要,看玩这些你就懂了: http://gkkgo.com/search?q=MongoDB
999朵玫瑰 2014-05-13
  • 打赏
  • 举报
回复
过来看看,谢谢
夕阳下的高山 2014-05-13
  • 打赏
  • 举报
回复
代码简单,不错!!
达达伦 2014-05-12
  • 打赏
  • 举报
回复
等有空我再整理一下memcached和redis的java应用和使用配置给大家一起学习~
teemai 2014-05-12
  • 打赏
  • 举报
回复
很简单。。;-)
lajiqianglei 2014-05-12
  • 打赏
  • 举报
回复
代码简单,不错!!
zengchuisheng 2014-05-12
  • 打赏
  • 举报
回复
代码不错 看了很久
-江沐风- 2014-05-12
  • 打赏
  • 举报
回复
想有机会关注一下Mongodb;
xyface 2014-05-12
  • 打赏
  • 举报
回复
很好,力挺楼主
xyface 2014-05-12
  • 打赏
  • 举报
回复
很好,力挺楼主
加载更多回复(2)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧