2011年6月29日 星期三

第一支 Java 大芒果資料庫程式

1. 下載  Java mongodb Driver
https://github.com/mongodb/mongo-java-driver/downloads

2. 設定 classpath 指到  Java mongodb Driver 的 jar 檔

3. 啟動 mongodb 服務 (Windows 7)
> cd  mongodb182\bin
> start mongod --rest -dbpath ..\db

4.撰寫 MyMGDB.java 
import com.mongodb.Mongo;

class MyMGDB1 {
  public static void main(String[] argv) throws Exception{
        Mongo m = new Mongo( "localhost" , 27017 );

        for (String s : m.getDatabaseNames()) {
            System.out.println(s);
        }
  }
}

5.編譯程式
> javac MyMGDB.java

6. 執行程式
> java MyMGDB
admin
local

參考網站
1. Java & MongoDB Tutorial

2011年6月28日 星期二

大芒果資料庫 - MongoDB 基礎操作

1. 啟動 mongodb 服務 (Windows 7)
c:\mongodb182\bin> start mongod --rest -dbpath ..\db

2. 啟動 mongo shell
c:\mongodb182\bin> mongo

3. 建立 MyDB 文件資料庫
> use MyDB
switched to db MyDB

4. 顯示目前開啟的文件資料庫
> db
MyDB

5.建立 Collection 並同時寫入文件
> db.aaa.insert( {a:1} )

6. 顯示文件
> db.aaa.find()
{ "_id" : ObjectId("4e0984538178ec62807d4feb"), "a" : 1 }

7. 顯示所有文件資料庫
> show dbs
MyDB    0.03125GB
admin   (empty)
local   (empty)

8. 顯示所有 Collections
> show collections
aaa
system.indexes

9. 離開 mongo shell
> exit

你可以直接使用瀏覽器, 查詢文件資訊, URL  如下 :

http://localhost:28017/MyDB/aaa/?filter_a=1

查詢結果如下 :
{
  "offset" : 0,
  "rows": [
    { "_id" : { "$oid" : "4e0984538178ec62807d4feb" }, "a" : 1 }
  ],

  "total_rows" : 1 ,
  "query" : { "a" : 1 } ,
  "millis" : 0
}

2011年6月26日 星期日

一級憤怒 - jAG103

class MyTest03 {
   public static void manin(String[] args) {
   
     int i=0;
     do {
    
       i=i+1;
       System.out.print("*");
    
     }; while (i>3)
 
   }

這簡單程式, 幾個 "編譯憤怒" ?

一級憤怒 - jAG102

class MyTes02 }{
   public static void main(String[] argv){
     for(int i=0; i<6 ; ++i){
       System.out.print( (i%2)==0 ? '*' : '' );
     }
     System.out.println(i);
   }
}

這麼簡單程式, 竟有二個 "編譯憤怒", 有看到嗎 ?

2011年6月21日 星期二

大芒果資料庫 - MongoDB

MongoDb 是一套用 C++ 寫成的,高擴充性,高效能,文件導向 (JSON) 的資料庫系統,而且它還是 開放源軟體 (Open Source) 

基本上它支援多數的作業系統:OSX / Linux / Windows / Solaris 等等, 而且也提供了多種程式語言的 連接驅動程式 :Java / Python / PHP / Ruby / Perl / C++ 等等

MongoDB 中的 mongo 是由 "humongous" 這單字而來, 代表它是能處理巨大資訊, 之所以稱它為芒果, 完全是根據它的讀音

不需安裝, 立即使用 (Ubuntu 為例)

1. 下載 MongoDB 壓縮檔,然後解壓縮至家目錄
網址 : http://www.mongodb.org/downloads

2.先建立資料庫存放目錄,預設會在 /data/db 底下
$ sudo mkdir -p /data/db

3. 下載後解壓縮
$ wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.2.tgz
$ tar xvfz mongodb-linux-i686-1.8.2.tgz
mongodb-linux-i686-1.8.2/
mongodb-linux-i686-1.8.2/THIRD-PARTY-NOTICES
mongodb-linux-i686-1.8.2/GNU-AGPL-3.0
mongodb-linux-i686-1.8.2/README
mongodb-linux-i686-1.8.2/bin/
mongodb-linux-i686-1.8.2/bin/mongofiles
mongodb-linux-i686-1.8.2/bin/mongostat
mongodb-linux-i686-1.8.2/bin/bsondump
mongodb-linux-i686-1.8.2/bin/mongos
mongodb-linux-i686-1.8.2/bin/mongodump
mongodb-linux-i686-1.8.2/bin/mongoimport
mongodb-linux-i686-1.8.2/bin/mongosniff
mongodb-linux-i686-1.8.2/bin/mongo
mongodb-linux-i686-1.8.2/bin/mongod
mongodb-linux-i686-1.8.2/bin/mongoexport
mongodb-linux-i686-1.8.2/bin/mongorestore

4. 啟動 mongodb 服務
$ cd mongodb-linux-i686-1.8.2/
$ cd bin
$ sudo ./mongod -dbpath /data/db &

[註] MongoDB 啟動之後預設會佔用兩個 TCP Port, 如下 :

  27017 ﹣用來等待連線
  28017 ﹣提供 web admin interface(可以用瀏覽器來看MongoDB目前的狀態)

5. 執行 MongDB Shell
$ ./mongo
MongoDB shell version: 1.8.2
connecting to: test
Wed Jun 22 12:18:56 [initandlisten] connection accepted from 127.0.0.1:60485 #1
> help
    db.help()                    help on db methods
    db.mycoll.help()             help on collection methods
    rs.help()                    help on replica set methods
    help connect                 connecting to a db help
    help admin                   administrative help
    help misc                    misc things to know
    help mr                      mapreduce help

    show dbs                     show database names
    show collections             show collections in current database
    show users                   show users in current database
    show profile                 show most recent system.profile entries with time >= 1ms
    use <db_name>                set current database
    db.foo.find()                list objects in collection foo
    db.foo.find( { a : 1 } )     list objects in foo where a == 1
    it                           result of the last line evaluated; use to further iterate
    DBQuery.shellBatchSize = x   set default number of items to display on shell
    exit                         quit the mongo shell
>

6.停止 mongodb 服務
> use admin
switched to db admin
> db.shutdownServer()
Tue Jun 28 14:23:31 [conn2] terminating, shutdown command received
Tue Jun 28 14:23:31 dbexit: shutdown called
Tue Jun 28 14:23:31 [conn2] shutdown: going to close listening sockets...
Tue Jun 28 14:23:31 [conn2] closing listening socket: 5
Tue Jun 28 14:23:31 [conn2] closing listening socket: 6
Tue Jun 28 14:23:31 [conn2] closing listening socket: 7
Tue Jun 28 14:23:31 [conn2] closing listening socket: 8

MongoDB官網 : http://www.mongodb.org/

2011年6月18日 星期六

一級憤怒 - jAG101

class MyAG101 {
    public static viod main(Stringargv[]) {    
       System.out.printf("Hello World")
    }
}

這麼簡單程式, 竟有三個 "編譯憤怒", 妳感受到嗎 ?