NOSQL属于最近比较热门的话题,在高性能和大并发系统中,都能够见到NOSQL的影子。如memcached和mongodb等,memcached只支持列存储,mongodb不支持事务等,最重要的是,这些都需要服务器支持。在一些嵌入式系统中,老牛一样硬件环境,根本就不堪重负。

     在朋友的推荐下,尝试的使用db4o,发现还有如此好的数据库。

     主要的优势有:

          1、完全开源。

          2、支持ACID。

          3、支持所有。

          4、提供vs2010的插件设计器。

          5、提供嵌入式版本和服务器两种集成方式。

    先以一个例子看看db4o的好处。

创建对象:

namespace Db4objects.Db4o.Tutorial.F1.Chapter1
{
    public class Pilot
    {
        string _name;
        int _points;
        
        public Pilot(string name, int points)
        {
            _name = name;
            _points = points;
        }
        
        public string Name
        {
            get
            {
                return _name;
            }
        }
        
        public int Points
        {
            get
            {
                return _points;
            }
        }   
        
        public void AddPoints(int points)
        {
            _points += points;
        }    
        
        override public string ToString()
        {
            return string.Format("{0}/{1}", _name, _points);
        }
    }
}

打开连接

// accessDb4o
IObjectContainer db = Db4oFactory.OpenFile(Util.YapFileName);
try
{
    // do something with db4o
}
finally
{
    db.Close();
} 

存储对象:

// storeFirstPilot
Pilot pilot1 = new Pilot("Michael Schumacher", 100);
db.Set(pilot1);
Console.WriteLine("Stored {0}", pilot1);

在开发的时候,代码非常精简明了。

posted on 2012-12-27 23:05  lirenqing  阅读(788)  评论(0编辑  收藏  举报