From e30ce4932b5c6cec5b5001088de1724ec07c2a4d Mon Sep 17 00:00:00 2001 From: Chris Tsang Date: Mon, 10 May 2021 03:02:31 +0800 Subject: [PATCH] Refactor example --- examples/sqlx-mysql/src/main.rs | 64 ++++++++++++++++++++------------- 1 file changed, 40 insertions(+), 24 deletions(-) diff --git a/examples/sqlx-mysql/src/main.rs b/examples/sqlx-mysql/src/main.rs index 61e613f2..1a31c18b 100644 --- a/examples/sqlx-mysql/src/main.rs +++ b/examples/sqlx-mysql/src/main.rs @@ -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::().all(db).await.unwrap(); + let results = select.into_model::().all(db).await?; println!(); for rr in results.iter() { println!("{:?}", rr); println!(); } + + Ok(()) }