个人音乐分享网站源码,郑州站,李洋网站建设,无锡网站怎么做原文 项目 该项目在我工作项目中广泛使用,它允许自动处理联接方式动态构建SQL语句.
还会自动直接按表示数据库行结构序化.它在dconf2022在线演讲中介绍了:建模一切.
刚刚添加了对sqlite的支持.该API还不稳定,但仍非常有用.这是按需构建,所以虽然有个计划外表,但满足了我的需要…原文 项目 该项目在我工作项目中广泛使用,它允许自动处理联接方式动态构建SQL语句.
还会自动直接按表示数据库行结构序化.它在dconf2022在线演讲中介绍了:建模一切.
刚刚添加了对sqlite的支持.该API还不稳定,但仍非常有用.这是按需构建,所以虽然有个计划外表,但满足了我的需要. 示例(使用sqlite):
import d2sqlite3;
import std.stdio;
import std.file : exists;
import std.array;
//是的,我知道,在此我需要一个包装
import sqlbuilder.uda;
import sqlbuilder.dataset;
import sqlbuilder.dialect.sqlite;
import sqlbuilder.types;
import d2sqlite3;
struct Author
{primaryKey autoIncrement int id;string firstname;string lastname;static refersTo!Book mapping(author_id) Relation books;
}
struct Book
{primaryKey autoIncrement int id;string title;string description;mustReferTo!Author(author) int author_id;
}
void main()
{auto shouldInitialize !exists(books.sqlite);auto db Database(books.sqlite);if(shouldInitialize){//创建表db.execute(createTableSql!Author);db.execute(createTableSql!Book);//添加一些书籍和作者Author walter Author( firstname: Walter, lastname: Bright);db.create(walter); //按SQL插入语句自动序化Author andrei Author( firstname: Andrei, lastname: Alexandrescu);db.create(andrei);db.create(Book(title: D语言,description: The OG D manual,author_id: andrei.id));db.create(Book(title: C 设计,description: The OG C template manual,author_id: andrei.id));db.create(Book(title: D规范,description: D语言规范,author_id: walter.id));}//按姓名取作者DataSet!Author ads;auto andrei db.fetchOne(select(ads).where(ads.firstname, Andrei));//根据书籍的数据集来选择DataSet!Book bds;foreach(booktitle, author; db.fetch(select(bds.title, bds.author))){writefln(Found book %s, written by %s %s, booktitle, author.firstname, author.lastname);}auto andreiBooks db.fetch(select(bds).where(bds.author_id, , andrei.id.param)).array;writeln(Andreis books: , andreiBooks);
}使用mysql的代码也类似,只需导入mysql-native和sqlbuilder.dialect.mysql即可. 接着是postgresql,不确定我何时需要构建它. -史蒂夫