Mongodb和Spring整合_02

1.导入相关jar

 <properties>
        <spring.version>4.2.3.RELEASE</spring.version>
    </properties>


    <dependencies>
        <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>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.4</version>
        </dependency>
    </dependencies>

2.创建spring-mongo配置文件

 <!--连接mongodb-->
    <mongo:mongo id="mongo" host="127.0.0.1" port="27017"></mongo:mongo>

<!-- mongoTemplate 对mongo一个封装 ,通过构造器注入-->
    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
        <constructor-arg ref="mongo"></constructor-arg>
        <constructor-arg name="databaseName" value="数据库名"></constructor-arg>
    </bean>

3.创建实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
@Document       //代表mongodb的实体
public class Car {

    @Id //主键
    private String id;

    private String name;

    private Date time;

}

4.创建测试类(保存方法)

第一种方式:spring整各Junit测试

在这里插入图片描述
在这里插入图片描述
相关代码:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring-mongo.xml")
public class MongoTest{

   @Autowired
    private MongoTemplate mongoTemplate;


    @Test
    public void test1(){
        Car c = new Car();
        c.setName("布加迪威龙");
        c.setTime(new Date());
        mongoTemplate.save(c);
    }

第二种方式

在这里插入图片描述

在这里插入图片描述
相关代码:

public class MongoTest{

    private MongoTemplate mongoTemplate;


    @Before
    public void before(){
    ClassPathXmlApplicationContext mo = new ClassPathXmlApplicationContext("classpath:spring-mongo.xml");
        mongoTemplate=(MongoTemplate) mo.getBean("mongoTemplate");
    }


    @Test
    public void test2(){
        Car a = new Car();
        a.setName("法拉利");
        a.setTime(new Date());
        a.setPrice(78);
        mongoTemplate.save(a);
    }

5.查询所有

在这里插入图片描述

6.条件查询

  • Query导包
    在这里插入图片描述
  • 单查询相关代码:
/**
     * 单条件查询
     */
    @Test
    public void test4(){
        Query query = new Query();
        Criteria where = new Criteria();
       /* where.and("price").lt(78); //查询价格小于78
        where.and("price").is(78);//查询价格是78*/
        where.and("price").lte(78);//查询小于等于78
        query.addCriteria(where);
        List<Car> cars = mongoTemplate.find(query, Car.class);
        System.out.println(cars);
    }
  • 多条件查询代码:
 /**
     * 多条件查询
     */
    @Test
    public void test5(){
        Query query = new Query();
        Criteria where1= new Criteria();
        where1.and("price").lte(78);
        Criteria where2= new Criteria();
        where2.and("price").gte(50);
        query.addCriteria(new Criteria().andOperator(where1,where2));
        List<Car> cars = mongoTemplate.find(query, Car.class);
        System.out.println(cars);
    }
  • 分页
 /**
     * 分页查询
     */
    @Test
    public void test6(){
        int page=1; //当前页
        int rows=3; //每页条数
        Query query = new Query();
        query.skip((page-1)*rows).limit(rows);
        List<Car> cars = mongoTemplate.find(query, Car.class);
        System.out.println(cars);
    }

7.修改

/**
     * 修改
     */
    @Test
    public void test7(){
        Query query = new Query();
        Criteria where = new Criteria();
        where.and("price").is(100);
        query.addCriteria(where);
        Update update = new Update();
        update.set("price",10);
        mongoTemplate.updateFirst(query,update,Car.class); //修改第一条符合的数据
       // mongoTemplate.updateMulti(query,update,Car.class);//修改所有符合的数据

    }

在这里插入图片描述

8.删除

 /**
     * 删除
     */
    @Test
    public void test8(){
        Query query = new Query();
        Criteria where = new Criteria();
        where.and("price").is(10);
        query.addCriteria(where);
        mongoTemplate.remove(query,Car.class);
    }

猜你喜欢

转载自blog.csdn.net/weixin_44100514/article/details/87389150