您当前的位置:首页 > 电脑百科 > 数据库 > 百科

java对MongoDB数据库操作

时间:2019-11-04 13:30:38  来源:  作者:

此篇写的是MongoDB数据库在JAVA程序中的基本功能,这是一篇多年前写的手记,因此采用的技术比较老(采用的是MyEclipse和Jar包的方式),虽然现有的技术已经更新换代,但操作原理基本相同,maven跟Jar也没多少区别,Spring的XML与注解意思也一样,此篇传送的是一种思想,代码只作参考,

使用MyEclipse对MongoDB数据库进行增删改查操作

1.导入JAR包

java对MongoDB数据库操作

 

使用了Spring3.0;此类包,可以上网查询“MongoDB相关JAR包”

2.创建一个Person实体类

源代码如下:

public class Person(){
//属性
Private String id;	 //id
Private String name;	 //name
Private int age;	 //age
//构造方法
public Person(){
}
public Person(String name,int age){
this.name = name;
this.age = age;
}
public Person(String id,String name,int age){
this.id	 = id;
this.name = name;
this.age = age;
}
public String toString(){
return “Person[ id = ”+id+“name=”+name+“age=”+age +”]”;
}
/**以下为属性的get/set方法**/
.................................
}
 
/**以上代码中一共有三个构造方法,用于传递参数数据**/ 

 

java对MongoDB数据库操作

 

 

3.创建一个方法接口

1. 创建一个名为AbstractRepository 的接口,源代码如下:

public interface AbstractRepository(){
//增加方法
public void insert(Person person);
//按ID查询对象
public Person findOne(String id);
//查询所有
public List<Person> findAll();
//按ID删除
public void removeOne(String id);
//删除所有
public void removeAll();
//查询并修改
public void findAndModfy(String id);
}

 

java对MongoDB数据库操作

 

 

4.接口方法实现类

1.创建一个名为PersonRepository的类并现实AbstractRepository 接口

源代码如下:

public class PersonRepository implements AbstractRepository{
 
Private MongoTemplate mongoTemplate;
 
/**mongoTemplate的get/set方法**/
public MongoTemplate getMongoTemplate(){
return mongoTemplate;
} 
 
public void setMongoTemplate(MongoTemplate mongoTemplate) {
this.mongoTemplate = mongoTemplate;
}
 
//查询所有
public List<Person> findAll(){
return getMongoTemplate().find(new Query, Person.class);
}
 
 
 
//查询修改
public void findAndModify(){
getMongoTemplate().updateFirst(new Query(Criteria.where(“id”)).is(id) ,
new Update().inc(“age” , 3));
}
 
 
 
 
//按条件查询
public List<Person> findAll(){
Pattern pattern = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
Criteria criteria = new Criteria(“name”).regex(pattern.toString());
return getMongoTemplate().find(new Query(criteria), Person.class)
}
 
 
 
 
//按ID查询对象
public Person findOne(String id){
return getMongoTemplate().findOne(new 
Query(Criteria.where(“id”).is(id), Person.class));
}
 
 
 
//增加
public void insert(Person person){
getMongoTemplate().insert(person);
}
 
 
 
 
//删除所有
public void removeAll(){
List<Person>list = this.finAll();
If(list != null){
for(Person person:list){
getMongoTemplate().remove(person)
 
}
}
}
 
 
 
//按ID删除
public void removeOne(String id){
Criteria criteria = Criteria.where(“id”).in(id);
if(criteria != null){
Query query = new Query(criteria);
if(query != null && getMongoTemplate().findOne(query,Person.class)){
getMongoTemplate().remoev(getMongoTemplate().findOne(query,
Person.class));
}
}
}
}

 

5.配置ApplicationContext.xml

我们使用了Spring,自然要配置ApplicationContext;因为各版本不同,所以ApplicationContext.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-3.0.xsd http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.0.xsd

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

<!--以下为Spring配置-->

<!--设置MongoDB的连接端口-->

<mongo:mongo host="localhost" port="27017"></mongo:mongo>

<bean

id="mongoTemplate" class="org.springframework.data.document.mongodb.MongoTemplate">

<constructor-arg ref="mongo"/>

<constructor-arg name="databaseName" value="db"/>

<constructor-arg name="defaultCollectionName" value="person"/ >

</bean>

<!--配置bean,把PersonReposiory的实现类注入-->

<bean

id="personRepository" class="com.mongo.repository.PersonRepository">

<property name="mongoTemplate" ref="mongoTemplate"/>

</bean>

</beans>

ApplicationContext.xml代码如图,虽然左上角出现红X的错误提示。提示的

信息大概是有重复的注释。不用去管他,只要代码里面没有红线就好。

java对MongoDB数据库操作

 

 

6.写测试类进行测试

创建一个有mian方法的测试类Test:部分方法的源代码如下:

public class Test{
 
private static log log = logFactory.getlog(Test.class.getName());
 
private AbstractRepository pr = null;
 
//初始方法
public void init(){
log.debug(“开始启动”);
ApplicationContext ac = new ClassPathXmlApplicationContext(
“applicationContext.xml”);
pr = (PersonRepository) ac.getbean(“personRepository”);
}
 
//添加方法
public void insert(){
Person p = new Person(“id1”,“cuiran”,27);
pr.insert(p);
log.debug(“添加成功!”);
}
 
 
//按ID查询对象
public void finOne(){
String id = “id1”;
Person p = pr.findOne(id);
log.debug(p);
}
}
 
 
//查询所有
public void findAll(){
List<Person> list = pr.findAll();
log.debug(“查询结果:”);
for(Person p:list){
log.debug(p.toString);
}
}
 
//测试方法
public void start(){
init();	 //执行初始化
insert();	 //执行添加方法
}
 
 
//mian方法
public static void main(String args []){
Text text = new Text();
 test.start();
}


Tags:java MongoDB   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除,谢谢。
▌相关推荐
此篇写的是MongoDB数据库在JAVA程序中的基本功能,这是一篇多年前写的手记,因此采用的技术比较老(采用的是MyEclipse和Jar包的方式),虽然现有的技术已经更新换代,但操作原理基本相...【详细内容】
2019-11-04  Tags: java MongoDB  点击:(78)  评论:(0)  加入收藏
▌简易百科推荐
初学者的数据库索引简介> Congratulations今天在ORM的时代,我们作为开发人员不必经常触摸数据库。我自己自己建立了我的第一个项目而不在项目内写一行的原始SQL。它起初工作...【详细内容】
2021-07-12  闻数起舞    Tags:SQL查询   点击:(5)  评论:(0)  加入收藏
如果一切似乎都在控制下,你就不会够快”> Photo by Christina Morillo (original). Thank you!几乎所有用于最终用户的Web服务都需要存储数据。它们几乎所有所有人都将它们存...【详细内容】
2021-07-12  闻数起舞    Tags:数据库性能   点击:(5)  评论:(0)  加入收藏
系统数据库和用户数据库数据库有两种:系统数据库,另一种是需要用户创建的数据库,右键新建数据库(称之为用户数据库) 创建数据库必须了解的概念要创建自己的数据库,首先要弄清楚两...【详细内容】
2021-07-09  技术小菜    Tags:数据库   点击:(6)  评论:(0)  加入收藏
分库分表介绍:分库分表的目的是为了系统高并发、高可用。分库和年发表是两回事,两个概念,都是为了防止数据库服务因为同一时间内访问量过大导致宕机而设计的一种应对策略。一、...【详细内容】
2021-06-28  从孩子开始学编程    Tags:分库分表   点击:(16)  评论:(0)  加入收藏
本文讲解窗口函数的概念,窗口函数与数据分组的功能相似,可以指定数据窗口进行统计分析,但窗口函数与数据分组又有所区别,窗口函数对每个组返回多行,而数据分组对每个组只返回一行...【详细内容】
2021-06-25  大话数据分析    Tags:SQL数据分析   点击:(15)  评论:(0)  加入收藏
MongoDB 简介MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。它的最大特点是:&bull;特别适合存储大量的无结...【详细内容】
2021-06-25  锐玩道    Tags:MongoDB   点击:(25)  评论:(0)  加入收藏
class Integration(Base, ModelBase, ModelSerializer): __tablename__ = &#39;integration&#39; id = Column(Integer, primary_key=True) domain = relationship...【详细内容】
2021-06-24  lizhihua0625    Tags:sqlalchemy   点击:(16)  评论:(0)  加入收藏
我们渴望通过数据来增强和改善商业和生活的各个方面,这驱使我们在大规模管理数据方面进行范式转变。 尽管过去十年的技术进步已解决了数据量和数据处理计算的规模问题,但它们无法解决其他方面的规模问题:数据格局的变化,...【详细内容】
2021-06-23  ThoughtWorks  今日头条  Tags:Data Mesh   点击:(19)  评论:(0)  加入收藏
一. 前台管理1. 轮播图(5张),首页头部大图,注册登录页左侧大图,logo图,导航条广告二. 后台管理1. 站点用户管理1. 系统用户 SystemUser 列名 数据类型 ...【详细内容】
2021-06-23  大壮二壮学剪辑    Tags:数据库表   点击:(15)  评论:(0)  加入收藏
阿里云Tair云原生内存数据库线上名字为阿里云数据库Redis企业版(又称阿里云Tair),从2009年开始正式承载集团业务,是一款历经磨练的企业级产品。它完全兼容Redis的数据结构和通讯协议,包括API接口,并且在内部逐步打磨的过程...【详细内容】
2021-06-21  数据库技术达摩院    Tags:Tair云   点击:(18)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条