初識spring data mongodb
阿新 • • 發佈:2018-11-12
話不多說上demo:
首選配置檔案,主要是連線mongodb資料庫使用:
application.properties
spring.data.mongodb.host=127.0.0.1 spring.data.mongodb.port=27017 spring.data.mongodb.database=mytest
實體類:
UserEntity:
package com.example.demo3.model; import lombok.Data; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; import java.io.Serializable; @Data @Document(collection = "users") public class UserEntity implements Serializable { // private static final long serialVersionUID = -3258839839160856613L; // @ApiModelProperty(value = "使用者標誌", readOnly = true) @Id private int id; private String userName; private String passWord; public UserEntity(int id,String userName,String passWord){ this.id=id; this.userName=userName; this.passWord=passWord; } }
UserDao介面省略實現類如下:
package com.example.demo3.dao.impl; import com.example.demo3.dao.UserDao; import com.example.demo3.model.UserEntity; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; 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; @Component public class UserDaoImpl implements UserDao { @Autowired private MongoTemplate mongoTemplate; /** * 建立物件 * @param user */ @Override public void saveUser(UserEntity user) { mongoTemplate.save(user); } /** * 根據使用者名稱查詢物件 * @param userName * @return */ @Override public UserEntity findUserByUserName(String userName) { Query query=new Query(Criteria.where("userName").is(userName)); UserEntity user = mongoTemplate.findOne(query , UserEntity.class); return user; } /** * 更新物件 * @param user */ @Override public void updateUser(UserEntity user) { Query query=new Query(Criteria.where("id").is(user.getId())); Update update= new Update().set("userName", user.getUserName()).set("passWord", user.getPassWord()); //更新查詢返回結果集的第一條 mongoTemplate.updateFirst(query,update,UserEntity.class); //更新查詢返回結果集的所有 // mongoTemplate.updateMulti(query,update,UserEntity.class); } /** * 刪除物件 * @param id */ @Override public void deleteUserById(int id) { Query query=new Query(Criteria.where("id").is(id)); mongoTemplate.remove(query,UserEntity.class); } /** * 根據id查詢物件 * @param id * @return */ @Override public UserEntity findByUserId(int id){ Query query = new Query(Criteria.where("id").is(id)); UserEntity userEntity = mongoTemplate.findOne(query,UserEntity.class); return userEntity; } } 測試類:UserDaoTest
package com.example.demo3.test; import com.example.demo3.dao.UserDao; import com.example.demo3.model.UserEntity; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest public class UserDaoTest { @Autowired private UserDao userDao; /** * 增 */ @Test public void saveUser(){ UserEntity userEntity = new UserEntity(1,"劉禪","123456"); userDao.saveUser(userEntity); System.out.println("新增使用者"); } /** * 刪 */ @Test public void deleUser(){ userDao.deleteUserById(1); System.out.println("刪除成功"); } /** * 改 */ @Test public void updateUser(){ UserEntity userEntity = new UserEntity(1,"劉二世","654321"); userDao.updateUser(userEntity); System.out.println("更新操作完成"); } /** * 查 */ @Test public void findUser(){ UserEntity userEntity = userDao.findUserByUserName("劉二世"); System.out.println("查詢操作"+userEntity); } /** * 查(根據使用者id) */ @Test public void findUserById(){ UserEntity userEntity = userDao.findByUserId(1); System.out.println("根據id查詢完成"+userEntity); } } pom檔案也丟上來吧:
pom.xml
<?xml version="1.0" encoding="UTF-8"?> <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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>demo3</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>demo3</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>RELEASE</version> <scope>compile</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>RELEASE</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test</artifactId> </dependency> <!--mongodb--> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.3.0</version> </dependency> <!--springdata mongodb--> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>2.0.8.RELEASE</version> </dependency> <!--javax.el--> <dependency> <groupId>javax.el</groupId> <artifactId>javax.el-api</artifactId> <version>2.2.4</version> </dependency> <dependency> <groupId>org.glassfish.web</groupId> <artifactId>javax.el</artifactId> <version>2.2.4</version> </dependency> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> </dependency> <!--been validation--> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>2.0.1.Final</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!--swagger測試--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.4.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
哦了