sqlink Latest Version

A simple query builder to use with low level library such as rust-postgres

Documentation

https://docs.rs/sqlink/0.2.0/sqlink/

For How it works

~~~rs let mut sqlinsert = PostgresBuilder::insert(); let qbuiltinsert = sqlinsert .table("person") .returning("id") .into("id", personform.id) .into("name", personform.name) .into("data", personform.data) .build().unwrap(); conn.execute( &qbuiltinsert.query, &qbuiltinsert.parameters, )?; let mut sqlupdate = PostgresBuilder::update(); let qbuiltinsert = sqlupdate .table("person") .set("name", "Real Hello World") .andwhere( fmtquery!("person.id = {}", 3) // note that 3 has to be same type as person id, which is i32/INT here ) .build().unwrap(); conn.execute( &qbuiltinsert.query, &qbuiltinsert.parameters, )?; let mut sqlselect = PostgresBuilder::select(); let qbuiltselect = sqlselect .select("id") .select(("name", "personname")) .select("data") .table("person") .andwhere( fmtquery!("person.id = {}", 3) // note that 3 has to be same type as person id, which is i32/INT here ) .build().unwrap(); let mut personvec: Vec = Vec::new(); for row in &conn.query(&qbuiltselect.query, &qbuiltselect.parameters).unwrap() { personvec.push(Person { id: row.get(0), name: row.get(1), data: row.get(2), }) } asserteq!(personvec, vec![Person { id: 3, name: "Real Hello World".to_owned(), data: None }]); ~~~