Skip to main content

huiyu_db_mapper_sqlite/sqlite/
sqlite_sql_generator.rs

1use huiyu_db_mapper_core::base::entity::Entity;
2use huiyu_db_mapper_core::base::param::ParamValue;
3use huiyu_db_mapper_core::sql::sql_generator::{BaseSqlGenerator, PageSqlGenerator, QueryWrapperSqlGenerator, WhereSqlGenerator};
4
5pub const SQLITE_SQL_GENERATOR:SqliteSqlGenerator= SqliteSqlGenerator {};
6pub struct SqliteSqlGenerator;
7
8impl PageSqlGenerator for SqliteSqlGenerator {
9    fn gen_page_query_sql(&self, query_sql: &str, current_page: u64, page_size: u64) -> (String,u64,u64) {
10        (format!("select * from({}) limit ? offset ?",query_sql),page_size, (current_page-1)*page_size)
11    }
12}
13
14impl WhereSqlGenerator for SqliteSqlGenerator {
15
16}
17
18impl BaseSqlGenerator for SqliteSqlGenerator{
19    fn gen_insert_and_get_id_sql<E>(&self, e:&E) -> (String, Vec<ParamValue>)
20    where
21        E: Entity
22    {
23        let (insert_sql, params) = self.gen_insert_one_sql(e);
24        let sql = format!("{} {};", insert_sql, " RETURNING id".to_string());
25        (sql, params)
26    }
27}
28
29impl QueryWrapperSqlGenerator for SqliteSqlGenerator {}