Refactor example

This commit is contained in:
Chris Tsang 2021-05-10 03:02:31 +08:00
parent ca459e693b
commit e30ce4932b

View File

@ -1,4 +1,4 @@
use sea_orm::{Database, EntityTrait};
use sea_orm::{Database, EntityTrait, QueryErr};
mod example_cake;
mod example_fruit;
@ -9,15 +9,25 @@ use example_fruit as fruit;
#[async_std::main]
async fn main() {
let mut db = Database::default();
db.connect("mysql://sea:sea@localhost/bakery")
.await
.unwrap();
println!("{:?}", db);
println!();
find_all(&db).await.unwrap();
find_one(&db).await.unwrap();
count_fruits_by_cake(&db).await.unwrap();
}
async fn find_all(db: &Database) -> Result<(), QueryErr> {
print!("find all cakes: ");
let cakes = cake::Entity::find().all(&db).await.unwrap();
let cakes = cake::Entity::find().all(db).await?;
println!();
for cc in cakes.iter() {
@ -27,25 +37,7 @@ async fn main() {
print!("find all fruits: ");
let fruits = fruit::Entity::find().all(&db).await.unwrap();
println!();
for cc in fruits.iter() {
println!("{:?}", cc);
println!();
}
print!("find one by primary key: ");
let cheese = cake::Entity::find_by(1).one(&db).await.unwrap();
println!();
println!("{:?}", cheese);
println!();
print!("find models belong to: ");
let fruits = cheese.find_fruit().all(&db).await.unwrap();
let fruits = fruit::Entity::find().all(db).await?;
println!();
for ff in fruits.iter() {
@ -53,10 +45,32 @@ async fn main() {
println!();
}
count_fruits_by_cake(&db).await;
Ok(())
}
async fn count_fruits_by_cake(db: &Database) {
async fn find_one(db: &Database) -> Result<(), QueryErr> {
print!("find one by primary key: ");
let cheese = cake::Entity::find_by(1).one(db).await?;
println!();
println!("{:?}", cheese);
println!();
print!("find models belong to: ");
let fruits = cheese.find_fruit().all(db).await?;
println!();
for ff in fruits.iter() {
println!("{:?}", ff);
println!();
}
Ok(())
}
async fn count_fruits_by_cake(db: &Database) -> Result<(), QueryErr> {
#[derive(Debug)]
struct SelectResult {
name: String,
@ -96,11 +110,13 @@ async fn count_fruits_by_cake(db: &Database) {
.group_by_col((cake::Entity, Cake::Name));
}
let results = select.into_model::<SelectResult>().all(db).await.unwrap();
let results = select.into_model::<SelectResult>().all(db).await?;
println!();
for rr in results.iter() {
println!("{:?}", rr);
println!();
}
Ok(())
}