В предыдущей записи есть статья о том, что без использования пружины она напрямую подключает и управляет базой данных MongoDB в коде Java. Здесь мы записываем это при использовании весны, простой работой MongoDB в Java.
Конфигурация пакета 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/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <doliderversion> 4.0.0 </modelversion> <groupid> spring_mongo </GroupId> <ratifactid> spring_mongo </artifactid> <packaging> Ware </packaging> <serse> 0.0.1-snapshot </artifactid> <packaging> war waregeging> <service> 0.0.1-snapshot </artifactid> </packagen WebApp </name> <url> http://maven.apache.org </url> <dependencies> <dependency> <groupid> org.springframework.data </GroupId> <ratifactid> Spring-Data-mongodb </artifactid> <serse> 1.8.0.Release </версия> </vehybodency> <bery> <bery> <series> 1.8.0.Release </ression> </vehybodency> </artifactid> <sersive> 1.8.0.Releaseas <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> <groupId> org.springframework </GroupId> <ArtifactId> Spring-test </artifactId> <sersive> 4.1.6.Release </version> </deploydency> <dehyederiny> <groupid> junit </GroupId> <Artifactid> junit </artifactid> <serse> 4.11 </version> </зависимость> <DegyBact> <groupId> org.springframework </GroupId> <ArtifactId> Spring-Context </artifactId> <sersion> 4.1.7.Release </version> </depertive> <dehipect> <groupid> org.springframework </groupid> <artifactid> spring-context-support </artifactid> <версии> 4.0.0.0.0. </depervice> <buld> <blicins> <plagin> <ratifactid> maven-compiler-plugin </artifactid> <serse> 2.3.2 </version> <configuration> <source> 1.7 </source> <Target> 1.7 </target> <concoding> utf-8 </incoding> <compilererguments> <verbose> <botclasspath> $ {java.home} /lib/rt.jar; $ {java.home} /lib/jce.jar </bootclasspath> </compilerarguments> </configuration> </placin> </placins> <finalName> Spring_mongo </finalName> </build> Спринг -базовая конфигурация:
Главным образом, это включить сканирование аннотаций и т. Д.:
<? xml version = "1.0" Encoding = "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/context" xsi: schemaLocation = "http://wwww.spramemema xsi: http://wwww.spramema. 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.x.x.x.x.x.x.x.x.x.spramework.org/schema/context/spring-3.0.x.x. http://www.springframework.org/schema/task http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd "> <! base-package = "Spring_mogo.dao.daoimp" /> <!-Файл конфигурации Import MongoDB-> <Import Resource = "Spring-Mongodb305.xml" /> <!-Включите аннотацию-> <Контекст: аннотация-config /> < /beans>
Spring соединяет MongoDB и устанавливает конфигурации для связанных заводов:
<? 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: mongo = "http://www.springframework.org/schema/data/mongo" xsi: schemalocation = "http://www.spramemema http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/data/mongo http://www.spramework.org/schema/data/mongo/springsmong.springs-mongsd. <!-Конфигурация пружины для подключения к базе данных MongoDB-> <Mongo: Mongo-Client Host = "192.168.0.201" Port = "27017" Coldenties = "Tuzongxun: 123456@mongotest" id = "mongo"> <mongo: client-option write-concern = "/mongo: mongo: mongo:> </mongo: mongo:> </mongo:> </mongo:> </mongo:> </mongo:> </mongo:> </mongo:> </mongo:> </mongo:> </mongo:> </mongo: <mongo: write-concern = <mongo: db-factory id = "mongodbfactory" dbname = "mongotest" mongo-ref = "mongo" /> <!-просто используйте это, чтобы назвать соответствующий метод-> <bean id = "mongotemplate"> <constructor-arg name = "mongodbfactory" ref = "mongodbfactorate" /> < /beans> < /beange> < /beange> < /beange>
Класс объектов, соответствующий базе данных:
Следует отметить, что сериализованный интерфейс должен быть реализован и установлен атрибут UID, в противном случае результат возврата базы данных не может быть преобразован непосредственно в атрибуты объекта во время операции:
Пакет Spring_mongo.models; импортировать java.io.serializable; открытый класс USERMODEL реализует Serializable {Private Static Long Long SerialVersionUID = 1L; частное имя пользователя; Private String Password; public usermodel (String username, String Password) {super (); this.username = имя пользователя; this.password = пароль; } public String getUsername () {return username; } public void setUsername (string username) {this.username = username; } public String getPassword () {return пароль; } public void setPassword (String password) {this.password = password; }} Получите Mongotempletete, который управляет MongoDB в соответствии с конфигурацией Spring, и вам необходимо реализовать интерфейс ApplicationContextAware:
Пакет Spring_mogo.dao.daoimp; Импорт org.springframework.beans.beansexception; Импорт org.springframework.context.applicationContext; Import org.springframework.context.applicationContextAware; Импорт org.springframework.data.mongodb.core.mongotemplate; Общественный абстрактный класс Abstractbasemongotemplete реализует ApplicationContextaware {защищенный монготарский монготоперат; / ** * @description set mongotemplate в соответствии с файлом конфигурации * @param mongotemplate */ public void setmongotemplate (mongotemplate mongotemplate) {this.mongotemplate = mongotemplate; } @Override public void setApplicationContext (ApplicationContext ApplicationContext) Throws BeanSexception {mongotemplate mongotemplate = ApplicationContext.getBean ("mongotemplate", mongotemplate.class); SetMongotemplate (Mongotemplate); }} Интерфейс для управления базой данных и соответствующим классом реализации:
Выявлено самое основное дополнение, удаление, модификация и поиск. На что следует обратить внимание, так это объявление параметров и преобразование класса объекта при получении возвращаемых данных:
(1) Интерфейс:
Пакет Spring_mogo.dao; импортировать java.util.list; Импорт spring_mongo.models.usermodel; public interface userdao { / ** * Query Data * * @author: tuzongxun * @title: findall * @param @return * @return list <usermodel> * @date 13 мая 2016 г. 3:07:39 * @Throws * / public <SormOdel> findall (); / ** * Новые данные * * @author: tuzongxun * @title: insertuser * @param @param user * @return void * @date 13 мая 2016 г. 15:09:45 * @throws */ public void insertuser (пользователь usermodel); / ** * Удалить данные * * @author: tuzongxun * @title: removeUser * @param @param username * @return void * @date 13 мая 2016 г. 15:09:55 * @Throws */ public void removeUser (String Semername); / ** * Изменить данные * * @author: tuzongxun * @title: updateUser * @param @param пользователь * @return void * @date 13 мая 2016 г. 15:10:06 * @Throws */ public void UpdateUser (пользователь UserModel); / ** * Запрос по условию * * @author: tuzongxun * @title: findforrequery * @param * @return void * @date 13 мая 2016 г. 15:23:37 * @Throws */ public <SorModel> findForRequery (String usermeame); } (2) Класс реализации, здесь нам нужно унаследовать класс AbstractBaseMongotemplete, чтобы получить Mongotemplete для различных операций:
Пакет Spring_mogo.dao.daoimp; импортировать java.util.list; Import org.springframework.data.mongodb.core.query.criteria; Импорт org.springframework.data.mongodb.core.query.query; Импорт org.springframework.data.mongodb.core.query.update; Import org.springframework.stereotype.component; Импорт spring_mogo.dao.userdao; Импорт spring_mongo.models.usermodel; импорт com.mongodb.basicdbobject; Импорт com.mongodb.dbobject; @Component ("userDaoImp") открытый класс userDaoImp расширяет AbstractBaseMongotemteTe Regainsing userDao { / ** * Запросить все данные * * @author: tuzongxun * @title: findall * @description: todo * @param @return * @date 13 мая 2016 г. findall () {// Соответствующий класс трупа и соответствующее имя коллекции коллекции должно быть установлено, чтобы результат запроса был непосредственно сопоставлен с списком <usermodel> userlist = mongotemplate.findall (usermodel.class, "user"); вернуть пользовательский список; } /** * New data* * @author: tuzongxun * @Title: insertUser * @Description: TODO * @param @param user * @date May 13, 2016 3:10:45 PM * @throws */ @Override public void insertUser(UserModel user) { // Set the document object that needs to be inserted into the database DBObject object = new Basicdbobject (); object.put ("username", user.getusername ()); object.put ("пароль", user.getpassword ()); mongotemplate.insert (Object, "user"); } / ** * Удалить данные в соответствии с условиями * * @author: tuzongxun * @title: removeUser * @description: todo * @param @param username * @date 13 мая 2016 г. 3:11:01 * @Throws * / @Override public lementUser (string username) {// set the Delete udete ullete ullete quore Query Query Query Query Query Query Query Query Query Query. Критерии критериев = новые критерии («Имя пользователя»); Критерии.is (имя пользователя); Query.AddCrietria (критерии); mongotemplate.remove (запрос, «пользователь»); } / ** * Модифицировать данные * * @author: tuzongxun * @title: updateUser * @description: todo * @param @param user * @date 13 мая 2016 г. 3:11:12 * @throws * / @override public ududeUser (пользователь usermodel) {// set modifice Query Query = Query Query ();); Критерии критериев = новые критерии («Имя пользователя»); Criteria.is (user.getusername ()); Query.AddCrietria (критерии); // Установить модификацию Содержимого обновления = update.update ("password", user.getpassword ()); // Параметры: условия запроса, изменить результат, имя коллекции mongotemplate.updatefirst (запрос, обновление, «Пользователь»); } /** * 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(); Критерии критериев = новые критерии («Имя пользователя»); Критерии.is (имя пользователя); Query.AddCrietria (критерии); // Условие запроса, класс объектов, соответствующий набору, набор имен, список имен <usermodel> userlist = mongotemplate.find (Query, usermodel.class, "user"); вернуть пользовательский список; }} Тестовый класс:
Чтобы проверить правильность приведенного выше кода и конфигурации, код тестового класса заключается в следующем:
Пакет Spring_mongo.test; импортировать java.util.list; Импорт org.junit.test; Импорт org.junit.runner.runwith; Импорт org.springframework.beans.factory.annotation.autowired; Import org.springframework.test.context.contextConfiguration; Import org.springframework.test.context.junit4.springjunit4classrunner; Импорт spring_mogo.dao.userdao; Импорт spring_mongo.models.usermodel; @Runwith (springjunit4classrunner.class) @contextconfiguration (locations = {"classpath: spring.xml"}) открытый класс mongotest {@autowired private userdao userdao; / ** * Тест запроса * * @author: tuzongxun * @title: monfindtest * @param * @return void * @date 13 мая 2016 г. 3:27:51 * @Throws */ @test public void monfindtest () {list <usermodel> 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 13 мая 2016 г. 3:27:38 PM * @Throws * / @Test public void -moninserttest () {usermodel user = new usermodel ("test1111111111111, userdao.insertuser (пользователь); this.monfindtest (); } / ** * Удалить тест * * @author: tuzongxun * @title: monremovetest * @param * @return void * @date 13 мая 2016 г. 3:28:06 * @Throws * / @Test public void monremovetest () {String username = "test111"; userdao.removeuser (имя пользователя); this.monfindtest (); } / ** * Модификация теста * * @author: tuzongxun * @title: monupdatetest * @param * @return void * @date 13 мая 2016 г., 3:50:08 * @throws * / @test public void monupdatest () {usermodel user = new usermodel ("test111", "test"); userdao.updateuser (пользователь); this.monfindtest (); } / ** * Запрос по условию * * @author: tuzongxun * @title: monfindforruq * @param * @return void * @date 13 мая 2016 г., 16:10:53 * @Throws * / @Test public void monfindforruq () {String username = "test111"; Список <usermodel> usermodels = userDao.findforRequery (имя пользователя); if (usermodels! = null && usermodels.size ()> 0) {for (usermodel user: usermodels) {System.out.println (user.getUsername () + ":" + user.getPassword ()); }}}} Скачать демо на более позднем этапе: демонстрация
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.