您的位置:首页 > 数据库 > MySQL

dlang操作mysql

2016-03-09 23:12 531 查看
摘要: dlang操作mysql

参考自d程序设计语言---我的博客http://my.oschina.net/u/218155/blog?fromerr=SwOkb7Sw fllow me
d操作mysql

d有个很方便的工具dub,他需要编写格式化的json文件

dub说明见 http://code.dlang.org/package-format?lang=json

我的dub格式,保存为dub.json

{
"name": "testmysql",
"description": "test mysql connect.",
"authors": ["cabing_2005@126.com"],
"homepage": "http://my.oschina.net/u/218155/blog?catalog=3451757",
"license": "GPL-2.0",
"dependencies": {
"vibe-d": "~>0.7.17",
"mysql-native" :"~>0.1.3",
}
}

我使用了vibe.d的连接池和mysqlnative的数据库包所以把他们都放进依赖里。

文件结构在当前目录下新建一个目录命名为source 在source下新建一个脚本app.d

最后运行代码 在source的上一级运行 dub即可

具体代码

import mysql.common;
import mysql.connection;
import mysql.result;
import mysql.db;

import std.stdio;

ulong testExce(Connection cn,string sql){
auto cmd = Command(cn);
cmd.sql = sql;
ulong rowsAffected;
cmd.execSQL(rowsAffected);
return rowsAffected;
}

ResultSet testRows()(Connection cn, string sql)
{
auto cmd = Command(cn);
cmd.sql = sql;
return cmd.execSQLResult();
}

void testMysql(){
string connStr = "host=localhost;port=3306;user=root;pwd=123456;db=test";
auto mdb = new MysqlDB(connStr);
auto con = mdb.lockConnection();
scope(exit) con.close();

//测试增删改查
//add
auto addSql = "insert into country(name,user_age,id)values('helloworld',59,1)";
writeln("add data is ", testExce(con,addSql));
//update
auto updateSql = "update country set name = 'helloworld' where id=1 limit 1";
writeln("update data is ", testExce(con,updateSql));
//delte
auto delSql = "delete from country  where id=1 limit 1";
writeln("delete data is ", testExce(con,delSql));
//select
auto selSql = "select name,user_age,id from country";
ResultSet rs = testRows(con,selSql);
int i;
auto keys = ["name","user_age","id"];
for(i=0;i<rs.length;i++){
foreach(k,v;keys){
writef("%s:%s",v,rs[i][k]);
}
writeln("");
}
writeln(rs[0],rs[0][0],rs[0][1]);
}

int main(char[][] args) {
testMysql();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  D 编程语言 mysql