mirror of
https://github.com/vlang/v.git
synced 2025-09-13 14:32:26 +03:00
This commit is contained in:
parent
277c9c5f05
commit
b180a03253
4 changed files with 674 additions and 139 deletions
67
examples/orm/orm_func.v
Normal file
67
examples/orm/orm_func.v
Normal file
|
@ -0,0 +1,67 @@
|
|||
module main
|
||||
|
||||
import db.sqlite
|
||||
import time
|
||||
import orm
|
||||
|
||||
@[table: 'sys_users']
|
||||
struct User {
|
||||
pub:
|
||||
id string @[immutable; primary; sql: 'id'; sql_type: 'VARCHAR(255)'; unique]
|
||||
name ?string @[immutable; sql: 'nick_name'; sql_type: 'VARCHAR(255)'; unique]
|
||||
created_at ?time.Time @[omitempty; sql_type: 'TIMESTAMP']
|
||||
updated_at time.Time @[default: new; omitempty; sql_type: 'TIMESTAMP']
|
||||
}
|
||||
|
||||
fn main() {
|
||||
mut db := sqlite.connect(':memory:')!
|
||||
defer { db.close() or {} }
|
||||
|
||||
user1 := User{
|
||||
id: '001'
|
||||
name: 'Jengro'
|
||||
created_at: time.now()
|
||||
updated_at: time.now()
|
||||
}
|
||||
|
||||
user2 := User{
|
||||
id: '002'
|
||||
name: 'Dev'
|
||||
created_at: time.now()
|
||||
updated_at: time.now()
|
||||
}
|
||||
|
||||
mut qb := orm.new_query[User](db)
|
||||
|
||||
// create table
|
||||
qb.create()!
|
||||
|
||||
// insert into table
|
||||
qb.insert(user1)!
|
||||
qb.insert(user2)!
|
||||
|
||||
// query all fields
|
||||
all_users := qb.query()!
|
||||
dump(all_users)
|
||||
|
||||
// query all users' nick_name
|
||||
all_user_names := qb.select('nick_name')!.query()!
|
||||
dump(all_user_names)
|
||||
|
||||
// where
|
||||
selected_users := qb.where('id = ?', '001')!.query()!
|
||||
dump(selected_users)
|
||||
|
||||
// update
|
||||
qb.set('nick_name = ?', 'Tom')!.where('id = ?', '001')!.update()!
|
||||
updated_user := qb.query()!
|
||||
dump(updated_user)
|
||||
|
||||
// delete
|
||||
qb.where('id = ?', '001')!.delete()!
|
||||
remain_users := qb.query()!
|
||||
dump(remain_users)
|
||||
|
||||
// drop table
|
||||
qb.drop()!
|
||||
}
|
79
examples/orm/orm_sql.v
Normal file
79
examples/orm/orm_sql.v
Normal file
|
@ -0,0 +1,79 @@
|
|||
module main
|
||||
|
||||
import db.sqlite
|
||||
import time
|
||||
import orm
|
||||
|
||||
@[table: 'sys_users']
|
||||
struct User {
|
||||
pub:
|
||||
id string @[immutable; primary; sql: 'id'; sql_type: 'VARCHAR(255)'; unique]
|
||||
name ?string @[immutable; sql: 'name'; sql_type: 'VARCHAR(255)'; unique]
|
||||
created_at ?time.Time @[omitempty; sql_type: 'TIMESTAMP']
|
||||
updated_at time.Time @[default: new; omitempty; sql_type: 'TIMESTAMP']
|
||||
}
|
||||
|
||||
fn main() {
|
||||
mut db := sqlite.connect(':memory:')!
|
||||
defer { db.close() or {} }
|
||||
|
||||
user1 := User{
|
||||
id: '001'
|
||||
name: 'Jengro'
|
||||
created_at: time.now()
|
||||
updated_at: time.now()
|
||||
}
|
||||
|
||||
user2 := User{
|
||||
id: '002'
|
||||
name: 'Dev'
|
||||
created_at: time.now()
|
||||
updated_at: time.now()
|
||||
}
|
||||
|
||||
// create table
|
||||
sql db {
|
||||
create table User
|
||||
}!
|
||||
|
||||
// insert into table
|
||||
sql db {
|
||||
insert user1 into User
|
||||
insert user2 into User
|
||||
}!
|
||||
|
||||
// query all fields
|
||||
all_users := sql db {
|
||||
select from User
|
||||
}!
|
||||
dump(all_users)
|
||||
|
||||
// where
|
||||
selected_users := sql db {
|
||||
select from User where id == '001'
|
||||
}!
|
||||
dump(selected_users)
|
||||
|
||||
// update
|
||||
sql db {
|
||||
update User set name = 'Tom' where id == '001'
|
||||
}!
|
||||
updated_user := sql db {
|
||||
select from User
|
||||
}!
|
||||
dump(updated_user)
|
||||
|
||||
// delete
|
||||
sql db {
|
||||
delete from User where id == '001'
|
||||
}!
|
||||
remain_users := sql db {
|
||||
select from User
|
||||
}!
|
||||
dump(remain_users)
|
||||
|
||||
// drop table
|
||||
sql db {
|
||||
drop table User
|
||||
}!
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue