spring集成mongodb

applicationContext.xml 这里网上有许多版本 ,但是copy过来不是版本不符就是各种找不到类

用到的版本 

mongodb2.10.jar

mongo-java-driver-3.0.1.jar

对应spring集成的版本必须是4.0以上

mongodb和spring  jar:https://yun.baidu.com/share/link?shareid=3559056118&uk=958682606

下面是 applicationContext.xml

<?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:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" 
	xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	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/context 
       http://www.springframework.org/schema/context/spring-context-3.0.xsd
       http://www.springframework.org/schema/tx 
       http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
       http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
       http://www.springframework.org/schema/data/mongo
       http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd">

<bean id="multipartResolver"
		class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
		p:defaultEncoding="utf-8" /> 
		
		
			<mongo:mongo host="host" port="port"/>
<mongo:db-factory dbname="XXX"
				  username="XXX"  
                  password="XXX" 
                  mongo-ref="mongo"/>
                  
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">  
             <constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>   
	    </bean>  
	</beans>

下面是比较重要的daoImpl实现层

TestDaoImpl

package com.dao.implement;

import java.sql.Array;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.regex.Pattern;












import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.mapreduce.MapReduceResults;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Repository;

import com.dao.TestDao;
import com.mongodb.BasicDBObject;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.MapReduceCommand;
import com.mongodb.MapReduceOutput;

@Repository("TestDaoImpl")
public class TestDaoImpl  implements TestDao {
/*	@Autowired
	private SqlSessionTemplate sqlSessionTemplate;*/
	
	@Autowired
	private MongoTemplate mongoTemplate;
	private static String DBNAME_BAIDUURL="baiduurl";
	private static String DBNAME_P2PURL="projectlist";
	
	@Override
	public List<Map> getCatsByUser(String  id, String pageNo, String pageCount) {
	/*	  1、完全匹配 Pattern pattern = Pattern.compile("^name$", Pattern.CASE_INSENSITIVE); 
		  2、右匹配 Pattern pattern = Pattern.compile("^.*name$", Pattern.CASE_INSENSITIVE); 
		  3、左匹配 Pattern pattern = Pattern.compile("^name.*$", Pattern.CASE_INSENSITIVE);
		  4、模糊匹配 Pattern pattern = Pattern.compile("^.*name8.*$", Pattern.CASE_INSENSITIVE);*/
		Pattern pattern = Pattern.compile("^.*"+id+".*$", Pattern.CASE_INSENSITIVE);
		Date date=new Date();
		List<Map> list=mongoTemplate.find(new Query(new Criteria("projectTitle").regex(pattern))
			.skip((Integer.parseInt(pageNo)-1)*Integer.parseInt(pageCount))
			.limit(Integer.parseInt(pageCount)), Map.class,DBNAME_P2PURL);
		System.out.println(new Date()+":关键词:"+id+":分页:"+pageNo+","+pageCount+":查询耗时"+(new Date().getTime()-date.getTime())/1000);
		return list;
	 
		/*  Date date1=new Date();
		  String map = "function(){emit(this.name,this.url);}";  
        String reduce = "function(key, values) { " +  
                                     "var sum = 0; " +  
                                     "values.forEach(function(doc) { " +  
                                     "sum += 1; "+  
                                     "}); " +  
                                     "return {baiduurl: sum};} "; 
		  //另一种方法
		  //com.mongodb.MapReduceOutput.getDuration() 找不到此方法
		MapReduceResults<Map> mrrList=mongoTemplate.mapReduce(
				new Query(new Criteria("name").regex(pattern)), 
				"baiduurl", 
				map,
				reduce, Map.class);*/
	/*	DBCollection baiduurl = mongoTemplate.getCollection("baiduurl");    
		 MapReduceCommand cmd = new MapReduceCommand(baiduurl, map, reduce,    
	             null, MapReduceCommand.OutputType.INLINE, null );    
	           MapReduceOutput out = baiduurl.mapReduce(cmd); 
		System.out.println("用mapreduce的查询耗时"+(new Date().getTime()-date1.getTime())/1000);*/
	}

	@Override
	public Long getCatsByUserCount(String name) {
		Pattern pattern = Pattern.compile("^.*"+name+".*$", Pattern.CASE_INSENSITIVE);
		Long lo=mongoTemplate.count(new Query(new Criteria("projectTitle").regex(pattern)),DBNAME_P2PURL);
		if (lo>210) {
			lo=210l;
		}
		return lo;
	}



}

 

转载于:https://my.oschina.net/angleshuai/blog/705017

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值