此篇写的是MongoDB数据库在JAVA程序中的基本功能,这是一篇多年前写的手记,因此采用的技术比较老(采用的是MyEclipse和Jar包的方式),虽然现有的技术已经更新换代,但操作原理基本相同,maven跟Jar也没多少区别,Spring的XML与注解意思也一样,此篇传送的是一种思想,代码只作参考,
使用MyEclipse对MongoDB数据库进行增删改查操作
1.导入JAR包
使用了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方法**/.................................} /**以上代码中一共有三个构造方法,用于传递参数数据**/
3.创建一个方法接口
1. 创建一个名为AbstractRepository 的接口,源代码如下:
public interface AbstractRepository(){//增加方法public void insert(Person person);//按ID查询对象public Person findOne(String id);//查询所有public List findAll();//按ID删除public void removeOne(String id);//删除所有public void removeAll();//查询并修改public void findAndModfy(String id);}
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 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 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(){Listlist = 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中的系统默认头代码请复制我以下的来使用,要不然会代码错误:
id="mongoTemplate" class="org.springframework.data.document.mongodb.MongoTemplate">
id="personRepository" class="com.mongo.repository.PersonRepository">
ApplicationContext.xml代码如图,虽然左上角出现红X的错误提示。提示的
信息大概是有重复的注释。不用去管他,只要代码里面没有红线就好。
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 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();}