Mongo实例

public class MongoHelper implements NoSqlInterface {

private static DB db = null;
private static DBCollection jxm_data = null;
private static MongoHelper instance = null;
private MongoHelper(){

}

public synchronized static MongoHelper getInstance(){
if(instance == null){
Mongo m = null;
try {
m = new Mongo(PropertyUtils.getStringVal("mongodb.host.ip"), PropertyUtils.getIntVal("mongodb.host.port"));
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}

// 获取名为 test 的数据库,不存在的情况下创建
db = m.getDB("test");
//获取jxm_data DBCollection;如果默认没有创建,mongodb会自动创建
jxm_data = db.getCollection("jxm_data");

instance = new MongoHelper();
}
return instance;
}

/*
* key必须唯一
*/
public void setStringVal(String key,String value){
BasicDBObject obj = new BasicDBObject();
obj.put("key", key);
obj.put("val", value);
jxm_data.save(obj);
}

@Override
public String getStringVal(String key) {
BasicDBObject obj = new BasicDBObject();
obj.put("key", key);
DBCursor cur = jxm_data.find(obj);
if(cur.hasNext()){
return cur.next().get("val") + "";
}
return null;
}

@Override
public void setObjectVal(String key, Object obj) {
BasicDBObject o = null;
try {
o = new BasicDBObject();
o.put("key", key);
o.put("val", SerializeUtil.serializeObj(obj));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
jxm_data.save(o);
}

@Override
public Object getObjectVal(String key) {
BasicDBObject obj = new BasicDBObject();
obj.put("key", key);
DBCursor cur = jxm_data.find(obj);
if(cur.hasNext()){
try {
return SerializeUtil.unSerializeObj((byte[])cur.next().get("val"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}

@Override
public void remove(String key) {
jxm_data.remove(new BasicDBObject("key",key));
}

@Override
public void removeAll() {
jxm_data.remove(new BasicDBObject());
}

public static void main(String[] args) {
MongoHelper helper = getInstance();
// helper.setStringVal("a", "bc");
// System.out.println(helper.getStringVal("a"));;
// helper.remove("b");
// Person p = new Person(2013, "赵亮");
// helper.setObjectVal("b", p);
Person pp = (Person) helper.getObjectVal("b");
System.out.println(pp.getId()+":"+pp.getName());
}
}

时间: 2024-08-01 00:12:02

Mongo实例的相关文章

[Spring Data MongoDB]学习笔记--注册一个Mongo实例

1. 通过Java based bean metadata @Configuration public class AppConfig { public @Bean Mongo mongo() throws UnknownHostExceptioin { return new Mongo("localhost"); } } 上面的方式包含异常处理,这并不是我们想要的. 所以,应该尽量用下面这种方式MongoFactoryBean,或者后面的xml方式. @Configuration p

Linux上创建Mongo实例

1.准备两个Shell窗口,一个作为服务端,一个作为客户端 2.用指令在服务端窗口启动一个无授权的Mongo实例 mongod --dbpath 本地数据库存放位置 --bind_ip Mongo绑定的IP --port 端口 --journal 3.在客户端连接刚刚启动的Mongo实例 mongo 服务端绑定IP:端口/admin 4.添加管理员帐户 db.createUser({'user':'用户名', 'pwd': '密码', roles: [ "root" ] }) 5.客户

一段mongo数据库数据丢失 引发的血案

2017年1月8日上无,一个晴朗的早上(大周末的晴朗的早上),我还在梦境中,被一个电话吵醒,众所周知,做运维的最怕在休息期间接到公司同仁电话! 起因:同事说线上的某个功能不能用了!(这个功能就是在mongo数据库中获取数据返给前端进行渲染) 经过:之前也出现过类似的问题,排查故障后是因为mongo实例挂掉(某种原因造成),这次没想到事情比之前的故障还要叫人毛骨悚然----------mongo的数据丢了 我的个天啊.里面存放了不到5千万条的数据啊.丢了这可咋弄啊? 解决:把mongo数据丢失关键

MongoDB增删改查实例

MongoDB之Java测试代码(DAO层),mongodbdao 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.UnknownHostExce

php操作mongo语法

MongoDB不支持多表查询? 1.运行mongo服务 打开cmd,输入E:进入E盘. 输入cd E:\mongdb\bin 进入该目录下. 输入mongod --dbpath E:\mongodb\data    //开启mongo服务,并将数据信息保存在data文件夹下. ? 不要关闭cmd,关闭即关闭mongo服务.? 2.操作语法 连接数据库 <?php $conn = new Mongo();//实例 $db = $conn->mongo//选择数据库 $coll=$db->u

spring4.3.7整合mongodb3.2.1

前几天写了个mongodb原生的工具类,参考"http://ylcodes01.blog.51cto.com/5607366/1933342", 项目里需要做分布式,所以现在集成到spring中,今天结合spring-mongodb写了一些常用的工具. BaseMongoDao package com.stbr.common.mongodb.base; import com.mongodb.WriteResult; import com.stbr.common.mongodb.util

MongoDB Replica Set搭建集群

MongoDB做集群,版本3.2官网推荐的集群方式Replica Set 准备服务器3台 两个standard节点(这两个节点直接可以互切primary secondary). 一个arbiter节点,它手中握着一张选票,决定上面两个standard节点中的哪一个可以成为primay. 机器名称和预承担的角色如下: test39 primary test41 secondary test42 arbiter 介绍一下涉及到的参数 --dbpath   数据文件路径 --logpath  日志文件

MongoDB 的配置项在配置文件中进行配置和数据库的备份与恢复

一.mongoDB命令行启动选项配置 mongodb的命令行启动时我们可以选择一些选项来改变配置,具体的选项如下: 1.--dbpath: 每一个mongodb进行就需要一个独立的数据存放目录,如果你在不同的端口启动了多个mongodb进行但是数据存放目录相同就会报错: 2.--port :就是程序的不同监听口,默认是27017 --port=27017 修改不同的端口来启动多个mongdb进程 3.--fork: 创建守护mongodb进程 4.--logpath: 指定日志写出的路劲 --l

创建springbootdemo后运行报MongoSocketOpenException错误解决方法

在类SpringbootdemoApplication上右键Run as选择Spring Boot App后Console输出报错日志如下: com.mongodb.MongoSocketOpenException: Exception opening socketat com.mongodb.connection.SocketStream.open(SocketStream.java:63) ~[mongodb-driver-core-3.4.2.jar:na]at com.mongodb.c