博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javaWeb项目中集成MongoDB-3.x数据库
阅读量:7235 次
发布时间:2019-06-29

本文共 6845 字,大约阅读时间需要 22 分钟。

hot3.png

一、说明

1.可以知道的是mongodb2.x和3.x置是不同的。

2.这里只说明需要权限验证的配置

3.最好spring 4.2.6以上吧(反正我这样完成的配置测试修改 需要4.2.6版本)+MongoDB 3.2.13 其他的版本不清楚。

4.具体jar 不多说 版本如图 驱动3.2.1 ----spring支持mongodb 包1.10

输入图片说明

二、配置

1.spring-mongodb.xml

还查到一种配置

2.springMVC-context.xml

三、java 工具类+流程代码

1.mongodb操作模板MongoTemplate 在服务启动,spring-mongodb.xml加载时加载模板

package com.xxxx.mongoDao.daoImp;import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.data.mongodb.core.MongoTemplate;public abstract class AbstractBaseMongoTemplete implements ApplicationContextAware {	protected MongoTemplate mongoTemplate;	/**	 * @Description 根据配置文件设置mongoTemplate	 * @param mongoTemplate	 */	public void setMongoTemplate(MongoTemplate mongoTemplate) {		this.mongoTemplate = mongoTemplate;	}	@Override	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {		MongoTemplate mongoTemplate = applicationContext.getBean("mongoTemplate", MongoTemplate.class);		setMongoTemplate(mongoTemplate);		System.out.println("mongoTemplate===" + mongoTemplate);	}}

2.java实体--对应---Mongodb 中collection(table/集合)

import java.io.Serializable;public class UserModel implements Serializable {	private static final long serialVersionUID = 1L;	private String name;	private int age;	public UserModel(String name, int age) {		super();		this.name = name;		this.age = age;	}	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;	}	@Override	public String toString() {		return "UserModel [name=" + name + ", age=" + age + "]";	}}

3.Dao层接口UserDao

import java.util.List;import com.mongodb.BasicDBList;import com.mongodb.DBObject;public interface UserDao {	/**	 * 查询所有	 * 	 * @author lennon	 * @return	 * @time 2017-5-24 下午4:18:55	 * @version	 */	public List
findAll(); /** * 新增数据 * * @author lennon * @param user * @time 2017-5-24 下午4:19:08 * @version */ public void insertUser(UserModel user); /** * 删除数据 * * @author lennon * @param userName * @time 2017-5-24 下午4:19:17 * @version */ public void removeUser(String userName); /** * 修改数据 * * @author lennon * @param user * @time 2017-5-24 下午4:19:25 * @version */ public void updateUser(UserModel user); /** * 按条件查询 * * @author lennon * @param userName * @return * @time 2017-5-24 下午4:19:32 * @version */ public List
findForRequery(String userName); /** * mongodb简单的分组查询 * * @author lennon * @return * @time 2017-5-24 下午4:19:41 * @version */ public BasicDBList mongoGroup(); public void saveData(DBObject obj);}

接口实现类UserDaoImp** 注意(注解),具体实现还有待完善,也没有完全明白**

@Component("UserDaoImp")public class UserDaoImp extends AbstractBaseMongoTemplete implements UserDao {	@Override	public List
findAll() { // 需要设置集合对应的尸体类和相应的集合名,从而查询结果直接映射 System.out.println("mongoTemplate==" + mongoTemplate); List
userList = mongoTemplate.findAll(UserModel.class, "user"); return userList; } @Override public void insertUser(UserModel user) { // 设置需要插入到数据库的文档对象 DBObject object = new BasicDBObject(); object.put("name", user.getName()); object.put("age", user.getAge()); mongoTemplate.insert(object, "user"); } @Override public void removeUser(String userName) { // 设置删除条件,如果条件内容为空则删除所有 Query query = new Query(); Criteria criteria = new Criteria("name"); criteria.is(userName); query.addCriteria(criteria); mongoTemplate.remove(query, "user"); } @Override public void updateUser(UserModel user) { // 设置修改条件 Query query = new Query(); Criteria criteria = new Criteria("name"); criteria.is(user.getName()); query.addCriteria(criteria); // 设置修改内容 Update update = Update.update("age", user.getAge()); // 参数:查询条件,更改结果,集合名 mongoTemplate.updateFirst(query, update, "user"); } @Override public List
findForRequery(String userName) { Query query = new Query(); Criteria criteria = new Criteria("name"); criteria.regex(".*?" + "a" + ".*"); // criteria.is(userName); // Pattern pattern = Pattern.compile("^.*a.*$", // Pattern.CASE_INSENSITIVE); // DBObject object = new BasicDBObject(); // object.put("name", pattern); // criteria.is(object); // criteria. // query.addCriteria(criteria); // mongoTemplate.find(new Query(new Criteria( // "name").regex(".*?"+"张"+".*")).limit(9), User.class); // 查询条件,集合对应的实体类,集合名 query.addCriteria(criteria); List
userList = mongoTemplate.find(query, UserModel.class, userName); return userList; } @Override public BasicDBList mongoGroup() { // TODO Auto-generated method stub GroupBy groupBy = GroupBy.key("age").initialDocument("{count:0}").reduceFunction("function(doc, out){out.count++}").finalizeFunction("function(out){return out;}"); GroupByResults
res = mongoTemplate.group("test", groupBy, UserModel.class); DBObject obj = res.getRawResults(); BasicDBList dbList = (BasicDBList) obj.get("retval"); return dbList; } @Override public void saveData(DBObject obj) { mongoTemplate.save(obj, "test"); }}

4.controller 实现调用

/** * @author lennon *  */@Controllerpublic class MongoDb {	@Autowired	private UserDao userDao;		@RequestMapping(value = "setMongo")	public void setMongo(HttpServletRequest request, HttpServletResponse response) {		// userDao.findAll();		UserModel user = new UserModel("皇帝1", 10000);				userDao.insertUser(user);	}}

该例子只实现了 编译运行 简单操作没问题 做到对使用mongodb的了解,以后还要慢慢深入

转载于:https://my.oschina.net/u/1985317/blog/889425

你可能感兴趣的文章
Oracle之into
查看>>
【mac】mac上安装JDK
查看>>
JS面试题(一)
查看>>
C语言文件I/O
查看>>
python 使用__future__
查看>>
c# 串口问题
查看>>
低配置电脑播放 flash 视频时 占 cpu 资源过高的解决方法
查看>>
linux下ssh/sftp配置和权限设置
查看>>
js面向对象编程两个主要点
查看>>
Xml通用操作类
查看>>
CSS常见以及解决兼容办法
查看>>
含参数的二次不等式的解法【中级和高阶辅导】
查看>>
Windows Phone 8初学者开发—第9部分:Windows Phone 8模拟器概述
查看>>
利用border-radious画图形
查看>>
Java并发编程(二)同步
查看>>
linux下top命令查看cpu占用情况
查看>>
jenkins+maven+junit构建自动化测试,整合junit xml生成直观的测试报告[留存]
查看>>
ol,ul,dl,table标签的基本语法
查看>>
bzoj4197
查看>>
又是每周作业~4.1
查看>>