adding the following to your project's Cargo.toml:
toml
[dependencies]
co-orm = { virsion = "0.2", features = ["mysql"] }
sqlx = { version = "0.6", features = ["mysql","runtime-tokio-native-tls"] }
tokio = { version = "1", features = ["full"] }
* features: mysql, postgres, sqlite, mssql
```rust use co_orm::{Crud, FromRow};
// #[ormrename = "users"] // rename table name pub struct User { // #[ormpk] // default first field is primary key #[orm_seq] // sequence field, insert will ignore this field pub id: i64,
#[orm_by] // generate query_by_field,update_by_field,delete_by_field
#[orm_update] // generate method update_xxx.
//#[orm_rename = "name"] // rename field name
pub name: Option<String> ,
#[orm_ignore] // ignore field
pub add: String,
}
pub async fn get_pool() -> Result
async fn testquery() { let pool=getpool().await.unwrap(); let u = User::get(&pool, 1).await.unwrap(); println!("get {:?}", u); let u = User::get_by(&pool, "id=1").await.unwrap(); println!("get {:?}", u);
}
```
``rust
/// #[derive(Crud)]
/// generate get, get_by, query_by, update, delete, insert.
///
/// attributes:
///
/// #[orm_pk]
/// default first field is primary key or set.
///
///
#[ormseq]
/// sequence field, auto increment. insert will ignore this field.
///
/// #[orm_rename= "name"]
/// rename table name or field name.
/// default table name by struct name to_table_case: UserDetail => user_details.
/// default field name by field name to_snake_case: UserDetail => user_detail.
///
/// #[orm_ignore]
/// ignore field.
///
/// #[orm_update]
/// generate method update_xxx.
///
/// #[orm_by]
/// generate query_by_field,update_by_field,delete_by_field.
///
/// #[derive(FromRow)]
/// impl sqlx::FromRow trait.
///
/// if use
#[derive(FromRow)]macro, must use
#[derive(Crud)]macro.
///
/// if you don't want to use
#[derive(coorm::FromRow)]macro,
/// you can use
#[derive(sqlx::FromRow)]macro or impl
sqlx::FromRowtrait.
///
/// if using sqlx::FromRow,
#[orm_ignore]add
#[sql::defult]` .
```