- 浏览: 81804 次
最新评论
-
天涯海角tour:
尽量不设置@Property、@Embed、@EmbedLis ...
③BuguMongo---DAO操作 -
深水蓝:
有分组查询么?
③BuguMongo---DAO操作 -
深水蓝:
这个or方法怎么用啊,试了一下好像是当and查询一样比如我要查 ...
③BuguMongo---DAO操作 -
石头茨:
在maven (http://search.maven.org ...
MongoDB -
yu120:
我用bugu-mongo-1.14时都有,你用的两个版本应该也 ...
③BuguMongo---DAO操作
文章列表
Linux环境下MongoDB配置教程
- 博客分类:
- Linux
1.Linux系统启动MongoDB:
/data/software/mongodb-linux-x86_64-3.0.2/bin/mongod -dbpath=/data/software/mongodbdata/mongodb_db --logpath=/data/software/mongodbdata/mongodb_logs/log.log -fork
第一步:下载MySQL Community Server 5.7.4-m14
第二步:解压MySQL压缩包 将以下载的MySQL压缩包解压到自定义目录下,我的解压目录是: "D:\Program Files\MySQL\mysql-5.6.13-win32" 将解压目录下默认文件 my-default.ini 拷贝一份,改名 my.ini 复制下面的配置信息到 my.ini 保存 #如果没有my-default.ini,可自己新建my.ini或者从其他地方中获取######################################### ...
魅数据http://meishuju.duapp.com天气查询接口,里有超过两千五百多个城市景点的天气查询的接口(有未来七天、十五天、今日、明日、周边天气、空气质量等等的天气预报接口)
魅数据是做什么的?
魅数据呼应SOA、SOAP模式而来的一个 OpenAPI数据服务平台,为广大用户提供 快捷、权威、精准和智能的千万级魅力数据开发接口。
import java.util.Scanner;
public class matrix {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入选择:1 或 2 或 3");
System.out.println("1.矩阵加法");
System.out.println("2.矩阵减法" ...
package cn.wiki.openapi.lry.tool;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.zip.Deflater;
import java.util.zip.DeflaterOutputStream;
import java.util.zip.Inflater;
import java.util.zip.Inflat ...
GridFS文件操作
1、BuguFS类
BuguMongo通过BuguFS类来操作GridFS文件系统,能够实现对文件的保存、获取、删除、重命名、移动等操作。
创建BuguFS对象
BuguMongo框架提供了工厂类BuguFSFactory,用于创建BuguFS对象:
public BuguFS create()
public BuguFS create(String bucketName)
public BuguFS create(long chunkSize)
public BuguFS create(String bucketName,long chunkSize ...
Lucene索引和搜索
BuguMongo集成了Lucene的功能。当往MongoDB中新增一个Document时,能自动为该Document建立Lucene索引。相应的,当MongoDB中的Document被修改、删除时,对应的Lucene索引也会修改、删除。
另外,BuguMongo还提供了对Lucene搜索的支持。根据Lucene索引进行搜索的时候,搜索结果能自动转换成对应的Entity对象。
在Lucene集成方面,BuguMongo提供了:
10个注解:@Indexed、@IndexProperty、@IndexEmbed、@IndexEmbedList、@IndexRef ...
数据库索引
注意: 这里指的是数据库本身的索引,不要把它与Lucene的索引相混淆。
如果不需要打开shell执行create index,直接在程序源代码里就能指定数据库索引,是不是很酷?
是的,利用BuguMongo,你只需在程序里加上个@EnsureIndex注解,即可实现该功能。
以一个简单的新闻系统为例:
@Entity@EnsureIndex("{type:1}")publicclassNewsimplementsBuguEntity{
@Id
privateString id
四、高级DAO操作:
AdvancedDao
AdvancedDao是BuguDao的子类,它主要提供:
(1) MapReduce功能,以及基于MapReduce实现的一些统计功能。
(2) Aggregation功能。
MapReduce
AdvancedDao提供了对MapReduce的支持。但鉴于目前MongoDB的MapReduce性能不是很理想,如果您的数据量非常庞大,请谨慎使用。
统计:
public double max(String key)
public double max(String key,BuguQuery query)
public dou ...
五、lazy和cascade属性
lazy属性
查询数据的时候,有些字段并不需要返回。这样能够节省内存,而且取数据的速度会更快一些。
虽然BuguQuery查询中的方法returnFields()和notReturnFields(),可以指定查询的时候返回、不返回哪些字段,但如果每次查询的时候都要特别指定,那会非常麻烦。有没有简便一点的方法呢?用lazy属性即可实现。
@Property、@Embed、@EmbedList都有lazy属性,其缺省值都是false。
如果把lazy设为true,那么表示:当取出一个List的时候,不会把lazy=true的属性取出来。
如果是取单条 ...
三、DAO操作
像对象-文档映射中那样,给实体类加上了注解,并且实现了BuguEntity接口,接下来就可以使用BuguDao类操作该实体了。
BuguDao构造函数
你需要编写自己的Dao,如FooDao,来操作Foo相关的数据。FooDao需要继承自BuguDao,并且,在FooDao的构造函数中,需要传递Foo.class,如下:
public class FooDao extends BuguDao<Foo>{
public FooDao(){
super(Foo.class);
}}
插入
BuguDao中有如下方法 ...
二、对象-文档映射
在对象(Object,也称实体Entity)、文档(Document)之间实现自动转换,是BuguMongo的最核心功能,这能让你直接用面向对象的概念来操作MongoDB数据库,而不用去关心底层的数据库细节。
在这方面,BuguMongo提供了:
8个注解:@Entity、@Id、@Property、@Embed、@EmbedList、@Ref、@RefList、@Ignore
1个接口:BuguEntity
1个抽象类:SimpleEntity
BuguEntity接口
要使得某个Java Entity能和MongoDB Document实现相互转换,该 ...
BuguMongo是一个MongoDB Java开发框架,集成了DAO、Query、Lucene、GridFS等功能。
一、连接MongoDB
在能够对MongDB进行操作之前,需要使用BuguConnection连接到MongoDB数据库。代码如下:
BuguConnection conn = BuguConnection.getInstance();
conn.connect("192.168.0.100", 27017, "mydb", "username", "password");
也可 ...
package cn.wiki.openapi.lry.tool;
import java.util.HashMap;
/**
* 128进制加解密, 一个符号可表示7个bit
* 可以自定义符号表, 符号不能重复
* @author lry
*
*/
public class MyBASE128 {
public static final char[] symbolTable = new char[128];
public static final HashMap<Character, Integer> indexTa ...
import java.util.Scanner;
public class SystemConvert {
static Scanner scanner = new Scanner(System.in);
static String s = "";
// 定义10进制转2进制的方法。
public static String C10T2(int numb) {
String result = "";
for (int i = numb; i > ...