使用 Morphia 和 MongoDB 實現持久化
阿新 • • 發佈:2018-12-24
直接來一個簡單的demo:
新建一個maven java project(maven-archetype-quickstart):
DBHelper:
package com.mongo.dao; import com.mongodb.Mongo; import com.mongodb.MongoClient; import org.mongodb.morphia.Datastore; import org.mongodb.morphia.Morphia; /** * Created by hejy on 2016/3/18. */ public class DBHelper { public Datastore ds; public DBHelper(){ //初始化資料 init(); } public void init(){ try{ Mongo mongo = new Mongo("localhost"); MongoClient mongoClient=new MongoClient("localhost"); ds = new Morphia().createDatastore(mongoClient, "mydb"); } catch(Exception e){ e.printStackTrace(); } } }
測試類:
package com.mongo; import com.mongo.dao.DBHelper; import com.mongo.model.Entry; import org.mongodb.morphia.Datastore; import org.mongodb.morphia.query.Query; import org.mongodb.morphia.query.UpdateOperations; import java.util.List; /** * Unit test for simple App. */ public class MongoDBTest { private static DBHelper dbHelper=new DBHelper(); private static Entry en=new Entry(); private static Datastore db=dbHelper.ds; public static void queryAll(){ Query<Entry> query=db.createQuery(Entry.class); List<Entry> list=query.asList(); for(Entry entry:list){ System.out.println(entry); System.out.println(entry.getId()); } } public static void add(){ int num=(int)System.currentTimeMillis(); for(int i=0;i<10;i++){ Entry en=new Entry(); en.setId(num++); en.setName("hjy"); db.save(en); } } public static void update(){ //將name==hjy的修改為name=11111 // Query<Entry> query = // db.createQuery(Entry.class).field("name").equal("hjy"); // UpdateOperations<Entry> uo = // db.createUpdateOperations(Entry.class).set("name", // "11111"); // db.update(query, uo); // System.out.println("OK"); //將id為-1991880012的文件修改為name=hejingyuan Query<Entry> query = db.createQuery(Entry.class).field("id").equal(-1991880012); UpdateOperations<Entry> uo = db.createUpdateOperations(Entry.class).set("name", "hejingyuan"); db.update(query, uo); System.out.println("OK"); } public static void main(String args[]){ // add(); queryAll(); update(); } }
執行結果:
說明:
在操作之前我們不需要給mongodb建立資料庫,當我們往資料庫中存入資料時,資料庫會自動建立。