pub struct QueryBuilder { /* private fields */ }
Expand description
The QueryBuilder is how you can build dynamically queries using the builder pattern.
§Features
There is a number a features that are supported by the QueryBuilder:
- All Major Query Types
- Select: Build a select query
- Insert: Build an insert query
- Update: Build an update query
- Delete: Build a delete query
- Conditions: Build a query with conditions
- Where: Build a query with where conditions
- Order By: Build a query with order by conditions
- Limit: Build a query with a limit
- Joins: Build a query with joins 2 tables
- Only Inner Joins are supported currently
§Example
use geekorm::prelude::*;
#[derive(Table, Debug, Default, Clone, serde::Serialize, serde::Deserialize)]
pub struct Users {
pub id: PrimaryKeyInteger,
pub username: String,
pub age: i32,
pub postcode: Option<String>,
}
// Build a query to create a new table
let create_query = Users::query_create().build()
.expect("Failed to build create query");
println!("Create Query :: {}", create_query);
// Build a query to select rows from the table
let select_query = Users::query_select()
.where_eq("username", "geekmasher")
.order_by("age", QueryOrder::Asc)
.build()
.expect("Failed to build select query");
println!("Select Query :: {}", select_query);
// Output:
// SELECT (...) FROM User WHERE username = ? ORDER BY age ASC;
Implementations§
Source§impl QueryBuilder
impl QueryBuilder
Sourcepub fn new() -> QueryBuilder
pub fn new() -> QueryBuilder
Create a new QueryBuilder
Sourcepub fn select() -> QueryBuilder
pub fn select() -> QueryBuilder
Build a select query
Sourcepub fn create() -> QueryBuilder
pub fn create() -> QueryBuilder
Build a create query
Sourcepub fn insert() -> QueryBuilder
pub fn insert() -> QueryBuilder
Build an insert query
Sourcepub fn update() -> QueryBuilder
pub fn update() -> QueryBuilder
Build an update query
Sourcepub fn delete() -> QueryBuilder
pub fn delete() -> QueryBuilder
Build a delete query
Sourcepub fn table(self, table: Table) -> QueryBuilder
pub fn table(self, table: Table) -> QueryBuilder
Set the table for the query builder
Sourcepub fn columns(self, columns: Vec<&str>) -> QueryBuilder
pub fn columns(self, columns: Vec<&str>) -> QueryBuilder
Set the columns for the query builder
Sourcepub fn add_value(self, column: &str, value: impl Into<Value>) -> QueryBuilder
pub fn add_value(self, column: &str, value: impl Into<Value>) -> QueryBuilder
Add a value to the list of values for parameterized queries
Sourcepub fn and(self) -> QueryBuilder
pub fn and(self) -> QueryBuilder
Add an AND condition to the where clause
Sourcepub fn or(self) -> QueryBuilder
pub fn or(self) -> QueryBuilder
Add an OR condition to the where clause
Sourcepub fn where_eq(self, column: &str, value: impl Into<Value>) -> QueryBuilder
pub fn where_eq(self, column: &str, value: impl Into<Value>) -> QueryBuilder
Where clause for equals
Sourcepub fn where_ne(self, column: &str, value: impl Into<Value>) -> QueryBuilder
pub fn where_ne(self, column: &str, value: impl Into<Value>) -> QueryBuilder
Where clause for not equals
Sourcepub fn where_like(self, column: &str, value: impl Into<Value>) -> QueryBuilder
pub fn where_like(self, column: &str, value: impl Into<Value>) -> QueryBuilder
Where clause for like
Sourcepub fn where_gt(self, column: &str, value: impl Into<Value>) -> QueryBuilder
pub fn where_gt(self, column: &str, value: impl Into<Value>) -> QueryBuilder
Where clause for greater than
Sourcepub fn where_lt(self, column: &str, value: impl Into<Value>) -> QueryBuilder
pub fn where_lt(self, column: &str, value: impl Into<Value>) -> QueryBuilder
Where clause for less than
Sourcepub fn where_gte(self, column: &str, value: impl Into<Value>) -> QueryBuilder
pub fn where_gte(self, column: &str, value: impl Into<Value>) -> QueryBuilder
Where clause for greater than or equal to
Sourcepub fn where_lte(self, column: &str, value: impl Into<Value>) -> QueryBuilder
pub fn where_lte(self, column: &str, value: impl Into<Value>) -> QueryBuilder
Where clause for less than or equal to
Sourcepub fn order_by(self, column: &str, order: QueryOrder) -> QueryBuilder
pub fn order_by(self, column: &str, order: QueryOrder) -> QueryBuilder
Order the query by a particular column
Sourcepub fn join(self, table: Table) -> QueryBuilder
pub fn join(self, table: Table) -> QueryBuilder
Adds a table to join with the current table
Note: GeekOrm only joins tables with the INNER JOIN
clause and primary keys
Sourcepub fn count(self) -> QueryBuilder
pub fn count(self) -> QueryBuilder
Count the number of rows in the query
Sourcepub fn limit(self, limit: usize) -> QueryBuilder
pub fn limit(self, limit: usize) -> QueryBuilder
Add a limit to the query
Sourcepub fn offset(self, offset: usize) -> QueryBuilder
pub fn offset(self, offset: usize) -> QueryBuilder
Add an offset to the query
Trait Implementations§
Source§impl Clone for QueryBuilder
impl Clone for QueryBuilder
Source§fn clone(&self) -> QueryBuilder
fn clone(&self) -> QueryBuilder
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more