Spring Data CRUD(MongoDB)
Spring Data CRUD(MongoDB)
对数据库的操作一定要放在@Service
类中,而不是放在 @Controller
类中;且 @Controller
类可以调用 @Service
类的方法,反之则不行。这是 SpringMVC
的经典架构理论。
新增数据
@Autowired
private MongoTemplate mongoTemplate;
public void test() {
Song song = new Song();
song.setSubjectId("s001");
song.setLyrics("...");
song.setName("成都");
mongoTemplate.insert(song);
}
先自动注入 mongoTemplate 再通过.insert() 方法来完成数据插入
查询数据
使用:
mongoTemplate.findById(songId, Song.class)
来寻找数据
其中findById()
方法第 1 个参数就是主键 id,第 2 个参数是具体的类,写法是 类名.class
修改数据
// 修改 id=1 的数据
Query query = new Query(Criteria.where("id").is("1"));
// 把歌名修改为 “new name”
Update updateData = new Update();
updateData.set("name", "new name");
// 执行修改,修改返回结果的是一个对象
UpdateResult result = mongoTemplate.updateFirst(query, updateData, Song.class);
// 修改的记录数大于 0 ,表示修改成功
System.out.println("修改的数据记录数量:" + result.getModifiedCount());
先使用条件对象Criteria
构建条件对象 Query
实例,然后在调用修改对象 Update
的方法 .set()
最后调用 mongoTemplate.updateFirst(query, updateData, Song.class)
方法完成修改
删除数据
Song song = new Song();
song.setId(songId);
// 执行删除
DeleteResult result = mongoTemplate.remove(song);
// 删除的记录数大于 0 ,表示删除成功
System.out.println("删除的数据记录数量:" + result.getDeletedCount());
调用.remove() 方法来删除数据
多条件查询
当我们查询时,往往会查询到多条数据,所以我们一般返回数组:
List<Song> songs = mongoTemplate.find(query, Song.class);
查询方法比较简单,但查询操作的复杂性在于条件,需要先构建好 Criteria 条件对象的实例,来构建 Query 实例:
Query query = new Query(criteria);
而 Criteria 对象一般存在两种情况:
单一条件:Criteria criteria1 = Criteria.where("条件字段名").is("条件值")
即可返回一个条件对象的实例
组合条件:更加或(or)、且(and) 的关系进行组合,多个子条件对象组合成一个总条件对象:
- 或关系:
Criteria criteria = new Criteria();
criteria.orOperator(criteria1, criteria2);
- 且关系:
Criteria criteria = new Criteria();
criteria.andOperator(criteria1, criteria2);
这两个方法的参数,可以输入多个子条件,也可以输入子条件数组
当然,组合条件情况下,也可以多层组合 。
相关文章
- spring的配置文件-applicationContext.xml
- Spring启动过程中实例化部分代码的分析(Bean的推断构造方法)
- Spring Cloud Sleuth的基本概念和作用
- Spring Cloud Stream 高级特性-分组和多通道
- Spring Cloud Bus在服务之间发送和接收消息(二)
- 使用 Spring Cloud Bus 在微服务之间传递消息示例
- spring boot 自动部署方案详解架构师
- Spring Data MongoDB 查询指定字段详解大数据
- Spring Data MongoDB 环境搭建详解大数据
- Spring Cloud(九):分布式配置中心和消息总线详解编程语言
- 用MongoDB实现表的复制(mongodb复制表)
- MongoDB:区分大小写(mongodb大小写)
- 构建强大的 MongoDB 日志系统(mongodb日志系统)
- 如何快速创建 MongoDB 测试数据(mongodb测试数据)
- 分析MongoDB磁盘空间使用情况分析(mongodb磁盘空间)
- MongoDB 启动参数指南(mongodb启动参数)
- MongoDB实现“SQL NoSQL”合一(mongodb支持sql)
- 数据MongoDB中删除数据的方法探究(mongodb删除)
- 『MongoDB:开源化的NoSQL数据库』(mongodb开源)
- 历史悠久的MongoDB:存储着未知历史记载(历史数据mongodb)
- 漏洞MongoDB未授权漏洞行为注意!(mongodb未授权)
- 深挖MongoDB:揭秘主节点的作用与运作原理(mongodb主节点)
- MongoDB中文手册:轻松学习NoSQL(mongodb中文手册)
- 控制MongoDB 数据库访问安全控制(mongodb访问)
- MongoDB开发实战指南(mongodb开发指南)
- MongoDB 数据库还原策略(mongodb还原库)
- MongoDB实现极致搜索引擎(mongodb搜索引擎)
- MongoDB连接配置:实现快速而安全的数据访问(mongodb 连接配置)