您好,欢迎访问一九零五行业门户网

MongoDB之Java测试代码(DAO层)

mongoinit.java是数据库初始化及连接类 mongoutils.java是对mongodb的各种操作方法 mongoinit.java package com.wlwcloud.datatest;import java.io.file;import java.io.fileinputstream;import java.io.ioexception;import java.net.unknownhostexception;i
mongoinit.java是数据库初始化及连接类
mongoutils.java是对mongodb的各种操作方法
mongoinit.java
package com.wlwcloud.datatest;import java.io.file;import java.io.fileinputstream;import java.io.ioexception;import java.net.unknownhostexception;import java.util.properties;import org.apache.log4j.logger;import com.mongodb.db;import com.mongodb.dbcollection;import com.mongodb.mongo;import com.mongodb.mongooptions;import com.mongodb.serveraddress;/** * mongo工具类:设计为单例模式,每当月份发生变化,数据库连接名称就会发生变化,这是业务规则 因mongodb的java驱动是线程安全的,对于一般的应用,只要一个mongo实例即可,mongo有个内置的连接池(池大小默认为10个)。 * 对于有大量写和读的环境中,为了确保在一个session中使用同一个db时,我们可以用以下方式保证一致性: db mdb =mongo.getdb('dbname'); mdb.requeststart(); // 业务代码 mdb.requestdone(); * db和dbcollection是绝对线程安全的 * @author undoner */public class mongoinit { /** db监听端口号 */ private static int dbport = 27017; /** db连接url */ private static string dburl = localhost; /** 连接db库名称 */ private static string dbname = wlwdb; static logger log = logger.getrootlogger(); private static mongo mongo; private static dbcollection coll; private static db db; static { try { dbproperties(); mongooptions options = new mongooptions(); options.autoconnectretry = true; options.connectionsperhost = 1000; options.maxwaittime = 5000; options.sockettimeout = 0; options.connecttimeout = 15000; options.threadsallowedtoblockforconnectionmultiplier = 5000; // 事实上,mongo实例代表了一个数据库连接池,即使在多线程的环境中,一个mongo实例对我们来说已经足够了 serveraddress serveraddress = new serveraddress(dburl, dbport); mongo = new mongo(serveraddress, options); } catch (unknownhostexception e) { log.info(get mongo instance failed); } } static void dbproperties() { // 读取配置文件config.properties中的属性值 string myfilepath = mongoinit.class.getresource(/).getpath() + mongodbconfig.properties; properties properties = new properties(); fileinputstream fileinputstream = null; try { fileinputstream = new fileinputstream(myfilepath); properties.load(fileinputstream); dbport = integer.parseint((string) properties.getproperty(dbport)); dburl = (string) properties.getproperty(dburl); dbname = (string) properties.getproperty(dbname); } catch (exception e) { e.printstacktrace(); } finally { try { fileinputstream.close(); } catch (ioexception e) { // todo auto-generated catch block e.printstacktrace(); } } } public static db getdb() { if (db == null) { db = mongo.getdb(dbname); } return db; } public static mongo getmong() { return mongo; } public static dbcollection getcoll(string collname) { return getdb().getcollection(collname); }}
package com.wlwcloud.datatest;import java.net.unknownhostexception;import java.text.simpledateformat;import java.util.arraylist;import java.util.date;import java.util.list;import java.util.set;import java.util.regex.pattern;import com.fasterxml.jackson.core.jsonprocessingexception;import com.fasterxml.jackson.databind.objectmapper;import com.ketayao.ketacustom.entity.main.user;import com.ketayao.utils.securityutils;import com.mongodb.aggregationoutput;import com.mongodb.basicdblist;import com.mongodb.basicdbobject;import com.mongodb.basicdbobjectbuilder;import com.mongodb.db;import com.mongodb.dbcollection;import com.mongodb.dbcursor;import com.mongodb.dbobject;import com.mongodb.mapreducecommand;import com.mongodb.mapreduceoutput;import com.mongodb.mongo;import com.mongodb.mongoexception;import com.mongodb.querybuilder;import com.mongodb.writeconcern;public class mongoutils { //dbcursor cursor = coll.find(condition).addoption(bytes.queryoption_notimeout);//设置游标不要超时 /** * 获取所有数据库实例 */ public void testgetdbs() { list dbnames = mongoinit.getmong().getdatabasenames(); for (string dbname : dbnames) { system.out.println(dbname: + dbname); } } /** * 删除数据库 */ public void dropdatabase(string dbname) { mongoinit.getmong().dropdatabase(dbname); } /** * 查询所有表名 */ public void getallcollections() { set colls = mongoinit.getdb().getcollectionnames(); for (string s : colls) { system.out.println(collections:+s); } } /** * 删除一个表 */ public void dropcollection(string collection) { mongoinit.getcoll(collection).drop(); } /** * 添加一条记录 */ public void adddata(string dbcollection,string dataid,string datatime,string datacontent,string datastatus) { dbcollection coll = mongoinit.getcoll(dbcollection); basicdbobject doc = new basicdbobject(); doc.put(id, dataid); doc.put(time, datatime); doc.put(data, datacontent); doc.put(status, datastatus); coll.insert(doc); // 设定write concern,以便操作失败时得到提示 coll.setwriteconcern(writeconcern.safe); findone(dbcollection); } /** * 创建索引 */ public void createindex(string collection) { mongoinit.getcoll(collection).createindex(new basicdbobject(index_id, 1)); } /** * 获取索引信息 */ public void getindexinfo(string dbcollection) { list list = mongoinit.getcoll(dbcollection).getindexinfo(); for (dbobject o : list) { system.out.println(o); } } /** * 添加多条记录 */ public void addmultidata() { for (int i = 0; i < 100; i++) { mongoinit.getcoll(wujintao).insert( new basicdbobject().append(i, i)); } list docs = new arraylist(); for (int i = 0; i dbcursor cursor = mongoinit.getcoll(wujintao).find(query); try { while (cursor.hasnext()) { system.out.println(cursor.next()); } } finally { cursor.close(); } } /** * 区间查询 * select * from table where 20 = 250 ) + category = 'big books'; + else + category = 'small books'; + emit(category, {name: this.name});}; string reduce = function(key, values) { + var sum = 0; + values.foreach(function(doc) { + sum += 1; + }); + return {books: sum};} ; mapreducecommand cmd = new mapreducecommand(books, map, reduce, null, mapreducecommand.outputtype.inline, null); mapreduceoutput out = books.mapreduce(cmd); for (dbobject o : out.results()) { system.out.println(o.tostring()); } } catch (exception e) { e.printstacktrace(); } } public void groupbymanyfield() throws unknownhostexception{ //此方法没有运行成功 mongo mongo = new mongo(localhost, 27017); db db = mongo.getdb(libary); dbcollection books = db.getcollection(books); basicdbobject groupkeys = new basicdbobject(); groupkeys.put(total, new basicdbobject($sum,pages)); basicdbobject condition = new basicdbobject(); condition.append(pages, new basicdbobject().put($gt, 0)); string reduce = function(key, values) { + var sum = 0; + values.foreach(function(doc) { + sum += 1; + }); + return {books: sum};} ; /** basicdblist basicdblist = (basicdblist)db.getcollection(mongodb中集合编码或者编码) .group(dbobject key, --分组字段,即group by的字段 dbobject cond, --查询中where条件 dbobject initial, --初始化各字段的值 string reduce, --每个分组都需要执行的function string finial --终结funciton对结果进行最终的处理 */ dbobject obj = books.group(groupkeys, condition, new basicdbobject(), reduce); system.out.println(obj); aggregationoutput ouput = books.aggregate(new basicdbobject($group,groupkeys)); system.out.println(ouput.getcommandresult()); system.out.println(books.find(new basicdbobject($group,groupkeys))); } /** * 分页查询 */ public void pagequery() { dbcursor cursor = mongoinit.getcoll(wujintao).find().skip(0) .limit(10); while (cursor.hasnext()) { system.out.println(cursor.next()); } } /** * 模糊查询 */ public void likequery() { pattern john = pattern.compile(joh?n); basicdbobject query = new basicdbobject(name, john); // finds all people with name matching /joh?n/i dbcursor cursor = mongoinit.getcoll(wujintao).find(query); } /** * 条件删除 */ public void delete(string dbcollection,string dataid) { basicdbobject query = new basicdbobject(); query.put(id, dataid); // 找到并且删除,并返回删除的对象 dbobject removeobj = mongoinit.getcoll(dbcollection).findandremove(query); system.out.println(removeobj); } /** * 更新 */ public void update() { basicdbobject query = new basicdbobject(); query.put(name, liu); dbobject stufound = mongoinit.getcoll(wujintao).findone(query); stufound.put(name, stufound.get(name) + update_1); mongoinit.getcoll(wujintao).update(query, stufound); } public void testgpsdata() { try { //13862082455:117.13172:029.77659:131.2580 date d = new date(); simpledateformat sdf =new simpledateformat(yyyy-mm-dd hh:mm:ss sss); string datenowstr = sdf.format(d); system.out.println(datenowstr); dbcollection coll = mongoinit.getcoll(table_admin); basicdbobject doc = new basicdbobject(); doc.put(id, 12345678); doc.put(time, datenowstr); doc.put(data, 117.13172:029.77659:131.2580); doc.put(status, 0); coll.insert(doc); // 设定write concern,以便操作失败时得到提示 coll.setwriteconcern(writeconcern.safe); basicdbobject dsort = new basicdbobject(); dsort.put(time, -1); basicdbobject searchdevice = new basicdbobject(); searchdevice.put(id, 12345678); dbcursor cursor = coll.find(searchdevice).sort(dsort); list list = cursor.toarray(); //arraylist listsensordata=new arraylist(list.size()); objectmapper mapper = new objectmapper(); string jsonfromlist = null; try { //list转json jsonfromlist = mapper.writevalueasstring(list); } catch (jsonprocessingexception e) { // todo auto-generated catch block e.printstacktrace(); } //system.out.println(jsonfromlist); // for(int i=0;i #端口设置dbport=27017#urldburl=localhost#urldbname=wlwdb
其它类似信息

推荐信息