이전 레코드에는 Spring을 사용하지 않고 Java 코드로 MongoDB 데이터베이스를 직접 연결하고 작동한다는 기사가 있습니다. 여기서 우리는 자바에서 MongoDB의 간단한 작동을 사용할 때 기록 할 것입니다.
Maven 패키지 구성 :
Spring 및 SpringMVC가 포함되므로 관련 패키지를 가져와야합니다.
<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/0.0.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> <spring> 0.1-snapshot webapp </name> <url> http://maven.apache.org </url> <pectionements> <pectionement> <groupid> org.springframework.data </groupid> <artifactid> spring-data-mongodb </artifactid> <bersion> 1.8.0.release> </dependency> <groupid> org.mongodb </groupid> <artifactid> Mongo-Java-Driver </artifactid> <version> 3.0.3 </version> </dependency> <groupdency> <groupid> 커먼즈-로깅 </groupid> <atifactid> commons-logging </aitrifactid> 1.2 </deplence> </version> </version> <groupid> org.springframework </groupid> <artifactid> 스프링 테스트 </artifactid> <bersion> 4.1.6. release </version> </dependency> <prectionency> <groupid> junit> <artifactid> junit </artifactid> <버전> 4.11 </dependency> <groupid> org.springframework </groupid> <artifactid> spring-context </artifactid> <bersion> 4.1.7. release </version> </dependency> <prectionency> <groupid> org.springframework </groupid> <artifactid> spring-context-support </artifactid> 4.0. </의존성> <빌드> <플러그인> <플러그인> <아티팩트> Maven-Compiler-Plugin </artifactid> <bersion> 2.3.2 </version> <configuration> <court> 1.7 </source> <garget> 1.7 </target> <coding> 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> </project> 스프링 기본 구성 :
주로 주석 스캐닝 등을 활성화하는 것입니다.
<? xml version = "1.0"alcoding = "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/contex"xsi : schemalocation = "http://wwww.spremnegframfringframework.gramwork.spramework.s http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/sprging-context-3 http://www.springframework.org/schema/task http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd ">-auto-unsemation (auto-ungement)-> BASE-PACKAGE = "SPRING_MOGO.DAO.DAOIMP" /> <!-MONGODB의 구성 파일 가져 오기-> <가져 오기 자원 = "Spring-MongoDB305.xml" /> <!-주석을 켜십시오-> <Context : Annotation-Config /> < /beans>
Spring은 MongoDB를 연결하고 관련 공장에 대한 구성을 설정합니다.
<? xml 버전 = "1.0"alcoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans"xmlns : xsi = "http://ww.w.w3.org/2001/xmlschema-instance" xmlns : p = "http://www.springframework.org/schema/p"xmlns : mongo = "http://www.springframework.org/schema/data/mongo"xsi : skemalocation = "http://www.spremframframwork.org/schema 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/spred-mongo/data/data/data/data/data/spredo.edo MongoDB 데이터베이스에 연결하기위한 구성-> <mongo : mongo-client host = "192.168.0.201"port = "27017"credentials = "tuzongxun : 123456@mongotest"id = "mongo"> <mongo : mongo : client-options write-cern = "safe" <mongo : db-factory id = "mongodbfactory"dbname = "mongoTest"mongo-Ref = "mongo" /> <!-해당 메소드를 호출하려면 이것을 사용하십시오-> <bean id = "mongotemplate"> <constructor-arg name = "mongodbfactory"ref = "mongodbfactory".
데이터베이스에 해당하는 엔티티 클래스 :
직렬화 된 인터페이스를 구현해야하고 UID 속성이 설정되어 있어야합니다. 그렇지 않으면 작업 중에 데이터베이스 리턴 결과를 객체 속성으로 직접 변환 할 수 없습니다.
패키지 Spring_Mongo.Models; java.io.serializable import; 공개 클래스 usermodel은 직렬화 가능한 {private static final long serialversionuid = 1L; 개인 문자열 사용자 이름; 개인 문자열 비밀번호; public usermodel (문자열 사용자 이름, 문자열 비밀번호) {super (); this.username = username; this.password = 비밀번호; } public String getUserName () {return username; } public void setusername (String username) {this.username = username; } public String getPassword () {return password; } public void setpassword (문자열 비밀번호) {this.password = password; }} 스프링 구성에 따라 MongoDB를 작동하는 MongotemPlete를 얻으 며 ApplicationContextAware 인터페이스를 구현해야합니다.
패키지 spring_mogo.dao.daoimp 패키지; org.springframework.beans.beansexception import; import org.springframework.context.applicationcontext; org.springframework.context.applicationcontextaware import; org.springframework.data.mongodb.core.mongotemplate; 공개 초록 클래스 AbstractBasemonGotemplete ApplicationContextAware {보호 된 Mongotemplate Mongotemplate; / ** * 구성 파일에 따라 @Description 세트 MongotemPlate * @Param MongotemPlate */ public void setMongotemplate (mongotemplate mongotemplate) {this.mongotemplate = mongotemplate; } @override public void setApplicationContext (ApplicationContext ApplicationContext)는 beansexception {mongotemplate mongotemplate = ApplicationContext.getBean ( "mongotemplate", mongotemplate.class); setmongotemplate (mongotemplate); }} 데이터베이스 및 해당 구현 클래스를 작동하는 인터페이스 :
가장 기본적인 추가, 삭제, 수정 및 검색이 시연됩니다. 주의를 기울여야 할 것은 반환 된 데이터를 수신 할 때 매개 변수 선언과 엔티티 클래스의 변환입니다.
(1) 인터페이스 :
패키지 spring_mogo.dao; Java.util.list 가져 오기; spring_mongo.models.usermodel import; 공개 인터페이스 userdao { / ** * 쿼리 데이터 * * @author : tuzongxun * @title : findall * @param @return * @return list <Scermodel> * @date 2016 년 5 월 13 일 3:07:39 pm * @throws * / public list <Sermodel> findall (); / ** * 새 데이터 * * @author : tuzongxun * @title : InsertUser * @param @param user * @return void * @date 2016 년 5 월 13 일 3:09:45 pm * @throws */ public void InsertUser (usermodel user); / ** * 데이터 삭제 * * @author : tuzongxun * @title : removeUser * @param @param username * @return void * @date 2016 년 5 월 13 일 3:09:55 pm * @throws */ public void remodUser (문자열 사용자 이름); / ** * 데이터 수정 * * @author : tuzongxun * @title : updateUser * @param @param user * @return void * @date 2016 3:10:06 pm * @throws */ public void updateUser (usermodel user); / ** * 조건 별 쿼리 * * @author : tuzongxun * @title : findforrequery * @param * @return void * @date 2016 년 5 월 13 일 3:23:37 pm * @throws */ public list <Sermodel> findforrequery (문자열 사용자 이름); } (2) 구현 클래스, 여기서, 여기서 우리는 다양한 작업에 대한 mongotemplete를 얻기 위해 AbstractBasemonGoTemplete 클래스를 상속해야합니다.
패키지 spring_mogo.dao.daoimp 패키지; Java.util.list 가져 오기; org.springframework.data.mongodb.core.query.criteria import; org.springframework.data.mongodb.core.query.query; org.springframework.data.mongodb.core.query.update; org.springframework.stereotyp.component import; import spring_mogo.dao.userdao; spring_mongo.models.usermodel import; import com.mongodb.basicdbobject; import com.mongodb.dbobject; @Component ( "userDaoimp") public class userDaoimp 확장 extractBasemOngOtemPlete userDao { / ** * 모든 데이터 Query * * @Author : tuzongxun * @title : findall * @description : todo * @param @return * @date 2016 3:10:29 PM * @Throws * / throws * / throws * / thrower public <10:29 PM *. findAll () {// 해당 시체 클래스 및 해당 수집 이름을 설정해야하므로 쿼리 결과가 직접 매핑되도록 <SURMODEL> userList = mongotemplate.findall (usermodel.class, "user"); 반환 사용자리스트; } / ** * 새 데이터 * * @author : tuzongxun * @title : insertUser * @description : todo * @param @param user * @date 13, 2016 3:10:45 pm * @throws * / @Throws * / @Throws * // usermodel userts (ousermodel user) {// new insabase insabase insabase insabase insated in insabase insated in insate in in inset bointed vopuble void InsertUser (usermodel user) 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 2016 3:11:01 pm * @throws * / @override public void remobuser (문자열 username) {// delete el query set the query (new query); 기준 기준 = 새로운 기준 ( "사용자 이름"); criteria.is (사용자 이름); query.addcriteria (기준); mongotemplate.remove (query, "user"); } / ** * 데이터 수정 * * @author : tuzongxun * @title : updateUser * @description : todo * @param @param user * @date 2016 3:11:12 pm * @throws * / @Throws public void UpdateUser (usermodel user) {// 수정 조건 query query query (); 기준 기준 = 새로운 기준 ( "사용자 이름"); criteria.is (user.getusername ()); query.addcriteria (기준); // 수정 컨텐츠 업데이트 설정 = update.update ( "password", user.getPassword ()); // 매개 변수 : 쿼리 조건, 결과 변경, 수집 이름 mongotemplate.updatefirst (쿼리, 업데이트, "사용자"); } / ** * 조건에 따른 쿼리 * * @author : tuzongxun * @title : findforRequery * @description : todo * @param @param username * @date 2016 년 5 월 13 일 4:08:15 pm * @throws * / @override public list <assermodel> insermodel> Query Query = new Query (new Query); 기준 기준 = 새로운 기준 ( "사용자 이름"); criteria.is (사용자 이름); query.addcriteria (기준); // 쿼리 조건, 세트에 해당하는 엔티티 클래스, 세트 이름 목록 <SERMODEL> userList = mongotemplate.Find (query, usermodel.class, "user"); 반환 사용자리스트; }} 테스트 클래스 :
위의 코드 및 구성의 정확성을 확인하기 위해 테스트 클래스 코드는 다음과 같습니다.
패키지 spring_mongo.test; Java.util.list 가져 오기; import org.junit.test; import org.junit.runner.runwith; org.springframework.beans.factory.annotation.autowired; org.springframework.test.context.contextConfiguration import; org.springframework.test.context.junit4.springjunit4classrunner; import spring_mogo.dao.userdao; spring_mongo.models.usermodel import; @RunWith (SpringJunit4classRunner.class) @ContextConfiguration (위치 = { "classPath : spring.xml"}) public class mongotest {@autowired private userdao userdao; / ** * 쿼리 테스트 * * @author : tuzongxun * @title : monfindtest * @param * @return void * @date 2016 년 5 월 13 일 3:27:51 pm * @throws */ @test public void monfindtest (list <assermodel> usermodels = 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 2016 3:27:38 pm * @throws * / @Throws * / @Throws * / {usermodel userermodel ( "test111", "123456"); userdao.insertuser (사용자); this.monfindtest (); } / ** * 테스트 삭제 * * @author : tuzongxun * @title : monremovetest * @param * @return void * @date 2016 년 5 월 13 일 3:28:06 pm * @throws * / @throws * / @Throws * / @Throws * / @Throws void monremovetest () {String username = "test111"; userdao.removeuser (사용자 이름); this.monfindtest (); } / ** * 테스트 수정 * * @author : tuzongxun * @title : monupdateStest * @param * @return void * @date 2016 3:50:08 pm * @throws * / @throws * / @Throws * / @Throws monupdateTest () {usermodel user = new usermodel ( "test111", "test"); userdao.updateuser (user); this.monfindtest (); } / ** * 조건 별 쿼리 * * @author : tuzongxun * @title : monfindforruq * @param * @return void * @date 2016 년 5 월 13 일 4:10:53 pm * @throws * / @throws * / @Throws * / @Throws * / @Throws * / @Throws * / @Throws {string username = "test111"; List <Scormodel> usermodels = userDao.FindForRequery (username); if (usermodels! = null && usermodels.size ()> 0) {for (usermodel user : usermodels) {system.out.println (user.getusername () + ":" + user.getpassword ()); }}}} 후반 단계 : 데모에서 데모를 다운로드하십시오
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.