mongodb jar包_java对MongoDB数据库操作

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

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

1.导入JAR包

ea1f901970d3da35c4b48c04988e8756.png

使用了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方法**/.................................} /**以上代码中一共有三个构造方法,用于传递参数数据**/ 
d711250e8fff22fc1b7a1c06f8387831.png

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);}
dc755162f8b54a6b32967264c91e6a5a.png

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的错误提示。提示的

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

9914f2222c662f0749acbcd5505158bd.png

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();} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值