永发信息网

如何用spring集成mongodb实现文件上传

答案:2  悬赏:30  手机版
解决时间 2021-01-25 00:23
如何用spring集成mongodb实现文件上传
最佳答案
首先要把必要的MongoDB需要的jar加进项目中
定义mongoDB的bean
[html] view plain copy




自定义实现mongodb增删改实体类
[html] view plain copy




定义mongoClient基础类
[java] view plain copy
public class MongoDB {
private MongoClient mongoClient;
private String dbName;

public DB getDB() {
return mongoClient.getDB(dbName);
}
public MongoClient getMongoClient() {
return mongoClient;
}
public void setMongoClient(MongoClient mongoClient) {
this.mongoClient = mongoClient;
}
public String getDbName() {
return dbName;
}
public void setDbName(String dbName) {
this.dbName = dbName;
}
}
定义mongodb操作Dao类
[java] view plain copy

public T save(T bean) {
String beanJson = JsonUtil.getJSONString(bean);
DBCollection collection = mongoDB.getDB().getCollection(clazz.getSimpleName());
collection.save((DBObject)JSON.parse(beanJson));
return bean;
}

public void remove(String id) {
DBCollection collection = mongoDB.getDB().getCollection(clazz.getSimpleName());
BasicDBObject doc = new BasicDBObject();
doc.put("_id", id);
collection.remove(doc);
}

public void update(BasicDBObject query, BasicDBObject newDoc) {
DBCollection collection = mongoDB.getDB().getCollection(clazz.getSimpleName());
collection.update(query, newDoc);
}
定义保存文件类
[java] view plain copy

public void save(InputStream in, String id, String fileName, String contentType, String downloadName) {
GridFS fs = new GridFS(mongoDB.getDB(), this.getClass().getSimpleName());
GridFSInputFile fsFile = fs.createFile(in);
fsFile.setId(id);
fsFile.setFilename(fileName);
fsFile.setContentType(contentType);
fsFile.put("downloadName", downloadName);
fsFile.save();
}

public void remove(String id) {
GridFS fs = new GridFS(mongoDB.getDB(), this.getClass().getSimpleName());
BasicDBObject query = new BasicDBObject("_id", id);
fs.remove(query);
}

public void batchRemove(String... ids) {
GridFS fs = new GridFS(mongoDB.getDB(), this.getClass().getSimpleName());
for(String id : ids){
BasicDBObject query = new BasicDBObject("_id", id);
fs.remove(query);
}
}
全部回答
mongodb struts spring集成使用方法: 1、 定义mongo对象,对应的是mongodb官方jar包中的mongo,replica-set设置集群副本的ip地址和端口 2、定义mongo的工厂,通过它来取得mongo实例,dbname为mongodb的数据库名,没有的话会自动创建 3、 mongodb的主要操作对象,所有对mongodb的增删改查的操作都是通过它完成 4、 映射转换器,扫描back-package目录下的文件,根据注释,把它们作为mongodb的一个collection的映射
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
吉林大学软件工程专业实力如何?就业前景如何
口袋妖怪漆黑的魅影4.5草系精灵去哪里升级
华为mate8联通定制版怎么用电信卡
一个女人对我说她晚上想男人了,我该怎么安慰
和睦相处 相安无事 日语怎么说?
南浔1+1教育辅导中心地址有知道的么?有点事
软件到底装在系统盘好,还是其他盘好?
收市前最后一笔大成交量是怎么回事?
请问,喝干红葡萄酒会抵御电脑辐射吗?,
杭州萧山机场 早上七点十五飞机,机场大巴从
景田百岁山(玉泉路18-20)地址好找么,我有些
海口开心农场-洗手间地址在什么地方,想过去
现金借款借1000还多少
有两个完全相同的三角形,其中有两个角分别是
在手机上下什么软件能查车辆违章
推荐资讯
关于城市的职能和服务范围,叙述正确的是A.
【形容茉莉最经典诗句】写一个描写茉莉花的句
韩爵婚纱摄影&好日子婚礼(旗舰店)地
2015年7月10日早上十点出生的,属什么命?取
从问题补充当中,选用5个用词语写一句话.注意,
老煤场停车场(出入口)地址在什么地方,想过去
建筑工地工伤归哪个部门管?
霸王防脱发洗发水去药店买还是去超市买??
黑球记录仪和360哪个好
蛋白质是生命活动的主要承担者,下列说法错误
荣成市公安局烟草专卖局稽查大队怎么去啊,我
dd潮鞋地址在什么地方,我要处理点事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?