使用Spring Data MongoDB 对 Mongdb 进行增删改查

package com.mongodb.MongoDB;

public class User {

	private String id;
	private String username;
	private String password;

	public User() {
	}

	public User(String username, String password) {
		this.username = username;
		this.password = password;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	@Override
	public String toString() {
		return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
	}

}
package com.mongodb.MongoDB;
import static org.springframework.data.mongodb.core.query.Criteria.where;
import static org.springframework.data.mongodb.core.query.Query.query;
import static org.springframework.data.mongodb.core.query.Update.update;
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
import org.springframework.test.context.junit4.SpringRunner;
import com.mongodb.MongoClient;

@RunWith(SpringRunner.class)
@SpringBootTest
public class MongoTemplateTests {

	private MongoOperations mongoOps;

	@Before
	// new MongoClient("127.0.0.1")
	// new MongoClient() 不填默认 hostlocal
	public void before() {
		mongoOps = new MongoTemplate(new SimpleMongoDbFactory(new MongoClient(), "mytestdb"));
	}

	@Test
	// 查询数据
	// 一个实体类对应数据库中的一个集合 User 类对应数据库中的user集合
	// User.class 就是查询和User类对应的集合
	public void findTest() {

		// 根据对象ID查询
		User u = new User();
		u.setId("5d8c5bf93078571c20db0d67");
		User findById = mongoOps.findById(u.getId(), User.class);
		System.out.println(findById);

		// 根据ID号查找
		User findOne1 = mongoOps.findOne(query(where("id").is("5d8c5bf93078571c20db0d67")), User.class);
		System.out.println(findOne1);

		// 根据姓名查询 where is
		User findOne2 = mongoOps.findOne(query(where("username").is("跳跳虎")), User.class);
		System.out.println(findOne2);

		// 根据姓名查询 where in
		User findOne3 = mongoOps.findOne(query(where("username").in("托儿索")), User.class);
		System.out.println(findOne3);

		// 多条件查询 where and is
		User findOne4 = mongoOps.findOne(query(where("username").is("儿童劫").and("password").is("123")), User.class);
		System.out.println(findOne4);

		// 查询对应类的集合所有数据
		// 查询数据库与User类对应的集合
		List<User> findAll = mongoOps.findAll(User.class);
		for (User u1 : findAll) {
			System.out.println(u1);
		}

	}

	@Test
	// 插入数据
	// 如果数据库中没有该类对应的集合,默认创建对应集合,然后插入数据
	public void insertTest() {
		// 插入单条数据
		User user = new User("跳跳虎", "123");
		mongoOps.insert(user);

		// 多条数据插入
		List<User> list = new ArrayList<User>();
		list.add(new User("草丛伦", "123"));
		list.add(new User("托儿索", "123"));
		list.add(new User("儿童劫", "123"));
		mongoOps.insertAll(list);

	}

	@Test
	// 更新数据
	public void updateTest() {
		// 修改用户为托儿索的密码为1234
		mongoOps.updateFirst(query(where("username").is("托儿索")), update("password", "1234"), User.class);

		// 修改所有的用户密码为1234
		// apply(update("password", "1234")) 需要更新的内容
		// all() 执行
		mongoOps.update(User.class).apply(update("password", "1234")).all();

	}

	@Test
	// 删除数据
	public void removeTest() {
		// 删除 username 叫跳跳虎的所有用户
		mongoOps.findAllAndRemove(query(where("username").is("跳跳虎")), User.class);

		// 删除查询到 username 叫跳跳虎的第一个用户
		mongoOps.findAndRemove(query(where("username").is("跳跳虎")), User.class);

		// 删除ID为 5d8c5bf93078571c20db0d69 的用户
		User user = new User();
		user.setId("5d8c5bf93078571c20db0d69");
		mongoOps.remove(user);

	}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值