mongodb整合spring之增删改查
来源:互联网 发布:linux的vim配置文件 编辑:程序博客网 时间:2024/05/22 05:15
闲着无事,研究一下mongo,之前一直都是直接些方法调用方法,一直没有和spring整合过,今天研究一下,原来整合后的语法简单多了,同时也看到了spring的强大之处.
废话不多说看我spring-mongo.xml文件配置:
<!-- 获取配置资源 --> <context:property-placeholder location="classpath:mongodb-context-config.properties" /> <mongo:mongo id="mongo" host="${mongo.host}" port="${mongo.port}" > <mongo:options connections-per-host="${mongo.connectionsPerHost}" threads-allowed-to-block-for-connection-multiplier="${mongo.threadsAllowedToBlockForConnectionMultiplier}" connect-timeout="${mongo.connectTimeout}" max-wait-time="${mongo.maxWaitTime}" auto-connect-retry="${mongo.autoConnectRetry}" socket-keep-alive="${mongo.socketKeepAlive}" socket-timeout="${mongo.socketTimeout}" slave-ok="${mongo.slaveOk}" write-number="1" write-timeout="0" write-fsync="true"/> </mongo:mongo> <!-- mongo的工厂,通过它来取得mongo实例,dbname为mongodb的数据库名,没有的话会自动创建 --> <mongo:db-factory dbname="gang" mongo-ref="mongo" /> <!-- mongodb的主要操作对象,所有对mongodb的增删改查的操作都是通过它完成 --> <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" /> </bean> <!-- 映射转换器,扫描back-package目录下的文件,根据注释,把它们作为mongodb的一个collection的映射 --> <mongo:mapping-converter base-package="com.lv.gang.entity" /> <!-- mongodb bean的仓库目录,会自动扫描扩展了MongoRepository接口的接口进行注入 --> <mongo:repositories base-package="com.lv.gang.mapper" /> <context:annotation-config /> <context:component-scan base-package="com.lv.gang.service,com.lv.gang.mapper" />
maven相关依赖:
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>2.10.1</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.2.1.RELEASE</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb-cross-store</artifactId> <version>1.2.1.RELEASE</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb-log4j</artifactId> <version>1.2.1.RELEASE</version> <type>jar</type> <scope>compile</scope> </dependency>
控制层方法:
@Controller@RequestMapping("test")public class TestController { @Autowired private MongoService mongoService; @RequestMapping("add") public void add(){ User u=new User(); u.setUserId(UUID.randomUUID().toString()); u.setAge(11); u.setUserName("gang"); mongoService.addUser(u); } @RequestMapping("select") public void selectUser(){ mongoService.seleteUser(); } @RequestMapping("findList") public void findList(){ mongoService.findList(); }}
service层方法:
@Servicepublic class MongoService { @Autowired private MongoMapper mongoMapper; public void addUser(User u) { mongoMapper.addUser(u); } public void seleteUser() { mongoMapper.selectUser(); } public void findList() { mongoMapper.findList(); }}
dao层方发:
@Repositorypublic class MongoMapperImpl implements MongoMapper{ @Autowired private MongoTemplate mongoTemplate; /** * mongo的增加方法 * @param u */ @Override public void addUser(User u) { mongoTemplate.insert(u); } /** * mongo的条件查询方法 */ @Override public void selectUser() { Query query=new Query(); query.addCriteria(new Criteria("userId").is("3eafc603-62fb-43f7-817d-0e34180b591f")); User one = mongoTemplate.findOne(query, User.class); System.out.print(one.getAge()+one.getUserId()+one.getUserName()); } /** * mongo的分页查询方法 */ @Override public void findList() { Query query=new Query(); query.with(new Sort(new Sort.Order(Sort.Direction.ASC,"_id"))); query.skip(0).limit(2); List<User> users = mongoTemplate.find(query, User.class); System.out.print(users); }}
dao层全部实现:
@Override public List<Person> findAll() { // TODO Auto-generated method stub return getMongoTemplate().find(new Query(), Person.class); } /* (non-Javadoc) * @see com.mongo.dao.AbstractRepository#findAndModify(java.lang.String) */ @Override public void findAndModify(String id) { // TODO Auto-generated method stub //new Query(Criteria.where("id").is(id)), new Update().inc("age", 3) getMongoTemplate().updateFirst(new Query(Criteria.where("id").is(id)), new Update().inc("age", 3)); } /* (non-Javadoc) * @see com.mongo.dao.AbstractRepository#findByRegex(java.lang.String) */ @Override public List<Person> findByRegex(String regex) { // TODO Auto-generated method stub Pattern pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE); Criteria criteria = new Criteria("name").regex(pattern.toString()); return getMongoTemplate().find(new Query(criteria), Person.class); } /* (non-Javadoc) * @see com.mongo.dao.AbstractRepository#findOne(java.lang.String) */ @Override public Person findOne(String id) { // TODO Auto-generated method stub return getMongoTemplate().findOne(new Query(Criteria.where("id").is(id)), Person.class); } /* (non-Javadoc) * @see com.mongo.dao.AbstractRepository#insert(com.mongo.bean.Person) */ @Override public void insert(Person person) { // TODO Auto-generated method stub getMongoTemplate().insert(person); } /* (non-Javadoc) * @see com.mongo.dao.AbstractRepository#removeAll() */ @Override public void removeAll() { // TODO Auto-generated method stub List<Person> list = this.findAll(); if(list != null){ for(Person person : list){ getMongoTemplate().remove(person); } } } /* (non-Javadoc) * @see com.mongo.dao.AbstractRepository#removeOne(java.lang.String) */ @Override public void removeOne(String id) { // TODO Auto-generated method stub Criteria criteria = Criteria.where("id").in(id); if(criteria == null){ Query query = new Query(criteria); if(query != null && getMongoTemplate().findOne(query, Person.class) != null) getMongoTemplate().remove(getMongoTemplate().findOne(query, Person.class)); } } /** * @return the mongoTemplate */ public MongoTemplate getMongoTemplate() { return mongoTemplate; } /** * @param mongoTemplate the mongoTemplate to set */ public void setMongoTemplate(MongoTemplate mongoTemplate) { this.mongoTemplate = mongoTemplate; } }
数据库数据:
项目demo的地址:
http://download.csdn.net/download/qq_38665235/10034040
阅读全文
2 0
- mongodb整合spring之增删改查
- MongoDB之java增删改查
- JAVA 之mongodb 增删改查GROUP
- MongoDB- C# 驱动之增删改查
- MongoDB之增删改查(一)
- MongoDB之增删改查(二)
- MongoDB增删改查
- mongodb增删改查
- MongoDB增删查改
- mongodb 增删改查
- mongodb增删改查
- mongodb增删改查
- MongoDB增删改查
- MongoDB增删改查
- mongodb增删改查
- MongoDB增删查改
- 【mongodb】mongodb 权威指南笔记之增删改查
- Struts2+Spring+iBatis整合用户管理实例之三:用户管理,增删改查
- 171021 逆向-Xp0intCTF(re300)
- WorkerMan学习篇:websocket+workerman聊天功能(三):点对点发送消息模拟(亲测可用_准备尝试着做客服接口)
- 关于canvas的移动和旋转操作
- JAVA 1.8链接Access
- JS常用正则表达式一
- mongodb整合spring之增删改查
- 基于Unity的游戏项目客户端服务器寻路同步方案
- 59个Python使用技巧,从此你的Python与众不同!
- TypeScript 学习总结
- 【第七周】402. Remove K Digits
- 常微分方程实验(3.2):解的延拓
- 作业.使用for语句计算8+88+888...的前10项之和
- 字符串匹配
- 作业.找出1000以内的所有完数