This commit is contained in:
Chris Tsang 2021-05-17 02:27:05 +08:00
parent 5d3d080ea7
commit dc4bb3075f
2 changed files with 18 additions and 1 deletions

View File

@ -17,7 +17,7 @@
Inspired by ActiveRecord, Eloquent and TypeORM, SeaORM aims to provide you an intuitive and ergonomic Inspired by ActiveRecord, Eloquent and TypeORM, SeaORM aims to provide you an intuitive and ergonomic
API to make working with databases in Rust a first-class experience. API to make working with databases in Rust a first-class experience.
> This is an early WIP of SeaORM, and is not yet published. See [example](examples/sqlx-mysql/src/main.rs) for demo. > This is an early WIP of SeaORM, and is not yet published. See [example](examples/sqlx-mysql/src/main.rs) for demo usage.
## Features ## Features

View File

@ -16,6 +16,8 @@ Example output:
```sh ```sh
Database { connection: SqlxMySqlPoolConnection } Database { connection: SqlxMySqlPoolConnection }
===== =====
find all cakes: SELECT `cake`.`id`, `cake`.`name` FROM `cake` find all cakes: SELECT `cake`.`id`, `cake`.`name` FROM `cake`
Model { id: 1, name: "New York Cheese" } Model { id: 1, name: "New York Cheese" }
@ -30,6 +32,18 @@ Model { id: 2, name: "Rasberry", cake_id: Some(1) }
Model { id: 3, name: "Strawberry", cake_id: Some(2) } Model { id: 3, name: "Strawberry", cake_id: Some(2) }
===== =====
find cakes and fruits: SELECT `cake`.`id` AS `A_id`, `cake`.`name` AS `A_name`, `fruit`.`id` AS `B_id`, `fruit`.`name` AS `B_name`, `fruit`.`cake_id` AS `B_cake_id` FROM `cake` LEFT JOIN `fruit` ON `cake`.`id` = `fruit`.`cake_id`
(Model { id: 1, name: "New York Cheese" }, Model { id: 2, name: "Rasberry", cake_id: Some(1) })
(Model { id: 1, name: "New York Cheese" }, Model { id: 1, name: "Blueberry", cake_id: Some(1) })
(Model { id: 2, name: "Chocolate Fudge" }, Model { id: 3, name: "Strawberry", cake_id: Some(2) })
===== =====
find one by primary key: SELECT `cake`.`id`, `cake`.`name` FROM `cake` WHERE `cake`.`id` = 1 LIMIT 1 find one by primary key: SELECT `cake`.`id`, `cake`.`name` FROM `cake` WHERE `cake`.`id` = 1 LIMIT 1
Model { id: 1, name: "New York Cheese" } Model { id: 1, name: "New York Cheese" }
@ -44,9 +58,12 @@ Model { id: 1, name: "Blueberry", cake_id: Some(1) }
Model { id: 2, name: "Rasberry", cake_id: Some(1) } Model { id: 2, name: "Rasberry", cake_id: Some(1) }
===== =====
count fruits by cake: SELECT `cake`.`name`, COUNT(`fruit`.`id`) AS `num_of_fruits` FROM `cake` LEFT JOIN `fruit` ON `cake`.`id` = `fruit`.`cake_id` GROUP BY `cake`.`name` count fruits by cake: SELECT `cake`.`name`, COUNT(`fruit`.`id`) AS `num_of_fruits` FROM `cake` LEFT JOIN `fruit` ON `cake`.`id` = `fruit`.`cake_id` GROUP BY `cake`.`name`
SelectResult { name: "New York Cheese", num_of_fruits: 2 } SelectResult { name: "New York Cheese", num_of_fruits: 2 }
SelectResult { name: "Chocolate Fudge", num_of_fruits: 1 } SelectResult { name: "Chocolate Fudge", num_of_fruits: 1 }
``` ```