D 语言数据库驱动层 Dbal

Apache-2.0
D语言 查看源码»
跨平台
2018-05-14
冰力

Dbal 是 HuntLabs 开发的D语言(dlang)数据库驱动层,类似 PHP 的 PDO、JAVA 的 JDBC,内置连接池支持。

目前支持的数据库驱动:

  1. PostgreSQL 8+

  2. MySQL 5.1+

  3. SQLite 3+

示例代码

import std.stdio;
import std.experimental.logger;

import database;

void main()
{
    writeln("run database MySQL demo.");

    auto db = new Database("mysql://root:123456@localhost:3306/test?charset=utf-8");

    int result = db.execute(`INSERT INTO user(username) VALUES("test")`);
    writeln(result);

    foreach(row; db.query("SELECT * FROM user LIMIT 10"))
    {
        writeln(row["username"]);
    }

    db.close();
}

Use DatabaseOption to instantiate a Database object

auto options = new DatabaseOption("mysql://root:123456@localhost:3306/test");
options.setMaximumConnection(5);

auto db = new Database(options);

db.execute("SET NAMES utf8");

API

  • int Database.execute(string sql) Return number of execute result.

int result = db.execute('INSERT INTO user(username) VALUES("Brian")');
    // if execute error ,db will throw an DatabaseException
  • ResultSet Database.query(sql) Return ResultSet object for query(SELECT).

ResultSet rs = db.query("SELECT * FROM user LIMIT 10");
  • Statement Database.prepare(sql) Create a prepared Statement object.

   Statement stmt = db.prepare("SELECT * FROM user where username = :username and age = :age LIMIT 10");
  • Statement.setParameter(param, value) : bind param's value to :param for sql.

   stmt.setParameter("username", "viile");
   stmt.setParameter("age", 18);
  • ResultSet Statement.query() Return ResultSet

ResultSet rs = stmt.query();
    foreach(row; rs)
    {
        writeln(row["username"]);
    }
  • Row Statement.fetch() Return Row

Row row = stmt.fetch();
    writeln(row["username"]);
  • int Statement.execute() : return execute status for prepared Statement object.

int result = stmt.execute();
  • Statement.lastInsertId() : Statement.execute() for insert sql, return lastInsertId.

的码云指数为
超过 的项目
加载中
请先登录后再评论。

暂无资讯

暂无问答

symfony2 中 dbal 中 Like ,in 的一些用法

``` $conn = $this->get("doctrine.dbal.default_connection"); $list = $conn->fetchAll( "SELECT * FROM herbal WHERE id IN (?) AND name like ? AND flag = ?", array(array(1,2,3), "%艾...

2015/07/05 10:35
63
0
Laravel Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found

Laravel: 5.5.* 在迁移中有重命名操作的时候,运行 php artisan migrate 会提示 Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found的错误信息, 可通过composer 安装 doctrine/dbal 类...

2019/08/11 22:11
67
0
Workaround for "1701 Cannot truncate a table referenced in a foreign key constraint" using doctrine:

I've been following a BDD approach using Behat to develop a RESTful API on my current project and wanted to fully isolate the data base from feature to feature, so first I tried...

2016/11/13 20:15
25
0
PHP 中基于 Casbin 做 RBAC + RESTful 权限控制

PHP-Casbin 是一个强大的、高效的开源访问控制框架,它支持基于各种访问控制模型(RBAC ABAC ACL)的权限管理。 这里使用官方提供的数据库适配器扩展:DBAL Adapter. 安装 通过composer安装:...

2019/09/10 10:17
64
0
D语言(Dlang)ORM - entity 架构

前言 为了让Dlang像 Java / PHP / C# 一样具有非常好的数据库操作体验,我们了解了 PDO、JDBC、HIBERNATE、ADO.NET,最终发现大家的设计都不是很统一,只有 Java 最新的持久化标准 JPA 是真正...

2017/08/09 00:18
1K
1
doctrine 报错处理办法: Unknown database type enum requested

php app/console doctrine:schema:update --force 在sf2update schema的时候 会出现一种报错 数据库不支持枚举类型 D:\htdocs\Symfony>php app/console doctrine:schema:update --force [Do...

2013/11/15 22:21
2.7K
0
laravel数据库migrate后修改数据表字段信息

composer require doctrine/dbal    php artisan make:migration alter_tablename_table --table=tablename    Schema::table('users', function (Blueprint $table) { $table->string(...

2019/07/08 17:20
33
0
菜鸟用composer 安装项目依赖 vendor:当拿到一个Laravel项目时怎么配置本地环境

安装vendor文件夹中的依赖 一般我从Github或者国内的码云上克隆项目下来后,第一件事就是执行composer install命令。install命令从当前目录读取composer.json文件,处理了依赖关系,并把其安...

2019/10/28 09:28
11
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部