MongoDB与spring整合-04

引入坐标
<dependency>  
	<groupId>org.mongodb</groupId>  
	<artifactId>mongo-java-driver</artifactId>  
	<version>3.8.0</version>  
</dependency> 
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>1.10.7.RELEASE</version>
</dependency>
添加配置文件 spring-mongo.xml
<mongo:mongo id="mongo" host="127.0.0.1" port="27017" ></mongo:mongo>
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg ref="mongo"/>
    <constructor-arg name="databaseName" value="库名" />
</bean>

在需要使用Mongodb的地方注入MongoTemplate对象即可使用
在需要用存储到mongodb数据库的实体类中添加@Document和@Id注解

@Document  //代表的他是mongodb的一个实体
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Book implements Serializable{

    @Id //代表的是主键
    private String id;

    private String name;

    private Integer money;

    private Date createTime;
}
  private MongoTemplate mongoTemplate = null;

    @Before
    public void before(){
        //ClassPathXmlApplicationContext:spring提供的一个接口类
        ClassPathXmlApplicationContext cpxa = new ClassPathXmlApplicationContext("classpath:spring-mongo.xml");
        mongoTemplate = (MongoTemplate) cpxa.getBean("mongoTemplate");
    }
新增
 @Test
    public void test1(){
        Book b = new Book();
        b.setName("Java基础");
        b.setMoney(50);
        b.setCreateTime(new Date());
        mongoTemplate.save(b);
    }
查询所有
 /**
     * 查询所有
     */
    @Test
    public void test2(){
    	//第一个query为条件,第二个为要查询的是哪个集合
    	//查询的集合为类名的首字母小写
    	//如:类名为Book 则查询book集合 
        List<Book> books = mongoTemplate.find(null, Book.class);
        System.out.println(books);
    }
单一条件查询
//单一条件查询
    @Test
    public void test3(){
        Query query = new Query();
        Criteria where = new Criteria();
        where.and("money").is(69);
        query.addCriteria(where);
        List<Book> books = mongoTemplate.find(query, Book.class);
        System.out.println(books);
    }
多条件查询
 //多条件查询
    @Test
    public void test4(){
        //条件查询用到Query和Criteria两个对象
        Query query = new Query();
        Criteria where1 = new Criteria();
        //查询出money大于60小于65的
        where1.and("money").lte(65);
        Criteria where2 = new Criteria();
        where2.and("money").gte(60);
        query.addCriteria(new Criteria().andOperator(where1,where2));
        List<Book> books = mongoTemplate.find(query, Book.class);
        System.out.println(books);
    }
分页查询
/**
     * 分页查询
     */
    @Test
    public void test5(){
        int page = 2;
        int rows = 3;
        Query query = new Query();
        query.skip((page-1)*rows).limit(rows);
        List<Book> books = mongoTemplate.find(query, Book.class);
        System.out.println(books);
    }
修改
/**
     * 修改
     */
    @Test
    public void test6(){
        Query query = new Query();
        Criteria where = new Criteria();
        where.and("money").is(50);//将money为50的数据进行修改

        Update update = new Update();
        update.set("money",59);
        mongoTemplate.updateFirst(query,update,Book.class);
    }
删除
/**
     * 删除
     */
    @Test
    public void test7(){
        Query query = new Query();
        Criteria where = new Criteria();
        where.and("money").is(59);
        query.addCriteria(where);
        mongoTemplate.remove(query,Book.class);
    }

猜你喜欢

转载自blog.csdn.net/weixin_44102521/article/details/89158698
今日推荐