java对MongoDB数据库操作

此篇写的是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;//idPrivate String name;//namePrivate 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数据库操作】 
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"/>


推荐阅读