github rbatis/rbatis v1.8.24

latest releases: v4.5.25, v4.5.24, v4.5.23...
3 years ago

v1.8.24

  • CRUDEnable macro Generate cleaner table columns,for example: "id,name,age".to_string()
  • support custom py lang,for example:
    #[derive(Debug)]
    pub struct MyNode {}

    impl RbatisAST for MyNode {
        fn eval(&self, convert: &DriverType, env: &mut Value, engine: &RbatisEngine, arg_result: &mut Vec<Value>) -> Result<String, Error> {
            Ok(" AND id = 1 ".to_string())
        }
    }

    pub struct MyGen {}

    impl CustomNodeGenerate for MyGen {
        fn generate(&self, express: &str, child_nodes: Vec<NodeType>) -> Result<Option<CustomNode>, Error> {
            if express.starts_with("custom") {
                return Ok(Option::from(CustomNode::from(MyNode {}, child_nodes)));
            }
            //skip
            return Ok(None);
        }
    }

    //示例-Rbatis扩展py风格的语法
    #[async_std::test]
    pub async fn test_py_sql_custom() {
        fast_log::init_log("requests.log",
                           1000,
                           log::Level::Info,
                           None,
                           true);
        let mut rb = Rbatis::new();
        rb.link(MYSQL_URL).await.unwrap();
        rb.py.add_gen(MyGen {});
        let py = "
    SELECT * FROM biz_activity
    WHERE delete_flag = 0
    custom :
    ";
        let data: Page<BizActivity> = rb.py_fetch_page("", py, &json!({}), &PageRequest::new(1, 20)).await.unwrap();
        println!("{}", serde_json::to_string(&data).unwrap());
    }
//[rbatis] [] Query ==> SELECT count(1) FROM biz_activity WHERE delete_flag = 0 AND id = 1

Don't miss a new rbatis release

NewReleases is sending notifications on new releases.