当前位置: 首页 > 后端技术 > Java

Foxnic-SQL(四)——CRUD(增删改查)

时间:2023-04-01 19:46:10 Java

Foxnic-SQL(四)——CRUD概述分别通过Foxnic-SQL、Foxnic-SQL四种类型的Insert、Update来进行CRUD是一件很简单的事情、Selelct和Delete是为语句构造提供的。当然,用面向对象的方式构造语句比直接写SQL字符串要复杂一些,但是好处也是显而易见的。本文中的示例代码都可以在https://gitee.com/LeeFJ/foxnic-samples项目中找到。废话不多说,直接上代码:导入com.github.foxnic.sql.expr.Insert;导入com.github.foxnic.sql.expr.Select;导入com.github.foxnic.sql.expr.Update;导入com.leefj.foxnic.sql.demo。config.DBInstance;importjava.util.Date;publicclassCRUDBySQLDemo{publicstaticvoidmain(String[]args){//插入数据Stringid=insertAddress("137771041252");System.out.println("addressId(Insert)="+id);//通过ID查询数据Rcdaddress=queryAddress(id);if(address!=null){System.out.println(address.toJSONObject());}//更新if(id!=null){id=updateAddress(id,"13852562523");System.out.println("addressId(更新)="+id);}//删除if(id!=null){id=deleteAddress(id);系统输出打印ln("地址Id(删除)="+id);}}/***插入数据**/publicstaticStringinsertAddress(Stringphone){//创建语句对象Insertinsert=newInsert("example_address");Stringid=IDGenerator.getSnowflakeIdString();//设置值insert.set("id",id).set("name","leefj")//如果为null则不连接SQL语句.setIf("phone_number",phone).set("address","Ningbo").set("region_type","Domestic").set("create_time",newDate())//设置数据库expression.setExpr("update_time","now()");//输出语句System.out.println(insert.getSQL());//执行语句Integersuc=DBInstance.DEFAULT.dao().execute(insert);//如果执行成功,返回ID,否则返回nullif(suc==1){returnid;}else{返回空值;}}/***query**/publicstaticRcdqueryAddress(Stringid){//创建语句对象Selectselect=newSelect("example_address");//设置值select.where().and("id=?",id);//输出语句System.out.println(select.getSQL());//执行语句Rcdaddress=DBInstance.DEFAULT.dao().queryRecord(select);//执行成功返回记录对象,否则返回空返回地址;}/***update**/publicstaticStringupdateAddress(Stringid,Stringphone){//创建语句对象Updateupdate=newUpdate("example_address");//设置值更新.setIf("phone_number",phone)//设置数据库表达式.setExpr("update_time","now()").set("update_by","110").where().and(“id=?”,id);//输出语句System.out.println(update.getSQL());//执行语句Integersuc=DBInstance.DEFAULT.dao().execute(更新);//如果成功,返回ID,否则返回nullif(suc==1){returnid;}else{返回空值;}}/***delete**/publicstaticStringdeleteAddress(Stringid){//创建语句对象Deletedelete=newDelete("example_address");//设置条件delete.where().and("id=?",id);//输出语句System.out.println(delete.getSQL());//执行语句Integersuc=DBInstance.DEFAULT.dao().execute(delete);//执行成功返回ID,否则返回nullif(suc==1){returnid;}else{返回空值;}}}Select语句Select语句是常用的语句,Foxnic-SQL对于Select语句的构造比较简单。下面是一个简单的Select语句构造和使用示例。使用句子对象。/***Select语句的使用**/publicstaticvoiddemo1(Stringkeyword){//创建语句对象Selectselect=newSelect();//fromclauseselect.from("sys_role")//选择字段.select("id").select("name").selects("code","create_by")//查询条件.where("idlike?","%"+keyword+"%").andEquals("deleted",0)//Sort.orderBy().ascNL("id")//从orderby子句返回到topSelectstatement.top()//指定groupbystatement.groupBy().by("id","name","code","create_by")//指定havingclause.having().and("count(id)>?",0);System.out.println(select.getSQL());//输出:SELECTid,name,code,create_byFROMsys_roleWHEREidlike'%10%'ANDdeleted=0GROUPBYidHAVINGcount(id)>0ORDERBYifnull(id,1)-1asc,idASC//使用默认的DAO查询RcdSetrs=DBInstance.DEFAULT.dao().query(select);//遍历并输出for(Rcdr:rs){System.out.println(r.toJSONObject());}}小结本节主要通过代码让大家快速了解Foxnic-SQL是如何通过statement对象完成基本的CRUD操作的,因为这些statement对象是基于Expr的,所以Expr有没有它们的特性有?这些功能都是直接使用字符串拼接SQL语句的相关项目。https://gitee.com/LeeFJ/foxnichttps://gitee.com/LeeFJ/foxnic-webhttps://gitee.com/lank/eamhttps://gitee.com/LeeFJ/foxnic-samples