Top

Advanced-Database

Z1h has embedded database operations, the main ones include mysql andsqlite3 If you need to support Postgres / Tidb / MsSql / Oracle, please contact the author

Open

Refer to Run Configuration, and configure the db information, you can connect to the database ... { "db": { "type": "mysql", // database type "address": "" // database connection address, sqlite3 writable filename } } ... there are two ways to perform database operations:SQL way and ORM way

SQL operation

by$ db can operate SQL // Create table assert ($ db (` CREATE TABLE test_db (name VARCHAR) `)) // Insert assert ($ db (` INSERT INTO test_db (name) VALUES ("aaa") `)) // placeholder assert ($ db (` INSERT INTO test_db (name) VALUES (?) `,"bbb")) // delete assert ($ db (`DELETE FROM test_db WHERE name =?`, "aaa")) // query assert ($ db (`SELECT * FROM test_db WHERE name! =?`, "aaa")) // modify assert ( $ db (`UPDATE test_db SET name =? WHERE name! =?`, "aaa", "aaa")) // ... // For more operations, please learn SQL

ORM

object relational mapping (Object Relational Mapping (ORM for short) is to automatically persist objects in an object-oriented language program into a relational database by using metadata describing the mapping between objects and databases.

go-xorm

If you are using the Go version of Z1h, built environment https://github.com/go-xorm/xorm third-party libraries by $ xorm can be operated in a database ORM // Build table var table_struct = new ('struct', { id: 0, username:` ​​`, password:` `, age: 0, updateAt: now (), createAt: now(), }, { id: `xorm:"not null pk autoincr INT(11)"`, username: `xorm:"not null VARCHAR(64) unique(openid)"`, password: `xorm:"not null VARCHAR(64)"`, age: `xorm:"not null int(11) default 18"`, updateAt: `xorm:"updated"`, createAt: `xorm:"created"`, }); assert($xorm.Table('test_db2').Sync2(table_struct)) // Insert assert($xorm.Table('test_db2').Insert({ username: 'admin', password: md5("Password").hex(), age: 12, })) // Insert with datetime assert($xorm.Table('test_db2').Insert(new(table_struct, { username: 'admin2', password: md5("Password2").hex(), age: 12, }))) // Delete assert($xorm.Table('test_db2').Id(1).Delete(new(table_struct))) assert($xorm.Table('test_db2').Where('username = ?', 'admin').Delete(new(table_struct))) // Query var results = &new(table_struct, '[]'); assert($xorm.Table('test_db2').Where('username = ?', 'admin1').Find(results)); results = *results; print(results.map(e=>{e.username}).join(' and ')); // Update assert($xorm.Table('test_db2').Id(2).Update(new(table_struct, { username: 'hello', }))) // ... // More infomation via https://github.com/go-xorm/xorm