Dbal

D 语言数据库驱动层
授权协议 Apache-2.0
开发语言 D语言
所属分类 数据库相关、 数据库驱动程序
软件类型 开源软件
地区 国产
投 递 者 彭鸿哲
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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.

  • Doctrine是基于数据库抽像层上的ORM,它可以通过PHP对象轻松访问所有的数据库,例如MYSQL, Doctrine DBAL是一个轻量级的类似于PDO的数据库抽象接入层。它是一个面向对象的架构,需求PHP5.3版本的支持,因为它的实现用到了命名空间。除了类似于PDO的操作外,它允许人们定制属于自己的数据库支持。DBAL能够被用于ORM,这在Doctrine ORM项目中有体现。 ORM也是

  • Symfony DBAL 教程显示了如何使用 Doctrine DBAL 组件在 Symfony 应用中使用数据库。 Symfony Symfony 是一组可重用的 PHP 组件和一个用于 Web 项目的 PHP 框架。 Symfony 于 2005 年发布为免费软件。Fabien Potencier 是 Symfony 的原始作者。 Symfony 的灵感来自 Ruby on Rails,Dja

  • 我有这个文件夹结构 [-] myapp/ [+] app/ [-] lib/ [-] vendor/ [-] doctrine/ [-] Doctrine/ Common/ DBAL/ Symfony/ [+] bin/ [-] sites/ [-] default/ [-] test/ test-doctrine-dbal.php 我尝试在文档中的代码 use Doctrine\Common\C

  • Mac安装composer安装Yii2项目 [注释:]本人原创,如需转载请注明来源链接! 通过安装Composer方式安装Yii 如果还没有安装 Composer,你可以按 getcomposer.org 中的方法安装. 在 Linux 和 M ... 在linux上如何通过composer安装yii Composer可以理解成一个依赖管理工具 它能解决以下问题 a) 你有一个项目依赖于若干个库.

  • Laravel: 5.5.* 在迁移中有重命名操作的时候,运行 php artisan migrate 会提示 Class 'Doctrine\DBAL\Driver\PDOMySql\Driver' not found的错误信息, 可通过composer 安装 doctrine/dbal 类库,然后运行 迁移就可以了 修改 表字段的 enum值时,使用DB::statement() 方法进行修改

  • 这个错误的原因来自于没有安装一个依赖库: 官方文档说明如下: Modifying Columns Prerequisites Before modifying a column, be sure to add the doctrine/dbal dependency to your composer.json file. The Doctrine DBAL library is used to d

  • 所以我做了一堆Doctrine2迁移(https:// github.com/doctrine/migrations),但是我有一个新的迁移问题我试图做. 我一直在挖掘图书馆,我看到$this-> addsql()用于构建要执行的sql列表,然后稍后执行. 我想做一些我选择一些数据的东西,迭代行,插入新的数据,然后删除我选择的数据.这很容易使DBAL库变得简单,但我想知道,我可以安全地在迁移中使用

  • 首先说一下doctrine的官网:  http://www.doctrine-project.org/index.html dbal的官网:  http://www.doctrine-project.org/projects/dbal.html dbal 是  database  abstraction layer 的缩写 以下为dbal的源码分析     |  --  dbal        

 相关资料
  • 主要内容:1. 数据定义语言,2. 数据操作语言,3. 数据控制语言,4. 事务控制语言DBMS具有适当的语言和接口来表达数据库查询和更新。 数据库语言可用于读取,存储和更新数据库中的数据。 数据库语言的类型 1. 数据定义语言 DDL代表数据定义语言。它用于定义数据库结构或模式。 用于在数据库中创建模式,表,索引,约束等。 使用DDL语句,可以创建数据库的框架。 数据定义语言用于存储元数据的信息,如表和模式的数量,它们的名称,索引,每个表中的列,约束等。 以下是DDL下的一些任务:

  • 本文向大家介绍Go语言集成mysql驱动、调用数据库、查询数据操作示例,包括了Go语言集成mysql驱动、调用数据库、查询数据操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Go语言集成mysql驱动、调用数据库、查询数据操作。分享给大家供大家参考,具体如下: 1、安装第三方mysql驱动包 2、连接数据库基本代码 4、循环扫描数据表取出数据 打印: jack1 11 jack2

  • IBM_DB adapter & driver 是 Ruby 用来连接 IBM DB2数据库的驱动程序。 随着 IBM_DB adapter & driver的引入,Rails 应用程序可以无缝地与 IBM 数据进行交互。IBM_DB adapter & driver是一个由 IBM 官方开发并维护的用于 Ruby 的 DB2 驱动。实际上,它的开发人员就是 DB2 的开发人员。因此,在性能和对

  • 问题内容: 我有一组要处理的.csv文件。使用SQL查询来处理它会容易得多。我想知道是否有某种方式可以加载.csv文件,并使用SQL语言通过python或ruby之类的脚本语言对其进行查询。用类似于ActiveRecord的东西加载它会很棒。 问题是我不想在运行脚本之前在某个地方运行数据库。在脚本语言和某些模块之外,我不需要其他安装。 我的问题是该任务应使用哪种语言以及使用哪些模块。我环顾四周,找

  • 我们正忙于一个需要支持多种语言的CakePHP项目。但有一个问题....有些页面不支持其他语言。因此,有西班牙网页,需要隐藏的意大利版本的网站。在CakePHP中对此有什么更好的解决方案? 只要您切换语言,我们就可以切换数据库,但问题是,作为用户,我们将错过重要的数据,如果我们这样做的话。如果只搜索西班牙文、意大利文、德文、英文、荷兰文和瑞典文的文章,可能会使数据库负荷过重。或者如果我们索引语言栏

  • 这是一个平台无关的数据库实现基类,该类不会被直接调用, 而是通过特定的数据库适配器类来继承和实现该类。 关于数据库驱动器,已经在其他几篇文档中介绍过,这篇文档将作为它们的一个参考。 重要 并不是所有的方法都被所有的数据库驱动器所支持, 当不支持的时候,有些方法可能会失败(返回 FALSE)。 class CI_DB_driver initialize() 返回: TRUE on success,

  • 主要内容:RMySQL包,将R连接到MySql,查询表,使用过滤子句查询,更新表中的行记录,将数据插入到表中,在MySql中创建表,在MySql中删除表关系数据库系统中的数据是以规范化格式存储的。 所以,为了进行统计计算,我们需要非常高级和复杂的SQL查询。但是R可以很容易地连接到许多关系数据库,如:MySQL,Oracle,Sql Server等,并将它们作为数据帧提取。 当从数据库中读取数据到R环境中可用以后,它就成为一个正常的R数据集,可以使用所有强大的软件包和函数进行操作或分析。 在本教

  • 问题内容: 我正在开发一种多语言软件。就应用程序代码而言,可本地化性不是问题。我们可以使用特定于语言的资源,并拥有与之配合使用的各种工具。 但是,定义多语言数据库架构的最佳方法是什么?假设我们有很多表(100个或更多),每个表可以有多个可以本地化的列(大多数nvarchar列应该可以本地化)。例如,其中一个表可能包含产品信息: 我可以想到三种支持NAME和DESCRIPTION列中的多语言文本的方