Implement Create, Read, Update, and Delete (CRUD) methods for sqlx.
Use
add the following to your project's Cargo.toml:
[]
= { = "0.3", = ["mysql"] }
= { = "0.7", = ["mysql","runtime-tokio-native-tls"] }
- features: mysql, postgres, sqlite, mssql
Examples
// rename table name
pub async
async
#[derive(Crud)]
generate method: get, get_by, query, query_by, update, delete, insert, insert_all, query_page_by
attributes:
#[co_orm(id)]
default first field is primary key or set.
#[co_orm(seq)]
sequence field, auto increment. insert will skip this field.
#[co_orm(skip_insert)]
insert will skip this field.
#[co_orm(rename="name")]
rename table name or field name. default table name by struct name to_table_case: UserDetail => user_detail. default field name by field name to_snake_case: UserDetail => user_detail.
#[co_orm(skip)]
ignore field.
#[co_orm(update)]
generate method update_xxx.
#[co_orm(by)]
generate qet_by_field, query_by_field, update_by_field, delete_by_field.
#[derive(FromRow)]
impl sqlx::FromRow trait.
or use #[derive(sqlx::FromRow)]
macro or impl sqlx::FromRow
trait.
if using sqlx::FromRow, if have #[co_orm(skip)]
add #[sqlx(skip)]
.
macro_export
args
let args = args!;
query
query!.execute.await
query_as
query_as!.fetch_one.await