使用spring连接及操作mongodb3.0
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>spring_mongo</groupId>
- <artifactId>spring_mongo</artifactId>
- <packaging>war</packaging>
- <version>0.0.1-SNAPSHOT</version>
- <name>spring_mongo Maven Webapp</name>
- <url>http://maven.apache.org</url>
- <dependencies>
- <dependency>
- <groupId>org.springframework.data</groupId>
- <artifactId>spring-data-mongodb</artifactId>
- <version>1.8.0.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.mongodb</groupId>
- <artifactId>mongo-java-driver</artifactId>
- <version>3.0.3</version>
- </dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>1.2</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- <version>4.1.6.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.11</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- <version>4.1.7.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context-support</artifactId>
- <version>4.0.9.RELEASE</version>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>2.3.2</version>
- <configuration>
- <source>1.7</source>
- <target>1.7</target>
- <encoding>UTF-8</encoding>
- <compilerArguments>
- <verbose />
- <bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>
- </compilerArguments>
- </configuration>
- </plugin>
- </plugins>
- <finalName>spring_mongo</finalName>
- </build>
- </project>
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns:task="http://www.springframework.org/schema/task"
- xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.0.xsd
- http://www.springframework.org/schema/task
- http://www.springframework.org/schema/task/spring-task-3.1.xsd">
- <!-- 自动扫描(自动注入) -->
- <context:component-scan base-package="spring_mogo.dao.daoImp" />
- <!-- 导入mongodb的配置文件 -->
- <import resource="spring-mongodb305.xml" />
- <!-- 开启注解 -->
- <context:annotation-config />
- </beans>
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
- xmlns:mongo="http://www.springframework.org/schema/data/mongo"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
- http://www.springframework.org/schema/data/mongo
- http://www.springframework.org/schema/data/mongo/spring-mongo.xsd">
- <!-- spring连接mongodb数据库的配置 -->
- <mongo:mongo-client host="192.168.0.201" port="27017" credentials="tuzongxun:123456@mongoTest" id="mongo">
- <mongo:client-options write-concern="SAFE"/>
- </mongo:mongo-client>
- <mongo:db-factory id="mongoDbFactory" dbname="mongoTest" mongo-ref="mongo" />
- <!-- 只要使用这个调用相应的方法操作 -->
- <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
- <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
- </bean>
- </beans>
- package spring_mongo.models;
- import java.io.Serializable;
- public class UserModel implements Serializable {
- private static final long serialVersionUID = 1L;
- private String userName;
- private String password;
- public UserModel(String userName, String password) {
- super();
- this.userName = userName;
- this.password = password;
- }
- public String getUserName() {
- return userName;
- }
- public void setUserName(String userName) {
- this.userName = userName;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- }
- package spring_mogo.dao.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);
- }
- }
- package spring_mogo.dao;
- import java.util.List;
- import spring_mongo.models.UserModel;
- public interface UserDao {
- /**
- * 查询数据
- *
- * @author:tuzongxun
- * @Title: findAll
- * @param @return
- * @return List<UserModel>
- * @date May 13, 2016 3:07:39 PM
- * @throws
- */
- public List<UserModel> findAll();
- /**
- * 新增数据
- *
- * @author:tuzongxun
- * @Title: insertUser
- * @param @param user
- * @return void
- * @date May 13, 2016 3:09:45 PM
- * @throws
- */
- public void insertUser(UserModel user);
- /**
- * 删除数据
- *
- * @author:tuzongxun
- * @Title: removeUser
- * @param @param userName
- * @return void
- * @date May 13, 2016 3:09:55 PM
- * @throws
- */
- public void removeUser(String userName);
- /**
- * 修改数据
- *
- * @author:tuzongxun
- * @Title: updateUser
- * @param @param user
- * @return void
- * @date May 13, 2016 3:10:06 PM
- * @throws
- */
- public void updateUser(UserModel user);
- /**
- * 按条件查询
- *
- * @author:tuzongxun
- * @Title: findForRequery
- * @param
- * @return void
- * @date May 13, 2016 3:23:37 PM
- * @throws
- */
- public List<UserModel> findForRequery(String userName);
- }
- package spring_mogo.dao.daoImp;
- import java.util.List;
- import org.springframework.data.mongodb.core.query.Criteria;
- import org.springframework.data.mongodb.core.query.Query;
- import org.springframework.data.mongodb.core.query.Update;
- import org.springframework.stereotype.Component;
- import spring_mogo.dao.UserDao;
- import spring_mongo.models.UserModel;
- import com.mongodb.BasicDBObject;
- import com.mongodb.DBObject;
- @Component("UserDaoImp")
- public class UserDaoImp extends AbstractBaseMongoTemplete implements UserDao {
- /**
- * 查询所有数据
- *
- * @author:tuzongxun
- * @Title: findAll
- * @Description: TODO
- * @param @return
- * @date May 13, 2016 3:10:29 PM
- * @throws
- */
- @Override
- public List<UserModel> findAll() {
- // 需要设置集合对应的尸体类和相应的集合名,从而查询结果直接映射
- List<UserModel> userList = mongoTemplate.findAll(UserModel.class,
- "user");
- return userList;
- }
- /**
- * 新增数据
- *
- * @author:tuzongxun
- * @Title: insertUser
- * @Description: TODO
- * @param @param user
- * @date May 13, 2016 3:10:45 PM
- * @throws
- */
- @Override
- public void insertUser(UserModel user) {
- // 设置需要插入到数据库的文档对象
- DBObject object = new BasicDBObject();
- object.put("userName", user.getUserName());
- object.put("password", user.getPassword());
- mongoTemplate.insert(object, "user");
- }
- /**
- * 按条件删除数据
- *
- * @author:tuzongxun
- * @Title: removeUser
- * @Description: TODO
- * @param @param userName
- * @date May 13, 2016 3:11:01 PM
- * @throws
- */
- @Override
- public void removeUser(String userName) {
- // 设置删除条件,如果条件内容为空则删除所有
- Query query = new Query();
- Criteria criteria = new Criteria("userName");
- criteria.is(userName);
- query.addCriteria(criteria);
- mongoTemplate.remove(query, "user");
- }
- /**
- * 修改数据
- *
- * @author:tuzongxun
- * @Title: updateUser
- * @Description: TODO
- * @param @param user
- * @date May 13, 2016 3:11:12 PM
- * @throws
- */
- @Override
- public void updateUser(UserModel user) {
- // 设置修改条件
- Query query = new Query();
- Criteria criteria = new Criteria("userName");
- criteria.is(user.getUserName());
- query.addCriteria(criteria);
- // 设置修改内容
- Update update = Update.update("password", user.getPassword());
- // 参数:查询条件,更改结果,集合名
- mongoTemplate.updateFirst(query, update, "user");
- }
- /**
- * 根据条件查询
- *
- * @author:tuzongxun
- * @Title: findForRequery
- * @Description: TODO
- * @param @param userName
- * @date May 13, 2016 4:08:15 PM
- * @throws
- */
- @Override
- public List<UserModel> findForRequery(String userName) {
- Query query = new Query();
- Criteria criteria = new Criteria("userName");
- criteria.is(userName);
- query.addCriteria(criteria);
- // 查询条件,集合对应的实体类,集合名
- List<UserModel> userList = mongoTemplate.find(query, UserModel.class,
- "user");
- return userList;
- }
- }
测试类:
- package spring_mongo.test;
- import java.util.List;
- import org.junit.Test;
- import org.junit.runner.RunWith;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.test.context.ContextConfiguration;
- import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
- import spring_mogo.dao.UserDao;
- import spring_mongo.models.UserModel;
- @RunWith(SpringJUnit4ClassRunner.class)
- @ContextConfiguration(locations = { "classpath:spring.xml" })
- public class mongoTest {
- @Autowired
- private UserDao userDao;
- /**
- * 查询测试
- *
- * @author:tuzongxun
- * @Title: monFindTest
- * @param
- * @return void
- * @date May 13, 2016 3:27:51 PM
- * @throws
- */
- @Test
- public void monFindTest() {
- List<UserModel> userModels = userDao.findAll();
- if (userModels != null && userModels.size() > 0) {
- for (UserModel user : userModels) {
- System.out.println(user.getUserName() + ":"
- + user.getPassword());
- }
- }
- }
- /**
- * 插入数据测试
- *
- * @author:tuzongxun
- * @Title: monInsertTest
- * @param
- * @return void
- * @date May 13, 2016 3:27:38 PM
- * @throws
- */
- @Test
- public void monInsertTest() {
- UserModel user = new UserModel("test111", "123456");
- userDao.insertUser(user);
- this.monFindTest();
- }
- /**
- * 删除测试
- *
- * @author:tuzongxun
- * @Title: monRemoveTest
- * @param
- * @return void
- * @date May 13, 2016 3:28:06 PM
- * @throws
- */
- @Test
- public void monRemoveTest() {
- String userName = "test111";
- userDao.removeUser(userName);
- this.monFindTest();
- }
- /**
- * 测试修改
- *
- * @author:tuzongxun
- * @Title: monUpdateTest
- * @param
- * @return void
- * @date May 13, 2016 3:50:08 PM
- * @throws
- */
- @Test
- public void monUpdateTest() {
- UserModel user = new UserModel("test111", "test");
- userDao.updateUser(user);
- this.monFindTest();
- }
- /**
- * 按条件查询
- *
- * @author:tuzongxun
- * @Title: monFindForRuq
- * @param
- * @return void
- * @date May 13, 2016 4:10:53 PM
- * @throws
- */
- @Test
- public void monFindForRuq() {
- String userName = "test111";
- List<UserModel> userModels = userDao.findForRequery(userName);
- if (userModels != null && userModels.size() > 0) {
- for (UserModel user : userModels) {
- System.out.println(user.getUserName() + ":"
- + user.getPassword());
- }
- }
- }
- }
使用spring连接及操作mongodb3.0的更多相关文章
- spring boot 1.5.2 操作mongodb3.4.0
1:build.gradle 添加mongodb依赖 dependencies { compile('org.springframework.boot:spring-boot-starter-web' ...
- Swift3.0服务端开发(四) MySQL数据库的连接与操作
本篇博客我们来聊聊MySQL数据库的连接与操作.如果你本地没有MySQL数据库的话,需要你先安装MySQL数据库.在Mac OS中使用brew包管理器进行MySQL的安装是及其方便的.安装MySQL的 ...
- 记录一次MongoDB3.0.6版本wiredtiger与MMAPv1引擎的写入耗时对比
一.MongoDB3.0.x的版本特性(相对于MongoDB2.6及以下): 增加了wiredtiger引擎: 开源的存储引擎: 支持多核CPU.充分利用内存/芯片级别缓存(注:10月14日刚刚发布的 ...
- 修改mongodb3.0副本集用户密码遇到的坑
最近公司对项目安全方面的问题很是重视,进行了多次各种安全漏洞的扫描,于是乎就扫到了mongodb弱口令的问题. 在项目部署初期,因为大家对这个都不是特别重视,大概是因为觉得反正是内网项目吧,所以mon ...
- Spring连接池的常用配置
1.连接池概述 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个 应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正 ...
- mongodb3.0副本集搭建补充~~非admin数据库的用户权限
之前有搭建mongodb3.0的副本集,不过当时直接使用的admin数据库,用户也是直接给的root. 链接:http://blog.csdn.net/tuzongxun/article/detail ...
- spring 学习(四): spring 的 jdbcTemplate 操作
spring 学习(四): spring 的 jdbcTemplate 操作 spring 针对 javaee 的每一层,都提供了相应的解决技术,jdbcTemplate 的主要操作在 dao 层. ...
- Spring Boot使用Spring Data Redis操作Redis(单机/集群)
说明:Spring Boot简化了Spring Data Redis的引入,只要引入spring-boot-starter-data-redis之后会自动下载相应的Spring Data Redis和 ...
- 使用Spring Data Redis操作Redis(集群版)
说明:请注意Spring Data Redis的版本以及Spring的版本!最新版本的Spring Data Redis已经去除Jedis的依赖包,需要自行引入,这个是个坑点.并且会与一些低版本的Sp ...
随机推荐
- JavaScript面试题
一道常被人轻视的前端JS面试题 标签(空格分隔): JavaScript function Foo() { getName = function () { alert (1); }; return t ...
- 使用 AdaBoost 元算法提高分类器性能
前言 有人认为 AdaBoost 是最好的监督学习的方式. 某种程度上因为它是元算法,也就是说它会是几种分类器的组合.这就好比对于一个问题能够咨询多个 "专家" 的意见了. 组合的 ...
- [ADB]ADB(Android Debug Bridge)简介及基础(不包含命令)
"Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an ...
- ubuntu14.04 下emacs 24 配置
目的: 配置emacs 24 适合编程开发 主要参考JerryZhang的配置(Emacs 简易教程) http://www.perfect-is-shit.com/emacs-simple-tuto ...
- svm损失函数
作者:杜客链接:https://zhuanlan.zhihu.com/p/20945670来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. SVM的损失函数定义如下: 举 ...
- csv 文件用Excel打开乱码
最近在做一个上传的功能,记录下自己的感受. 刚开始我用的是excel上传:但是发现客户服务器有用64位的,使用的时候程序会报错: 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” ...
- php 把数字1-1亿换成汉字表述,例如 150 转成 一百五十
/* 额,重新修改了下.现在估计没什么问题了.... */ 直接上实例 写到 千亿上了. /** * @author ja颂 * 把数字1-1亿换成汉字表述,如:123->一百二十三 * @pa ...
- 关于as3调用js报“null为空或不是对象”错误
主要原因是:flash插件的object对象无ID属性. 顺便说下as3调用js的方法. as3引用: import flash.external.ExternalInterface; as3中调用 ...
- PS中的图像知识
图像处理对于前端工作来说是一个不能回避的问题,ps技术也是我们必备的技能.用法可以在使用中不断的熟练,但针对前端技术本身的一些知识点,需要我们平时不断的积累才能够在使用中不出现问题. 如今的办公,已经 ...
- 3.基础点的移动web
1.移动端的屏幕适配 在Web开发中可以使用px(像素).em.pt(点).in(英寸).cm(厘米)做为长度单位,我们最常用px(像素)做为长度单位. 我们可以将上述的几种长度单位划分成相对长度单位 ...