MongoDB Java驱动连接基础知识
2012-03-16 15:01
197 查看
Java连接 import com.mongodb.Mongo; import com.mongodb.DB; Mongo m = new Mongo(); Mongo m = new Mongo(“localhost”); Mongo m = new Mongo(“localhost”, 27017); DB db = m.getDB(“mydb”); 使用集合 从数据库中获取所有的集合 Set colls=db.getCollectionNames(); for(String s:colls) { System.out.println(s); } 获取单一的集合 DBCollection coll = db.getCollection(“testCollection”); 插入文档 BasicDBObject doc = new BasicDBObject(); doc.put(“name”, “MongoDB”); doc.put(“type”, ”database”); doc.put(“count”, 1); BasicDBObject info = new BasicDBObject(); info.put(“x”, 203); info.put(“y”, 102); doc.put(“info”, info); coll.insert(doc); BasicDBObjectBuilder——编译对象 强制转换Maps成DBObjects,示例: BasicDBObjectBuilder.start() .add(“name”, “eliot”); .add(“number”, 17) .get(); DBObject myDoc = coll.findOne(); BasicDBObject query = new BasicDBObject(); query.put(“i”, 71); DBCursor cur = coll.find(query); GridFS 文件大小小于4MB的存储机制 允许部分或无序读取块文件 块结构对底层操作系统是透明的 可以在buckets存储文件,MongoDB metaphor 默认是fs bucket 保存文件到GridFS中 def mongo = new Mongo(host) def gridfs = new GridFS(mongo.getDB(”db”)) def save(inputStream, contentType, filename) { def inputFile = gridfs.createFile(inputStream); inputFile.setContentType(contentType) inputFile.setFilename(filename) inputFile.save() } 检索/删除文件 def retrieveFile(String filename) { return gridfs.findOne(filename) } def deleteFile(String filename) { gridfs.remove(filename) } 2.Morphia Apache 2授权 引入了Hibernate/JPA 允许POJOs,实现MongoDB和Java之间转换 支持DAO抽象 支持type-safe查询 兼容GWT、Guice、Spring和DI框架 Morphia注解 @Id @Entity @Embedded @Reference @Indexed @Serialized @Property 创建Morphia POJO import com.google.code.morphia.annotations.*; @Entity(“collectionName”) public class Contact{ @Id private String id; //由MongoDB产生 private String firstName; private String lastName; @Embedded Private List phoneNumbers; //getter 和 setter } 映射POJO到Mongo文档中 Morphia morphia = …; Mongo mongo = …; DB db = mongo.getDB(“contacts”); Contact contact = …; //映射contact成DBObject DBObject contactObj = morphia.toDBObject(contact); Db.getCollection(“personal”).save(contactObj); 从Mongo文档中读取POJO Morphia morphia = …; Mongo mongo = …; DB db = mongo.getDB(“contacts”); String contactId = …; //从集合中加载对象 BasicDBObject idObj = new BasicDBObject(“_id”, new ObjectId(contactId)); BasicDBObjec obj = (BasicDBObject) db.getCollection(“personal”).findOne(idObj); Contact contact = morphia.fromDBObject(Contact.class, obj); DAOs 封装保存和检索对象 POJOs进出的自动转换 可以约束搜索 关键函数:get(),find()或find(constraits),findOne(constraints),deleteById() DAO示例 import com.mongodb.Mongo import com.google.code.morphia.*; class EntryDAO extends DAO { public EntryDAO(Morphia morphia, Mongo mongo) { super(mongo, morphia, “entries”); } } 约束例子 dao.find(new Contrainst() orderByDesc(“dateCreated”) ).asList() dao.find( new Constraits() .field(“dateCreated”).greaterThanOrEqualTo(date).field(“title”). equalTo(params.title) ).asList()
相关文章推荐
- Oracle基础知识(二十三) - 在Oracle的连接视图上进行数据更新操作
- java weblogic oracle相关连接基础知识收集
- C#基础知识[3]:读取web.config中的数据库连接字符串
- 什么是短连接、长连接、Socket(基础知识扫盲)
- (Java 基础知识) Java 连接数据库
- 基础知识系列--Oracle的连接
- java连接SqlSever基础知识
- SQL Server 连接基础知识
- PHP连接数据库基础知识及易错点
- [WAMP网站开发] PHP连接MySQL数据库基础知识
- JDBC 基础知识(一) + 各种数据库连接
- 数据库基础知识(1)--数据库php连接
- Redis基础知识之————如何处理客户端连接
- 蓝牙基础知识进阶——Link manager对连接的控制
- (数据库连接) SQL Server 连接基础知识
- 外键和内外左右连接的基础知识
- android学习中关于Textview,Button,EditText,连接的设置,Intent,Activity不同状态等的一系列基础知识点
- SQL Server 连接基础知识(2)
- 数据库 连接基础知识 等值连接 自然连接
- MS sql server 基础知识回顾(二)-表连接和子查询