Im vorherigen Datensatz gibt es einen Artikel, dass er ohne Verwendung von Spring die MongoDB -Datenbank im Java -Code direkt verbindet und betreibt. Hier werden wir das aufzeichnen, wenn der Feder einfacher Betrieb von MongoDB in Java verwendet wird.
Maven -Paketkonfiguration:
Da es sich um Frühlings- und SpringMVC handelt, ist es auch erforderlich, ihre zugehörigen Pakete zu importieren:
<project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance 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> <depeopcies> <abhängigkeit> <GroupId> org.springFramework.data </Groupid> <artifactID> Spring-data-mongoNty> <version> <version> 1.8.0.Release </fusion> <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> <gruppeId> org.springFramework </Groupid> <artifactId> Spring-Test </artifactID> <version> 4.1.6.Release </Version> </abhängig> <Depopentcy> <gruppeId> junit </GroupId> <artifactId> junit </artifactId> <version> 4.11 </Version> </Version> </fusion> </fusion> </fusion> </fusion> </fusion> </fusion> </fusion> </fusion> </fusion> </file </file> </fusion> </fusion> </file </fil. <gruppeId> org.springFramework </GroupId> <artifactId> Spring-Context </artifactId> <version> 4.1.7.Release </Version> </abhängig> <abhängigkeit> <GroupID> org.springFramework </gruppe> <artifactId> Spring-context-support </artifactInework </gruppen> <artifactId> </artifactid> </artifactId> </artifactid> </artifactId> fusion-context-support </artifactFramework </GroupID> 4.0.. </abhängig> <build> <plugins> <PLUGIN> <artifactId> maven-compiler-plugin </artifactId> <version> 2.3.2 </Version> <configuration> <quelle> 1.7 </source> <target> 1.7 </target> <coding> utf-8 </codieren> <compilerargumente> </target> </utf-8 </codieren> <compilerargumente> </actose/<verbose/> <verbose/> <verbose/> </<verbose/> <verbose/> </<cods> <verbose/> <verbose/> <verbose/> <verbose/> <verbose/< <bootclasspath> $ {java.home} /lib/rt.jar; Feder Basic -Konfiguration:
Hauptsächlich soll ein Annotationsscannen usw. aktiviert werden: usw.:
<? 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/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/context/context/context/context/context/contex/context/context/contex/conted./Sconted.-context- http://www.springframework.org/schema/task http://www.springFramework.org/schema/taskoh http://www.springframework.org/schema/task/spring-3.1.XSDRAWRAME. Basis-Package = "Spring_Mogo.dao.daoimp" /> <!-Die Konfigurationsdatei von MongoDB importieren-> <importieren Ressourcen = "Spring-mongoDB305.xml" /> <!-Annotation einschalten-> <Kontext: Annotation-Config /
Spring verbindet MongoDB und stellt Konfigurationen für verwandte Fabriken fest:
<? xmlns: p = "http://www.springframework.org/schema/p" xmlns: mongo = "http://www.spingframework.org/schema/data/mongo" xsi: schemalocation http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/data/mongo http://www.springframe.org/data/data/mongo.mongo.. <!-- spring configuration for connecting to mongodb database --> <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" /> <!-Verwenden Sie dies einfach, um die entsprechende Methode zu nennen-> <bean id = "mongotemplate"> <Constructor-arg name = "mongodbfactory" /mongodbfactory " /> < /ban >-
Die Entitätsklasse entspricht der Datenbank:
Es ist zu beachten, dass die serialisierte Schnittstelle implementiert werden muss und das UID -Attribut festgelegt ist, da das Datenbankrückgabeergebnis während des Vorgangs nicht direkt in Objektattribute konvertiert werden kann:
Paket Spring_Mongo.models; importieren java.io.serializable; Public Class UsModel implementiert serialisierbar {private statische endgültige lange Serialversionuid = 1L; privater String -Benutzername; privates Zeichenfolgenkennwort; public UsModel (String -Benutzername, String -Passwort) {super (); this.username = userername; this.Password = Passwort; } public String getUnername () {return userername; } public void setUnername (String -Benutzername) {this.username = userername; } public String getPassword () {Kennwort zurückgeben; } public void setPassword (String -Passwort) {this.password = password; }} Erhalten Sie MongotemPlete, der MongoDB gemäß der Federkonfiguration betreibt, und Sie müssen die ApplicationContextaware -Schnittstelle implementieren:
Paket 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 implementiert ApplicationContextaware {Protected Mongotemplate Mongotemplate; / ** * @Description mongotemplate gemäß der Konfigurationsdatei * @param mongotemplate */ public void setMongotemplate (Mongotemplate Mongotemplate) {this.mongotemplate = mongotemplate; } @Override public void setApplicationContext (ApplicationContext applicationContext) löst beansexception {mongotemplate mongotemplate = applicationContext.getbean ("Mongotemplate", mongotemplate.class) aus; setMongotemplate (mongotemplate); }} Die Schnittstelle zum Betrieb der Datenbank und der entsprechenden Implementierungsklasse:
Die grundlegendste Addition, Löschung, Änderung und Suche werden gezeigt. Was beachtet werden sollte, ist die Parametererklärung und die Umwandlung der Entitätsklasse beim Empfangen der zurückgegebenen Daten:
(1) Schnittstelle:
Paket spring_mogo.dao; importieren java.util.list; import Spring_mongo.models.usermodel; public interface userDao { / ** * Abfragedaten * * @Author: tuzongxun * @title: findAll * @param @return * @Return List <BENEMODEL> * @DATE 13. Mai 2016 3:07:39 PM * @Throws * / public liste <BeuserModel> fidall (); / ** * Neue Daten * * @Author: tuzongxun * @title: InsertUser * @param @param user * @return void * @date 13. Mai 2016 3:09:45 PM * @Throws */ public voiduser (UsModel -Benutzer); / ** * Daten löschen * * @Author: tuzongxun * @title: removeUser * @param @param username * @return void * @date 13. Mai 2016 3:09:55 PM * @throws */ public void removeUser (String username); / ** * Daten ändern * * @Author: tuzongxun * @title: updateUser * @param @param user * @return void * @date 13. Mai 2016 3:10:06 PM * @Throws */ public void updateUser (UsModel -Benutzer); / ** * Abfrage nach Bedingung * * @Author: tuzongxun * @title: findForRequery * @param * @return void * @date 13. Mai 2016 3:23:37 PM * @Throws */ publiclist <s UsModel> findForRequery (String username); } (2) Implementierungsklasse, hier müssen wir die AbstractBasemongotemPlete -Klasse erben, um Mongotemplete für verschiedene Operationen zu erhalten:
Paket spring_mogo.dao.daoimp; importieren 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; importieren Sie spring_mogo.dao.userdao; import Spring_mongo.models.usermodel; import com.mongodb.basicdbObject; import com.mongodb.dbobject; @Component ("userDaOImp") öffentliche Klasse UserDaOImP erweitert AbstractBasemongotemPlete implementiert UserDao { / ** * alle Daten abfragen * * @Author: tuzongxun * @title: findall * @Description: Todo * @param @return * @date 13. Mai, 2016. Mai 2016, 2016. Mai 2016, 2016.110:10:20:29 pm * @return * @date 13. Mai, 2016. Mai 2016, 2016, 2016.110:10:29 pM LIST <SUMERMODEL> FINDALL () {// Die entsprechende Leicheklasse und der entsprechende Sammlungsname der Sammlung müssen festgelegt werden, damit das Abfrageergebnis direkt zugeordnet ist. Benutzerliste zurückgeben; } / ** * Neue Daten * * @Author: tuzongxun * @title: InsertUser * @Description: todo * @param @param user * @date 13. Mai 2016 3:10:45 PM * @Throws * / @Override public voiduser (UserModel -Benutzer) {// Das dokumentierte Objekt. BasicDBObject (); Object.put ("Benutzername", user.getusername ()); Object.put ("Passwort", user.getPassword ()); mongotemplate.insert (Objekt, "Benutzer"); } / ** * Daten gemäß den Bedingungen löschen * * @Author: tuzongxun * @title: removeUser * @Description: todo * @param @param userername * @date 13. Mai 2016 3:11:01 pm * @throws * / @@override public voiduser (starken username) {// // die Delete, Delete -Query -Query -Query = / // / // //. Kriterienkriterien = neue Kriterien ("Benutzername"); Kriterien.IS (Benutzername); query.addcriteria (Kriterien); mongotemplate.remove (Abfrage, "Benutzer"); } / ** * Daten ändern * * @Author: tuzongxun * @title: updesuser * @Description: todo * @param @param user * @date 13. Mai 2016 3:11:12 PM * @Throws * / @Override Public Void UpdateUser (UserModel -Benutzer) {// Modification -Bedingungen für die Änderung der Änderungen Query Query = New Query (). Kriterienkriterien = neue Kriterien ("Benutzername"); Kriterien.is (user.getUnername ()); query.addcriteria (Kriterien); // Änderungsinhalt inhaltlich update update = update.update ("password", user.getPassword ()); // Parameter: Abfragebedingungen, das Ergebnis ändern, der Sammlungsname Mongotemplate.UpdateFirst (Abfrage, Update, "Benutzer"); } /** * Query based on the condition * * @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(); Kriterienkriterien = neue Kriterien ("Benutzername"); Kriterien.IS (Benutzername); query.addcriteria (Kriterien); // Abfragebedingung, Entitätsklasse, die der festgelegten Set, Name der Namensliste <BENEMODEL> userList = mongotemplate.find (Abfrage, UsModel.Class, "Benutzer") entspricht; Benutzerliste zurückgeben; }} Testklasse:
Um die Richtigkeit des oben genannten Codes und der oben genannten Konfiguration zu überprüfen, lautet der Testklassencode wie folgt:
Paket Spring_Mongo.test; importieren 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.springjunit4ClasRunner; importieren Sie spring_mogo.dao.userdao; import Spring_mongo.models.usermodel; @Runwith (SpringJunit4ClASSRunner.class) @ContextConfiguration (SOPITATIONS = {"CLASSPATH: Spring.xml"}) öffentliche Klasse Mongotest {@autowired private userDao userDao; / ** * Query -Test * * @Author: tuzongxun * @title: monfindtest * @param * @return void * @date 13. Mai 2016 3:27:51 PM * @Throws */ @Test public void monfindTest () {list <userModel> UsModels = userDaNe.findaN (); if (userModels! } } } /** * Insert data test* * @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 (Benutzer); this.monfindTest (); } / ** * Test * * @Author: tuzongxun * @title: monremovetest * @param * @return void * @date 13. Mai 2016 3:28:06 pm * @throws * / @Test public void monremovetest () {String username = "test111"; userDao.removeuser (Benutzername); this.monfindTest (); } / ** * TEST -Modifikation * * @Author: tuzongxun * @title: monUpDateTest * @param * @return void * @date 13. Mai 2016 3:50:08 PM * @Throws * / @Test public void monupdatetest () {usermodel user = new usermodel ("test1111", "test", ",", ","; userDao.Updateuser (Benutzer); this.monfindTest (); } / ** * Abfrage nach Bedingung * * @Author: tuzongxun * @title: monfindforruq * @param * @return void * @date 13. Mai 2016 4:10:53 pm * @throws * / @Test public void monfindfOrq () {Sting username = "test111"; LIST <SustrerModel> usermodels = userDao.findForRequery (Benutzername); if (userModels! }}}} Laden Sie die Demo in der späteren Phase herunter: Demo
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.