扯淡:
【上一章】已经接触了MongoDB 的基础命令,本章将结合普通的java项目和 springboot2.0 分别集成MongoDB。
个人学习总结:
链接:【springboot、springcloud、docker 等,学习目录】
基本的 java 项目:
1、pom 依赖:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver</artifactId>
<version>3.6.3</version>
</dependency>
mongodb-driver 是官方推出的java驱动包,类似JDBC。
2、测试类
2.1、普通查询:
public class MongoDemo {
public static void main(String[] args) {
// 创建连接
MongoClient client=new MongoClient("192.168.25.130",27017);
// 指定数据库
MongoDatabase coolron = client.getDatabase("coolron");
// 指定集合(表)
MongoCollection<Document> user = coolron.getCollection("user");
// 查询所有记录
FindIterable<Document> documents = user.find(); //查询记录获取文档集合
for(Document document:documents){
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>");
System.out.println("_id:" + document.getString("_id"));
System.out.println("name:" + document.getString("name"));
System.out.println("age:" + document.getInteger("age"));
System.out.println("count:" + document.getDouble("count"));
}
// 关闭连接
client.close();
}
}
2.2、条件查询,使用 BasicDBObject 对象封装
public class MongoDemo {
public static void main(String[] args) {
// 创建连接
MongoClient client=new MongoClient("192.168.25.130",27017);
// 指定数据库
MongoDatabase coolron = client.getDatabase("coolron");
// 指定集合(表)
MongoCollection<Document> user = coolron.getCollection("user");
// 构建查询 条件
BasicDBObject bson=new BasicDBObject("age",18);
FindIterable<Document> documents = user.find(bson);
for(Document document:documents){
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>");
System.out.println("_id:" + document.getString("_id"));
System.out.println("name:" + document.getString("name"));
System.out.println("age:" + document.getInteger("age"));
System.out.println("count:" + document.getDouble("count"));
}
//关闭连接
client.close();
}
}
大于:
// 构建查询条件
BasicDBObject bson=new BasicDBObject("age",new BasicDBObject("$gt",18) );
2.3、插入数据:
public static void main(String[] args) {
// 创建连接
MongoClient client=new MongoClient("192.168.25.130",27017);
// 指定数据库
MongoDatabase coolron = client.getDatabase("coolron");
// 指定集合(表)
MongoCollection<Document> user = coolron.getCollection("user");
Map<String,Object> map=new HashMap();
map.put("_id","6");
map.put("name","rose");
map.put("age",56);
map.put("count",80);
Document document=new Document(map);
//插入数据
user.insertOne(document);
client.close();
}
插入数据结果如下:
SpringBoot 集成 MongoDB:
1、主要 pom 依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
<dependencies>
<!-- Spring Boot Web 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Boot Test 依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Spring Boot MongoDB依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
</dependencies>
2、application.properties
# 远程地址
spring.data.mongodb.host=192.168.25.130
# 端口
spring.data.mongodb.port=27017
# 数据库
spring.data.mongodb.database=coolron
3、user 实体
/**
* @Auther: xf
* @Date: 2018/12/13 22:45
* @Description: MongoDB user 集合实体
*/
@Data
public class User implements Serializable {
@Id
private String _id;
private String name;
private Integer age;
private Double count;
}
4、dao
public interface MongoUserDao extends MongoRepository<User, String> {
}
5、service
@Service
public class MongoUserService {
@Autowired
private MongoUserDao userDao;
/**
* 查询全部记录
*/
public List<User> findAll(){
return userDao.findAll();
}
/**
* 根据主键查询实体
*/
public User findById(String id){
User spit = userDao.findById(id).get();
return spit;
}
/**
* 增加
*/
public void add(User spit) {
spit.set_id(String.valueOf(UUID.randomUUID())); //主键值
userDao.save(spit);
}
/**
* 更新
*/
public void update(User spit) {
userDao.save(spit);
}
/**
* 删除
*/
public void deleteById(String id) {
userDao.deleteById(id);
}
}
6、controller
/**
* @Auther: xf
* @Date: 2018/12/13 22:59
* @Description: MongoDB 测试
*/
@RestController
@RequestMapping("/mongoUser")
public class MongoUserController {
@Autowired
private MongoUserService userService;
/**
* 查询全部数据
*/
@GetMapping
public ApiResult findAll(){
List<User> userList = userService.findAll();
return ApiResult.ok(userList);
}
/**
* 根据ID查询
*/
@GetMapping(value="/{id}")
public ApiResult findOne(@PathVariable String id){
User user = userService.findById(id);
return ApiResult.ok(user);
}
/**
* 增加
*/
@PostMapping
public ApiResult add(@RequestBody User user){
userService.add(user);
return ApiResult.ok();
}
@PutMapping(value="/{id}")
public ApiResult update(@RequestBody User user,@PathVariable String id) {
user.set_id(id);
userService.update(user);
return ApiResult.ok();
}
/**
* 删除
*/
@DeleteMapping(value="/{id}")
public ApiResult deleteById(@PathVariable String id ){
userService.deleteById(id);
return ApiResult.ok();
}
}
7、测试:
7.1、查询所有:
7.2、根据id查询:
总结:
1、普通java项目集成MongoDB,使用官方推荐的driver。
2、SpringBoot 集成MongoDB,其starter集成了driver。
3、基本增、删、改、查可参考上述代码。
配套代码:
https://gitee.com/cpla026/springboot-account2/tree/master/springboot2_parent/MongodbDemo
个人微信公众号,谢谢支持!