[dlang](一)利用dub搭建vibe.d,hibernated,mysql开发环境

最近刚开始学习d的开发,D是一门系统开发语言,每一个程序员都应该学会一门系统开发语言。我之所以选择D,是因为我主要做服务器开发,应用开发,D有很高的开发效率。同时,服务器会要求有较高的执行效率,而D的另外一个优势就是编译后的二进制文件直接兼容C C++,所以调用C C++的开销基本可以忽略不计。最后一个很有吸引力的优势是:利用D,你可以选择使用GC,也可以绕过GC自己进行内存分配,也可以让一部分大对象不使用GC,而另外一部分生命周期较短的常用对象使用GC(如字符串),这样可以兼顾开发效率以及降低GC开销。

这里介绍的vibe.d是一个web开发框架,同时也是一个异步socket开发框架,同时你也不用像nodejs一样写无尽的回调,而是像写顺序程序一样来写异步处理。hibernated是D语言的一个ORM实现,和java里的hibernate有很大的相似之处,很容易上手。

所以,D博采众家所长,成为我理想中的开发语言,虽然D不流行,库也不是十分成熟(dub有个库管理,里面有百十个库,常用的基本都在),但是这些都瑕不掩瑜,我最想要的东西已经在这里了,剩下的就是完善一套开发环境。如果你和我一样是java程序员,也在寻找一门可以替代java的新语言,尝试一下D吧,应该不会让你失望。 

创建工程testprj,
dub init testprj vibe.d
修改dub.json如下,这个配置是踩了许多坑之后能正常运行的一个配置:
{

    "name": "testprj",
    "description": "A simple vibe.d server application.",
    "copyright": "Copyright © 2015, zhmt",
    "authors": ["zhmt"],
    "dependencies": {
        
"vibe-d": "~master",
        "mysql-native": "0.1.0",
        "hibernated": "0.2.19",
        "ddbc": ">=0.2.16"
  
    },
    "subConfigurations": {
        "hibernated": "MySQL",
        "ddbc": "MySQL"
    },
    "versions": ["VibeDefaultMain","USE_MYSQL"]
}

修改app.d如下:
import vibe.d;
import std.stdio;
//import serviceheader_types;
import hibernated.core;
import ddbc.core;
import ddbc.common;

class Customer
{
    @Id string user;
    string pwd;
    string phone;
    string mail;

    this()
    {
        // Constructor code
    }
}


shared static this()
{
    import ddbc.drivers.mysqlddbc;
    MySQLDriver driver = new MySQLDriver();
    string url = MySQLDriver.generateUrl("10.211.55.10", 3306, "test");
    string[string] params = MySQLDriver.setUserAndPassword("root", "你的密码");
    DataSource ds = new ConnectionPoolDataSourceImpl(driver, url, params);

    EntityMetaData schema = new SchemaInfoImpl!(Customer); 
    Dialect dialect = new MySQLDialect();
    SessionFactory factory = new SessionFactoryImpl(schema, dialect, ds);
    scope(exit) factory.close();
}

用dub编译运行testprj即可。

你可能感兴趣的:(软件技术)