df-db 0.1.2

This is an orm database mysql mssql sqlite
Documentation
#[cfg(test)]
mod test {
    use std::{env, fs};
    use std::time::Instant;
    use json::{array, object};
    use df_db::db::{Db, ModeDb, Request};

    fn db() -> ModeDb {
        // env::set_current_dir("..").unwrap();
        let dir = env::current_dir().unwrap();
        let dir = dir.join("config");
        let config_path = dir.join("db.json");
        let conf = fs::read_to_string(config_path.to_str().unwrap()).unwrap();
        let conf = json::parse(conf.as_str().clone()).unwrap();
        Db::new(conf)
    }

    #[test]
    fn update_test() {
        let mut db = db();
        let mut addlist = array![];
        for _item in 0..10000 {
            addlist.push(object! {code:1,quantity:10,amount:1.5}).unwrap();
        }
        let start = Instant::now();
        db.table("admin_admin").insert_all(addlist);
        // println!("{:#}", data);
        let duration = start.elapsed().as_millis();
        println!("ms:{}", duration);
    }

    #[test]
    fn update() {
        let data = db().table("admin_admin").where_and("code", "=", 1.into()).update(object! {
            batch:2
        });
        println!("{:#}", data);
    }

    #[test]
    fn transaction() {
        let mut db = db();
        let data = db.transaction();
        println!("{:#}", data);
        let data = db.table("order_orderlist").delete();
        println!("{:#}", data);
        let data = db.rollback();
        println!("{:#}", data);
    }

    #[test]
    fn transactions() {
        let mut db = db();
        let data = db.transaction();
        println!("{:#}", data);
        let data = db.table("order_orderlist").delete();
        println!("{:#}", data);
        let data = db.commit();
        println!("{:#}", data);
    }

    #[test]
    fn count_count_count() {
        let data = db().table("admin_admin").count();
        println!("{:#}", data);
    }

    #[test]
    fn select_1() {
        let data = db().table("user_account").page(1, 25).select();
        println!(">>>{:#}", data);
    }

    #[test]
    fn stmax() {
        let data = db().table("admin_admin").delete();
        println!("{:#}", data);
    }

    #[test]
    fn table_where_and() {
        let data = db()
            .table("admin_admin")
            .where_and("name", "=", "你的".into())
            .select();
        println!("{:#}", data);
    }

    #[test]
    fn table_where_and_in() {
        let data = db()
            .table("admin_admin")
            .where_and("unique_code", "in", array!["你的","我的"])
            .select();
        println!("{:#}", data);
    }

    #[test]
    fn table_where_and_notin() {
        let data = db()
            .table("admin_admin")
            .where_and("unique_code", "not in", array!["你的","我的"])
            .select();
        println!("{:#}", data);
    }

    #[test]
    fn table_where_and_between() {
        let data = db()
            .table("admin_admin")
            .where_and("quantity", "BETWEEN", array![3,5])
            .select();
        println!("{:#}", data);
    }


    #[test]
    fn table_json() {
        let data = db().table("admin_admin").select();
        println!("{:#}", data);
    }

    #[test]
    fn table_column() {
        let data = db().table("admin_admin").column("code");
        println!("{:#}", data);
    }

    #[test]
    fn table_distinct() {
        let data = db().table("admin_admin").distinct(true).field("code,quantity,barcode").order("amount", false).select();
        println!("{:#}", data);
    }

    #[test]
    fn table_group() {
        let data = db().table("admin_admin").field("code,quantity,barcode").group("code").group("barcode").order("amount", false).sum("amount");
        println!("{:#}", data);
    }

    #[test]
    fn table_admin_admin_order() {
        let data = db().table("admin_admin").field("code").order("code", false).select();
        println!("{:#}", data);
    }

    #[test]
    fn table_info() {
        let data = db().table_info("admin_admin");
        println!("{:#}", data);
    }

    #[test]
    fn table_add() {
        let mut addlist = array![];
        for _item in 0..5 {
            addlist.push(object! {code:1,quantity:10,amount:1.5}).unwrap();
        }
        for _item in 0..5 {
            addlist.push(object! {code:2,quantity:2,amount:1.02}).unwrap();
        }

        let data = db().table("admin_admin").insert_all(addlist);
        println!("{:#}", data);
    }

    #[test]
    fn st() {
        let data = db().table("acode").max("flags");
        println!("{:#}", data);
    }

    #[test]
    fn max() {
        let data = db().table("test").max("number");
        println!("{}", data);
    }

    #[test]
    fn min() {
        let data = db().table("test").min("number");
        println!("{}", data);
    }

    #[test]
    fn sum() {
        let data = db().table("test").sum("number");
        println!("{}", data);
    }

    #[test]
    fn avg() {
        let data = db().table("test").avg("number");
        println!("{}", data);
    }

    #[test]
    fn where_and() {
        let data = db().table("test").where_and("name", "=", "123123".into()).count();
        println!("{}", data);
    }

    #[test]
    fn select() {
        let data = db().table("test").page(1, 2).select();
        assert_eq!(2, data.len());
    }

    #[test]
    fn find() {
        let data = db().table("test").find();
        assert_eq!(5, data.len());
    }

    #[test]
    fn insert() {
        let item = object! {
            name:"测试添加",
            number:4443
        };
        let data = db().table("test").insert(item);
        assert_eq!(1, data);
    }

    #[test]
    fn insert_1() {
        let item = object! {
            "name":"测试商品",
            "code":"编号",
            "barcode":"条码",
            "unique_code":"12312321312",
            "quality_user":"张三李四",
            "quality_date":"2023-01-01",
            "out_date":"2023-01-01"
        };
        let data = db().table("goods_origin").insert(item);
        assert_eq!(1, data);
    }

    #[test]
    fn insert_all() {
        let item = array![
            object! {
            name:"111",
            phone:11231
            },
            object! {
            name:"111",
            phone:234534
        }];
        let data = db().table("user_user").insert_all(item);
        println!("{}", data);
        assert_eq!(2, data.len());
    }


    #[test]
    fn insert_all_test() {
        let mut list = array![];

        for index in 0..20000 {
            list[index] = object! {
                name:index,
                phone:11231
            }
        }
        let mut db = db();
        db.transaction();
        let start = Instant::now();
        let data = db.table("user_user").insert_all(list);
        println!("ms:{}", start.elapsed().as_millis());
        db.rollback();
        println!("{}", data.len());
    }
}