81,092
社区成员
发帖
与我相关
我的任务
分享
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));
}
}