Há um artigo no registro anterior de que, sem usar o Spring, ele conecta e opera diretamente o banco de dados MongoDB no código Java. Aqui, registraremos isso ao usar a operação simples, simples do MongoDB em Java.
Configuração do pacote Maven:
Como envolve Spring e SpringMVC, também é necessário importar seus pacotes relacionados:
<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"> <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> <pendências> <pendency> <voundid> org.springframework.data </purpuld> <stifactid> spring-data-mongodb </stifactId> <bours> 1.8.0.RELEAXE </versão> <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> <roupidId> org.springframework </frugiD> <TRAFACTID> Spring-test </sutifactId> <versão> 4.1.6.reLease </sisters> </dependency> <pendency> <puperid> Junit </Groupid> </dependência> JUNIT> JUNFACTID> <BULIDEM> </SUPERENÇÃO> </Pundid> <PuerpId> org.springframework </frugiD> <stifactId> Spring-Context </ArtifactId> <Version> 4.1.7.release </sipers> </dependency> <pendency> <pulp-springfort.springframework </groupid> <ArtifactId> Spring-Conxt-Support </artift. Artift. </dependency> </dependency> <brupt> <flugins> <lugin> <stifactId> maven-compiler-plugin </stutifactId> <versão> 2.3.2 </version> <figuration> <socerM> 1.7 </fonte> <l-Target> 1.7 </-Target> <decoding> utf-8-8 </COTINGLER> <Ootclasspath> $ {java.home} /lib/rt.jar; $ {java.home} /lib/jce.jar </ootclasspath> </compilarargudes> </configature> </flugin> <//FinalName> spring_mongo </finalname> Configuração básica da primavera:
Principalmente, é para ativar a varredura de anotação, etc.:
<?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://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/task http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd "> <!-Scan Automatic (injeção automática)-> <Contexto: Component-Scan Package =" spring_mogo.dao.daoimp "/> <! Resource = "Spring-MONGODB305.XML" /> <!-LIGUEN ON Anotation-> <Contexto: Anotação-Config /> < /Beans>
Spring conecta o MongoDB e estabelece configurações para fábricas relacionadas:
<? xml versão = "1.0" coding = "utf-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http:/wwww.w3 xmlns: p = "http://www.springframework.org/schema/p" xmlns: Mongo = "http://www.springframework.org/schema/data/mongo" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-bans-3.0.xsd http://www.springfringfringfringfringfringwanswanswansweansks.xsd http://www.springframework.org/schema/data/mongo/spring-mongo.xsd "> <!-Configuração da mola para conectar-se ao banco de dados MongoDB-> <Mongo: Mongo-Client Host =" 192.168.0.201 "Port = 2710" 2710 "2710" 2710 "2710" 2710 "2710" 2710 "2710" 2710 "2710" 2710 "2710" 2710 "2710" 2710 "2710" 2710 "2710:" 192.168.0.201 ". credenciais = "TUZONGXUN: 123456@Mongotest" id = "Mongo"> <Mongo: Client-Options Write-Concern = "Safe"/> </Mongo: Mongo-Client> <Mongotero: DB-Factory Id = "Mongodbactory" "DBNAME =" Mongoste "MONGO-MONGO-MONGO-MONGO-MONGO-MONGO-MONGO-MONGO-MONGO-MONGO-MONGO-MONGO-MONGO-MONGO-REGRADO Método-> <Bean id = "Mongotemplate"> <construtor-arg name = "mongodbFactory" ref = "mongodbFactory"/> </shean> </ Beans>
A classe de entidade correspondente ao banco de dados:
Deve -se notar que a interface serializada precisa ser implementada e o atributo UID está definido, caso contrário, o resultado do retorno do banco de dados não pode ser convertido diretamente em atributos de objeto durante a operação:
pacote spring_mongo.models; importar java.io.serializable; classe pública Usermodel implementa serializável {private estático final serialversionuid = 1L; Nome de usuário privado de string; senha de sequência privada; public UserModel (nome de usuário da String, String senha) {super (); this.UserName = Nome de usuário; this.password = senha; } public string getUserName () {return userName; } public void setUserName (string userName) {this.username = nome de usuário; } public string getPassword () {return senha; } public void setPassword (string senha) {this.password = senha; }} Obtenha o Mongotemplete que opera o MongoDB de acordo com a configuração da primavera e você precisa implementar a interface ApplicationContextAWe:
pacote spring_mogo.dao.daoimp; importar org.springframework.beans.beansception; importar org.springframework.context.ApplicationContext; importar org.springframework.context.applicationContexTAWe; importar org.springframework.data.mongodb.core.mongotemplate; classe abstrata public abstractBasemongotemplete implementa ApplicationContexTAWare {Mongotemplate protegido Mongotemplate; / ** * @Description Defina o Mongotemplate de acordo com o arquivo de configuração * @param mongotemplate */ public void setMongotemplate (mongotemplate mongotemplate) {this.Mongotemplate = mongotemplate; } @Override public void setApplicationContext (ApplicationContext ApplicationContext) lança beansexception {Mongotemplate Mongotemplate = ApplicationContext.getBean ("Mongotemplate", Mongotemplate.class); setMongotemplate (Mongotemplate); }} A interface para operar o banco de dados e a classe de implementação correspondente:
A adição, exclusão, modificação e pesquisa mais básicas são demonstradas. O que deve receber atenção é a declaração de parâmetros e a conversão da classe de entidade ao receber os dados retornados:
(1) Interface:
pacote spring_mogo.dao; importar java.util.list; importar spring_mongo.models.usermodel; interface pública Userdao { / ** * Dados da consulta * * @Author: TUzongxun * @title: findall * @param @return * @return list <Usemodel> * @Date 13 de maio de 2016 15:07:39 * @THOWS * / public List <Usemodel> FindAllAll (); / ** * Novos dados * * @Author: TUZongxun * @title: insertUser * @param @param Usuário * @return void * @date 13 de maio de 2016 15:09:45 * @THOWS */ public void InsertUser (usuário do usuário); / ** * Excluir dados * * @Author: TUZONGXUN * @TITLE: REMOVIRUSER * @PARAM @param Nome de usuário * @return void * @date 13 de maio de 2016 15:09:55 * @THOWS */ public void RemowerUser (String Username); / ** * Modificar dados * * @Author: TUZONGXUN * @TITLE: UpdateUser * @param @param Usuário * @return void * @date 13 de maio de 2016 15:10:06 * @THOWS */ public void updateUser (usuário UserModel); / ** * Query by Condition * * @Author: TUZONGXUN * @TITLE: FindForReQuery * @param * @return void * @date 13 de maio de 2016 15:23:37 * @THOWS */ Public List <UserModel> FindForReQuery (String UserName); } (2) Classe de implementação, aqui precisamos herdar a classe AbstractBaseMongotemplete, de modo a obter Mongotemplete para várias operações:
pacote spring_mogo.dao.daoimp; importar java.util.list; importar org.springframework.data.mongodb.core.query.criteria; importar org.springframework.data.mongodb.core.query.query; importar org.springframework.data.mongodb.core.query.update; importar org.springframework.tereotype.component; importar spring_mogo.dao.userdao; importar spring_mongo.models.usermodel; importação com.mongodb.basicdbobject; importação com.mongodb.dbobject; @Component("UserDaoImp") public class UserDaoImp extends AbstractBaseMongoTemplete implements UserDao { /** * Query all data* * @author: tuzongxun * @Title: findAll * @Description: TODO * @param @return * @date May 13, 2016 3:10:29 PM * @throws */ @Override public List<UserModel> findAll () {// A classe de cadáver correspondente e o nome da coleção correspondente da coleção precisam ser definidos, para que o resultado da consulta seja mapeado diretamente <UseMerModel> userList = mongotemplate.findall (userModel.class, "usuário"); return userlist; } / ** * Novos dados * * @Author: TUzongxun * @title: insertUser * @Description: TODO * @param @param Usuário * @Date 13 de maio de 2016 15:10:45 * @THOWS * / @Override public void InsertUser (Usermodel User) {// Defina o document BasicDBObject (); object.put ("nome de usuário", user.getUserName ()); object.put ("senha", user.getpassword ()); mongotemplate.insert (objeto, "usuário"); } / ** * Exclua dados de acordo com as condições * * @Author: tuzongxun * @title: removeuser * @description: TODO * @param @param nome de usuário * @date 13 de maio de 2016 3:11:01 PM * @Throws * / @Override Void Removeser (stringername) {/ set Critérios critérios = novos critérios ("nome de usuário"); critério.is (nome de usuário); query.addcriteria (critério); mongotemplate.remove (consulta, "usuário"); } / ** * Modificar dados * * @Author: TUzongxun * @title: updateUser * @Description: TODO * @param @param Usuário * @date 13 de maio de 2016 15:11:12 * @Throws * / @Override public void UpdateUser (Usermodel User)) {// Set Modification Condições Pergunta Perguntar Critérios critérios = novos critérios ("nome de usuário"); critério.is (user.getUserName ()); query.addcriteria (critério); // Definir Modificação Conteúdo Update Update = Update.Update ("Senha", User.getPassword ()); // Parâmetros: Condições de consulta, altere o resultado, nome da coleção Mongotemplate.UpDateFirst (consulta, atualização, "Usuário"); } / ** * Consulta com base na condição * * @Author: tuzongxun * @title: findForRequery * @Description: TODO * @param @param username * @date 13 de maio de 2016 4:08:15 PM * @THOWS * / @Override Public List <UermerModel> Finderyery (stringery15); Critérios critérios = novos critérios ("nome de usuário"); critério.is (nome de usuário); query.addcriteria (critério); // Condição de consulta, classe de entidade correspondente ao conjunto, lista de nomes de conjunto <UserModel> userList = mongotemplate.find (Query, Usermodel.class, "User"); return userlist; }} Classe de teste:
Para verificar a correção do código e configuração acima, o código da classe de teste é o seguinte:
pacote spring_mongo.test; importar java.util.list; importar org.junit.test; importar org.junit.runner.runwith; importar org.springframework.beans.factory.annotation.autowired; importar org.springframework.test.context.ContextConfiguration; importar org.springframework.test.context.junit4.springjunit4classrunner; importar spring_mogo.dao.userdao; importar spring_mongo.models.usermodel; @Runwith (springjunit4classrunner.class) @ContextConfiguration (Localizações = {"ClassPath: spring.xml"}) public class Mongotest {@AUTOWIRED PRIVADO USERDAO Userdao; / ** * Teste de Query * * @Author: TUzongxun * @title: Monfindtest * @param * @return void * @date 13 de maio de 2016 15:27:51 pm * @throws */ @test public void monfindtest () {list <ouserModel> usemodels = userdao.ft. if (userModels! = null && userModels.size ()> 0) {for (userModel User: userModels) {System.out.println (user.getUserName () + ":" + user.getpassword ()); }}} / ** * Inserir teste de dados * * @Author: TUzongxun * @title: MoninsertTest * @param * @return void * @date 13 de maio de 2016 15:27:38 pm * @Throws * / @test public void MoninserTest () {usemermermermermodel (@Test Public Void MoninserTest (), {usemermermermermodel (@Test TestTest "; userdao.insertUser (usuário); this.monfindTest (); } / ** * Excluir teste * * @Author: TUzongxun * @title: monremovetest * @param * @return void * @date 13 de maio de 2016 15:28:06 * @THOWS * / @Test public void monroMoveTest () {string username = "" test111 "; userdao.removeUser (nome de usuário); this.monfindTest (); } / ** * Modificação de teste * * @Author: TUzongxun * @Title: MONUPDATETEST * @param * @return void * @date 13 de maio de 2016 15:50:08 * @THOWS * / @Test public void MONUPDATETESTEst () {usemodel user = usermermerM111 "TestEst11", "Testermodel) / usermodel (" Test111111111111111111111111111111 "testermodel usermodel; userdao.updateUser (usuário); this.monfindTest (); } / ** * consulta por condição * * @Author: TUZONGXUN * @TITLE: MONFINDFORRUQ * @param * @return void * @date 13 de maio de 2016 16:10:53 * @THOWS * / @Test public void MonfindForruq () {string username = "Test111"; List <UserModel> userModels = userdao.findforreQuery (nome de usuário); if (userModels! = null && userModels.size ()> 0) {for (userModel User: userModels) {System.out.println (user.getUserName () + ":" + user.getpassword ()); }}}} Baixe a demonstração no estágio posterior: demonstração
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.