MongoDb学习三(spring-data-mongodb)
本文采用2个种配置方式、xml配置 代码配置方式进行数据库的连接。
实现简单的增删该查等一些操作。代码都有注释
官方文档如下
https://docs.spring.io/spring-data/mongodb/docs/2.1.3.RELEASE/reference/html/
具体代码如下
pom文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>SpringMogo</groupId>
<artifactId>chaoba</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <name>chaoba</name>
<url>http://maven.apache.org</url> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> <dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
</dependencies>
</project>
xml配置文件spring.xml 存放到资源文件夹即可
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation=
"http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- Default bean name is 'mongo' -->
<mongo:mongo-client host="localhost" port="27017" id="mongo"/>
<mongo:db-factory dbname="chaoba" mongo-ref="mongo"/> <bean id="MongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory"/>
</bean>
</beans>
文章实体类
package document; import java.util.Date;
import java.util.List; import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field; @Document(collection="artcle_info")
public class Artcle {
@Id()
private String id;
@Field("title")
private String title;
@Field("content")
private String content;
@Field("tags")
private List<String> tags;
@Field("time")
private Date addTIme;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public List<String> getTags() {
return tags;
}
public void setTags(List<String> tags) {
this.tags = tags;
}
public Date getAddTIme() {
return addTIme;
}
public void setAddTIme(Date addTIme) {
this.addTIme = addTIme;
} }
主要代码。增删改查
package SpringMogo.chaoba; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List; import org.bson.types.ObjectId;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update; import document.Artcle; /**
* Hello world!
*
*/
public class App {
/*
* 通过xml配置文件获取mongotemp
*/
private static MongoTemplate mongoTemp;
static {
mongoTemp = (MongoTemplate) new ClassPathXmlApplicationContext("classpath:spring.xml").getBean("MongoTemplate");
} public static void main(String[] args) { // insertArtcle();
// mongoTemp.getCollectionNames().forEach(System.out::println);
// updateArtcle();
// del();
} /*
* 插入。需要吧Document存入list
*/
private static void insertArtcle() {
List<Artcle> list = new ArrayList();
Artcle a = new Artcle();
a.setTitle("暮雪超霸");
a.setAddTIme(new Date());
a.setTags(Arrays.asList("帅哥", "最帅"));
a.setContent("暮雪超霸是一个小帅哥");
list.add(a);
mongoTemp.insert(list, Artcle.class);
} /*
* 修改 修改有多个重载方法。可以指定clas或者指定集合名称、。如果使用集合名称。key就是集合key 如果是clas。写实体名
*/
private static void updateArtcle() {
// 这种方法。如果查询条件不存在。不修改,不插入
mongoTemp.updateFirst(Query.query(new Criteria("title").is("暮雪超霸")), Update.update("content", "暮雪超霸是最帅的小哥哥"),
Artcle.class); // 查询条件如果不存在,。插入数据
mongoTemp.upsert(Query.query(new Criteria("title").is("暮雪超霸111")), Update.update("content", "暮雪超霸是最帅的小哥哥"),
Artcle.class); // 删除指定的key
mongoTemp.updateFirst(Query.query(new Criteria("title").is("暮雪超霸")), new Update().unset("title"), Artcle.class); // 删除数据。不返回数据
mongoTemp.remove(Query.query(Criteria.where("title").is("暮雪超霸")), Artcle.class); // 删除一条并返回数据
Artcle resu = (Artcle) mongoTemp.findAndRemove(Query.query(Criteria.where("title").is("暮雪超霸111")),
Artcle.class);
System.out.println(resu.getTitle());
// 删除多条;并返回数据
List<Artcle> list = mongoTemp.findAllAndRemove(Query.query(Criteria.where("title").is("暮雪超霸111")),
Artcle.class); } private static void del() {
// 删除数据。不返回数据
mongoTemp.remove(Query.query(Criteria.where("title").is("暮雪超霸")), Artcle.class); // 删除一条并返回数据
Artcle resu = (Artcle) mongoTemp.findAndRemove(Query.query(Criteria.where("title").is("暮雪超霸111")),
Artcle.class);
System.out.println(resu.getTitle());
// 删除多条;并返回数据
List<Artcle> list = mongoTemp.findAllAndRemove(Query.query(Criteria.where("title").is("暮雪超霸111")),
Artcle.class);
// 删除集合
mongoTemp.dropCollection(Artcle.class); // 删除库
mongoTemp.getDb().drop();
} private static void select() {
// 带条件查询
List<Artcle> list = mongoTemp.find(Query.query(Criteria.where("title").is("暮雪超霸")), Artcle.class); // 查询所有
List<Artcle> list1 = mongoTemp.findAll(Artcle.class); // 查询个数
long count = mongoTemp.count(Query.query(Criteria.where("title").is("暮雪超霸")), Artcle.class); // 查询一个
Artcle artcle = mongoTemp.findOne(Query.query(Criteria.where("title").is("暮雪超霸")), Artcle.class); // id查询
artcle = mongoTemp.findById(new ObjectId("5c04b4af4a24a32b24d8078c"), Artcle.class); // 分页查询 如果在大量数据下。先排序,然后记录上次最后一条数据id,如果大于上次id。limit 页数
list = mongoTemp.find(Query.query(Criteria.where("title").is("暮雪超霸")).skip(0).limit(10), Artcle.class); // in查询 还有and 大于小于 等方法
list1 = mongoTemp.find(Query.query(Criteria.where("title").in("暮雪超霸", "暮雪超霸1")), Artcle.class);
list1 = mongoTemp.find(Query.query(Criteria.where("title").orOperator(Criteria.where("title").is("暮雪超霸"))),
Artcle.class); // or查询
list1 = mongoTemp.find(Query.query(
new Criteria().orOperator(Criteria.where("title").is("暮雪超霸"), Criteria.where("title").is("暮雪超霸1"))),
Artcle.class); }
}
代码连接
package document; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoClientDbFactory;
import org.springframework.data.mongodb.core.SimpleMongoDbFactory; import com.mongodb.MongoClient;
import com.mongodb.ServerAddress; public class MongoDbCodeContent {
/*
* 代码方式连接
*/ public static void main(String[] args) { MongoClient client = new MongoClient(new ServerAddress("127.0.0.1", 27017)); MongoTemplate mongoTemplate = new MongoTemplate(new SimpleMongoDbFactory(client, "chaoba"));
mongoTemplate.getCollectionNames().forEach(System.out::println); } }
MongoDb学习三(spring-data-mongodb)的更多相关文章
- spring data mongodb 配置遇到的几个问题
一. mongodb 2.2版本以上的配置 spring.data.mongodb.uri = mongodb://newlook:newlook@192.168.0.109:27017/admin ...
- Spring Data MongoDB 三:基本文档查询(Query、BasicQuery)(一)
一.简单介绍 Spring Data MongoDB提供了org.springframework.data.mongodb.core.MongoTemplate对MongoDB的CRUD的操作,上一 ...
- Spring Data MongoDB 三:基本文档查询(Query、BasicQuery
一.简介 spring Data MongoDB提供了org.springframework.data.mongodb.core.MongoTemplate对MongoDB的CRUD的操作,上一篇我 ...
- Spring Data MongoDB 四:基本文档改动(update)(一)
Spring Data MongoDB 三:基本文档查询(Query.BasicQuery)(一) 学习MongoDB 二:MongoDB加入.删除.改动 一.简单介绍 Spring Data Mo ...
- Spring Data MongoDB 五:进阶文档查询(分页、Morphia)(二)
Spring Data MongoDB 三:基本文档查询(Query.BasicQuery)(一) 学习MongoDB 六: MongoDB查询(游标操作.游标信息)(三) 一.简单介绍 Spring ...
- Spring Data MongoDB 一:入门篇(环境搭建、简单的CRUD操作)
一.简介 Spring Data MongoDB 项目提供与MongoDB文档数据库的集成.Spring Data MongoDB POJO的关键功能区域为中心的模型与MongoDB的DBColle ...
- spring data mongodb CURD
一.添加 Spring Data MongoDB 的MongoTemplate提供了两种存储文档方式,分别是save和insert方法,这两种的区别: (1)save :我们在新增文档时,如果有一 ...
- spring data mongodb中,如果对象中的属性不想加入到数据库字段中
spring data mongodb中,如果对象中的属性不想加入到数据库字段中,可加@Transient注解,声明为透明属性 spring data mongodb 官网帮助文档 http://ww ...
- Spring Data MongoDB example with Spring MVC 3.2
Spring Data MongoDB example with Spring MVC 3.2 Here is another example web application built with S ...
- 使用Spring访问Mongodb的方法大全——Spring Data MongoDB查询指南
1.概述 Spring Data MongoDB 是Spring框架访问mongodb的神器,借助它可以非常方便的读写mongo库.本文介绍使用Spring Data MongoDB来访问mongod ...
随机推荐
- Spring Cloud Alibaba 初体验(一) Nacos 配置中心
一.Nacos 下载与初始化配置 本文使用1.2.0,下载地址:https://github.com/alibaba/nacos/releases Nacos 单机模式支持持久化配置到 MySQL 数 ...
- 使用Jmeter测试快速入门
一 创建线程组 1.1.2. 线程组主要包含三个参数:线程数.准备时长(Ramp-Up Period(in seconds)).循环次数. 1.1.3. 线程数:虚拟用户数.一个虚拟用户占用 ...
- navicat连接阿里云ESC里的数据库
1.进入阿里云服务器 ssh 用户名@ip 2.进入数据库 mysql -u root -p 3.设置mysql数据库权限(允许其他服务器连接数据库) grant all privileges on ...
- 第7.26节 Python中的@property装饰器定义属性访问方法getter、setter、deleter 详解
第7.26节 Python中的@property装饰器定义属性访问方法getter.setter.deleter 详解 一. 引言 Python中的装饰器在前面接触过,老猿还没有深入展开介绍装饰 ...
- 第8.21节 Python中__lt__、__gt__等 “富比较”(“rich comparison”)方法用途探究
一. 富比较方法 Python的基类object提供一系列可以用于实现同类对象进行"比较"的方法,可以用于同类对象的不同实例进行比较.他们也是实例方法,定义如下: object.l ...
- 使用pip安装的Python扩展模块是从哪里下载的?
对于初学者才开始使用Python安装扩展模块时,发现只要输入扩展模块名就可以安装,无需先下载再安装,不免疑惑那些要安装的软件是在哪里下载的?是否可以从别的地方下载? 这个问题答案如下: pip安装第三 ...
- python 保存list,map方法
1. 保存list import numpy as np a = [1,2,3,4,5] np.save("number.npy", a) k = np.load("nu ...
- .NET 面试题汇总(带答案)
1.维护数据库的完整性.一致性.你喜欢用触发器还是自写业务逻辑?为什么? 答:尽可能用约束(包括CHECK.主键.唯一键.外键.非空字段)实现,这种方式的效率最好:其次用触发器,这种方式可以保证无论何 ...
- 20分钟带你掌握JavaScript Promise和 Async/Await
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://www.freecodecamp.org/news/learn-promise-a ...
- sql 遍历list
<select id="findadminSaleList" parameterClass="java.util.Map" resultClass=&qu ...