SpringMVC连接MongoDB操作数据库
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info
organisation=""
module="adagent"
status="integration">
</info>
<configurations>
<conf name="default" visibility="public" description="runtime dependencies and master artifact can be used with this conf" extends="runtime,master"/>
<conf name="master" visibility="public" description="contains only the artifact published by this module itself, with no transitive dependencies"/>
<conf name="compile" visibility="public" description="this is the default scope, used if none is specified. Compile dependencies are available in all classpaths."/>
<conf name="provided" visibility="public" description="this is much like compile, but indicates you expect the JDK or a container to provide it. It is only available on the compilation classpath, and is not transitive."/>
<conf name="runtime" visibility="public" description="this scope indicates that the dependency is not required for compilation, but is for execution. It is in the runtime and test classpaths, but not the compile classpath." extends="compile"/>
<conf name="test" visibility="private" description="this scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases." extends="runtime"/>
<conf name="system" visibility="public" description="this scope is similar to provided except that you have to provide the JAR which contains it explicitly. The artifact is always available and is not looked up in a repository."/>
<conf name="sources" visibility="public" description="this configuration contains the source artifact of this module, if any."/>
<conf name="javadoc" visibility="public" description="this configuration contains the javadoc artifact of this module, if any."/>
<conf name="optional" visibility="public" description="contains all optional dependencies"/>
</configurations>
<dependencies>
<!--spring-->
<dependency org="org.springframework" name="spring-core" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-beans" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-web" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-context" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-context-support" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-aop" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-expression" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-tx" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-jms" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-jdbc" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-webmvc" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.slf4j" name="slf4j-api" rev="1.7.7" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.slf4j" name="jcl-over-slf4j" rev="1.7.7" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.slf4j" name="jul-to-slf4j" rev="1.7.7" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.slf4j" name="log4j-over-slf4j" rev="1.7.7" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="ch.qos.logback" name="logback-classic" rev="1.1.2" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="ch.qos.logback" name="logback-core" rev="1.1.2" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<!--json序列化-->
<dependency org="com.fasterxml.jackson.core" name="jackson-core" rev="2.3.1" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="com.fasterxml.jackson.core" name="jackson-annotations" rev="2.3.1" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="com.fasterxml.jackson.core" name="jackson-databind" rev="2.3.1" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<!--HTTP-->
<dependency org="org.aopalliance" name="com.springsource.org.aopalliance" rev="1.0.0" />
<dependency org="org.springframework.data" name="spring-data-commons" rev="1.10.0.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.apache.httpcomponents" name="httpclient" rev="4.3.3" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.apache.httpcomponents" name="httpcore" rev="4.3.3" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.apache.httpcomponents" name="httpmime" rev="4.3.3" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.apache.ws.xmlschema" name="xmlschema-core" rev="2.1.0" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<!--cxf-->
<dependency org="org.apache.cxf" name="cxf-bundle" rev="2.7.11" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.apache.neethi" name="neethi" rev="3.0.3" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.apache.velocity" name="velocity" rev="1.7" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.apache.ws.xmlschema" name="xmlschema-core" rev="2.1.0" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="javax.xml.bind" name="jaxb-api" rev="2.2.4" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="javax.xml.soap" name="saaj-api" rev="1.3.5" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="com.sun.xml.bind" name="jaxb-xjc" rev="2.2.7" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="com.sun.xml.bind" name="jaxb-core" rev="2.2.7" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="com.sun.xml.messaging.saaj" name="saaj-impl" rev="1.3.23" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.codehaus.woodstox" name="woodstox-core-asl" rev="4.3.0" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.codehaus.woodstox" name="stax2-api" rev="3.1.4" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.jvnet.staxex" name="stax-ex" rev="1.7.7" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.codehaus.jettison" name="jettison" rev="1.3.5" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="wsdl4j" name="wsdl4j" rev="1.6.3" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/> <!-- axis相关内容 -->
<dependency org="axis" name="axis" rev="1.4" conf="compile->compile(*),master(*);runtime->runtime(*)" />
<dependency org="axis" name="axis-jaxrpc" rev="1.4" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false" />
<dependency org="axis" name="axis-saaj" rev="1.4" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false" />
<dependency org="axis" name="axis-wsdl4j" rev="1.5.1" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false" />
<dependency org="commons-discovery" name="commons-discovery" rev="0.2" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false" /> <dependency org="com.google.code.gson" name="gson" rev="2.3" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="dom4j" name="dom4j" rev="1.6.1" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<!--
<dependency org="org.apache.axis" name="axis" rev="1.4" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
-->
<dependency org="jaxen" name="jaxen" rev="1.1-beta-9" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="javax.validation" name="validation-api" rev="1.1.0.Final" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false" />
<dependency org="javax.ws.rs" name="javax.ws.rs-api" rev="2.0-m10" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework.data" name="spring-data-mongodb" rev="1.7.0.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.mongodb" name="mongo-java-driver" rev="3.0.0-rc1" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.apache.solr" name="solr-solrj" rev="5.1.0" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/> <dependency org="org.apache.commons" name="commons-vfs2" rev="2.0" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="commons-discovery" name="commons-discovery" rev="0.5" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="commons-logging" name="commons-logging" rev="1.2" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="javax.xml.rpc" name="javax.xml.rpc-api" rev="1.1" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
</dependencies>
</ivy-module>
ivy.xml
1、先引入以上的jar包:
2、使用MongoTemplate:
package com.d.service; import javax.servlet.http.HttpServletRequest; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody; //@RestController
//@RequestMapping("/test")
public class TestService { private static final Logger logger = LoggerFactory.getLogger(TestService.class); @Autowired
MongoTemplate mongoTemplate; @RequestMapping(value = "/check", method = RequestMethod.GET)
@ResponseBody
public JsonResult<String> check(HttpServletRequest request) {
try {
logger.info("Address:{}", request.getLocalAddr());
logger.info("Name:{}", request.getLocalName());
} catch (Throwable e) {
logger.error(e.getMessage());
logger.debug(e.getMessage(), e);
}
return new JsonResult<String>("服务运行正常...").success();
} @RequestMapping(value = "/add", method = RequestMethod.GET)
@ResponseBody
public JsonResult<String> add(HttpServletRequest request) {
try {
TestMo mo = new TestMo();
mo.setId("1111");
mo.setMessage("2222");
mo.setName("3333");
mongoTemplate.insert(mo); } catch (Throwable e) {
logger.error(e.getMessage());
logger.debug(e.getMessage(), e);
return new JsonResult<String>(e.getMessage()).fail(0);
}
return new JsonResult<String>("服务运行正常...").success();
}
}
3、使用Reosititory:
package com.repository;
import org.springframework.data.mongodb.repository.MongoRepository;
import com.model.MaterialInfo;
public interface MaterialRepository extends MongoRepository<MaterialInfo, String>{
}
Api:
package com.api; import javax.validation.Valid;
import javax.ws.rs.DELETE;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam; import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Query; import com.model.MaterialInfo;
import com.utils.QueryResult; public interface MaterialApi { @POST
@Path("insert")
MaterialInfo insert(@Valid MaterialInfo materialInfo); @DELETE
@Path("delete")
void delete(@QueryParam("id") String id); @POST
@Path("update")
void update(@QueryParam("id") String id); @POST
@Path("save")
MaterialInfo save(@Valid MaterialInfo materialInfo); @GET
@Path("get")
MaterialInfo getBroadCastList(String id); @POST
@Path("query/with/paging")
public QueryResult<MaterialInfo> queryWithPaging(Query query, Sort sort, //
int start, int limit);
}
Impl:
package com.api.impl; import javax.ws.rs.Path; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Component; import com.api.MaterialApi;
import com.model.MaterialInfo;
import com.repository.MaterialRepository;
import com.utils.QueryResult; @Path("/material")
@Component("materialImpl")
public class MaterialApiImpl implements MaterialApi { @Autowired
private MaterialRepository _materialRepository; @Autowired
@Qualifier("mongoTemplate")
MongoTemplate mongoTemplate; @Override
public MaterialInfo insert(MaterialInfo materialInfo) {
// TODO Auto-generated method stub
return _materialRepository.insert(materialInfo);
} @Override
public void delete(String id) {
// TODO Auto-generated method stub } @Override
public MaterialInfo save(MaterialInfo materialInfo) {
// TODO Auto-generated method stub
return null;
} @Override
public MaterialInfo getBroadCastList(String id) {
// TODO Auto-generated method stub
return null;
} @Override
public QueryResult<MaterialInfo> queryWithPaging(Query query, Sort sort, int start, int limit) {
// TODO Auto-generated method stub
return null;
} @Override
public void update(String id) {
// TODO Auto-generated method stub } }
Service:
package com.service; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import com.api.MaterialApi;
import com.model.MaterialInfo; @Component("materialService")
public class MaterialService { public static Logger logger = LoggerFactory.getLogger(MaterialService.class); @Autowired
MaterialApi _materialApi; public String save(MaterialInfo materialInfo){
try {
_materialApi.save(materialInfo);
} catch (Throwable e) {
return e.getMessage();
}
return "success";
}
}
以上!
缺少关键的beans.xml文件 补上去:注意其中的<mongo:repositories />很重要;
<?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:util="http://www.springframework.org/schema/util"
xmlns:p="http://www.springframework.org/schema/p"
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:context="http://www.springframework.org/schema/context"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:jaxrs="http://cxf.apache.org/jaxrs"
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.1.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.5.xsd
http://www.springframework.org/schema/data/repository http://www.springframework.org/schema/data/repository/spring-repository-1.5.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> <!-- 自动扫描 -->
<context:annotation-config /> <mvc:annotation-driven /> <context:component-scan base-package="com.d" /> <import resource="classpath:com/d/beans.xml"/> <mongo:repositories base-package="com.d.repository"></mongo:repositories> <context:property-placeholder location="classpath:com/d/mongodb.properties" />
<!--
<mongo:mongo id="mongo" host="${mongodb.host}" port="${mongodb.port}" />
-->
<mongo:mongo id="mongo" replica-set="${mongodb.replicaSet}" /> <mongo:db-factory id="mongoDbFactory" dbname="${mongodb.database}"
mongo-ref="mongo" /> <!-- mongo模板操作对象 -->
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
</bean> </beans>
以上文件加载只能加载classpath下的文件,加载外部文件需修改配置如下:
<context:property-placeholder location="file:${app.home}/config/mongodb.properties" />
重点在添加file标识 mongodb.properties:
#mongodb
mongodb.database=adbase
mongodb.replicaSet=127.0.0.1:27017
#mongodb.host=127.0.0.1
#mongodb.port=27017
SpringMVC连接MongoDB操作数据库的更多相关文章
- 【node】node连接mongodb操作数据库
1.下载第三方模块mongodb cnpm install mongodb --save 2.检测是否连接成功 1.引入第三方模块mongodb并创建一个客户端 const MongoClient = ...
- 【node】------node连接mongodb操作数据库------【巷子】
1.下载第三方模块mongodb cnpm install mongodb --save 2.检测是否连接成功 1.引入第三方模块mongodb并创建一个客户端 const MongoClient = ...
- Spring MVC基础知识整理➣Spring+SpringMVC+Hibernate整合操作数据库
概述 Hibernate是一款优秀的ORM框架,能够连接并操作数据库,包括保存和修改数据.Spring MVC是Java的web框架,能够将Hibernate集成进去,完成数据的CRUD.Hibern ...
- 使用python简单连接并操作数据库
python中连接并操作数据库 图示操作流程 一.使用的完整流程 # 1. 导入模块 from pymysql import connect # 2. 创建和数据库服务器的连接,自行设置 服务器地址, ...
- PHP连接MYSQL操作数据库
PHP连接MYSQL操作数据库 <?php $con = mysql_connect("localhost","root",""); ...
- MongoDB聚合查询及Python连接MongoDB操作
今日内容概要 聚合查询 Python操作MongoDB 第三方可视化视图工具 今日内容详细 聚合查询 Python操作MongoDB 数据准备 from pymongo import MongoCli ...
- MongoDB操作数据库的几个命令(自己用)
本文以配置百度的Clouda为源头:http://cloudajs.org/docs 继而安装node.js:http://nodejs.org/download/(直接安装,简单) 和MongoDB ...
- java方式连接数据操作数据库
package com.bdqn.dao.impl; import java.io.IOException;import java.io.InputStream;import java.io.Seri ...
- Python连接MongoDB操作
1.安装PyMongo 注意:请勿安装“bson”软件包. PyMongo配有自己的bson包; 执行“pip install bson”或“easy_install bson”则会安装与PyMong ...
随机推荐
- 一个Web前端自学者的自述
想来想去还是写下这篇文章,先说明,我精通JAVA编程语言和web前端常见的技术,个人是做JAVA的多,但是更加喜欢前端.因为我从高一开始接触JAVA,家父是黑马的JAVA讲师,自己对编程很热爱,在大学 ...
- 2017年国内常用的公共NTP服务
安卓机顶盒里常用的 http://cn.pool.ntp.org CERNET 的一堆服务器就在那里面 http://asia.pool.ntp.org 追踪它的IP,台湾.韩国.日本都有. 阿里云 ...
- Effective Java 第三版——15. 使类和成员的可访问性最小化
Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...
- Centos7上安装使用locate
centos7上默认没有locate命令,需先安装locate yum install mlocate 注意是mlocate,如果是yum install locate系统会提示没有安装包 安装完成后 ...
- thinkinginjava学习笔记07_多态
在上一节的学习中,强调继承一般在需要向上转型时才有必要上场,否则都应该谨慎使用: 向上转型和绑定 向上转型是指子类向基类转型,由于子类拥有基类中的所有接口,所以向上转型的过程是安全无损的,所有对基类进 ...
- SQL基础学习_01_数据库和表
SQL语句及其种类 1. SQL语句分为三类: DDL(Data Definition Language): CREATE.DROP.ALTER; DML(Data Manipulat ...
- R语言命令行参数
批量画图任务中,需要在R中传入若干参数,之前对做法是在perl中每一个任务建立一个Rscript,这种方式超级不cool,在群里学习到R的@ARGV调用方式,差不多能够达到批量任务的要求: a ...
- Ajax同源和跨域
ajax跨域访问 客户端页面 var url = "http://172.16.91.121:81/FellIn/FellIn.aspx?Action=WXSave&WX_Store ...
- Scrum And Teamwork
Scrum Learning 概念 Scrum是迭代式增量软件开发过程,通常用于敏捷软件开发.Scrum包括了一系列实践和预定义角色的过程骨架.Scrum中的主要角色包括同项目经理类似的Scrum主管 ...
- 每天学一点Docker(6)——镜像和DockerFile
镜像的分层结构: 实际上,Docker Hub 中 99% 的镜像都是通过在 base 镜像中安装和配置需要的软件构建出来的.比如我们现在构建一个新的镜像,Dockerfile 如下: ① 新镜像不再 ...