您的位置:首页 > 数据库 > Mongodb

MongoDB与spring整合-04

2019-04-09 19:06 302 查看
引入坐标
<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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: