根据实体Bean生成常用SQL
+ +在GitHub中查看项目 ithander/ModelSQL
+ + +欢迎使用ModelSQL!
+ ModelSQL的作用是帮助开发人员生成常用的SQL语句,以摆脱对Mybatis的依赖,及繁琐的文件配置。
+ ModelSQL无依赖任何第三方Jar。
+
+ 例如:我们有一个User实体类,其内有id,uname,age,email 等字段信息。我们来用ModelSQL来生成相关的Insert SQL
+ ModelSQL ms=new ModelSQL(User.class);
+ ms.insertSQL(false);
+ 返回字符串:
insert into sys_user_info(id,uname,age,email) values (?,?,?,?)
+ ms.insertSQL(true);
+ 返回字符串:
insert into sys_user_info(id,uname,age,email) values (:id,:uname,:age,:email)
+ 其中User所对应的表是用注解@Table来标示的
+
+
+ User u=new User();
+ u.setId(123546);
+ u.setAge(25);
+ u.setEmail("abc@yeah.net");
+ u.setUname("sandy");
+ ms.insertSQL(u);
+ 返回字符串:
insert into sys_user_info(id,uname,age,email) values (123546,'sandy',25,'abc@yeah.net')
+
+
+
+ Map u=new HashMap();
+ u.put("id",123546);
+ //u.put("age",25);//不存在字段自动过虑
+ u.put("other","good job good boy");//无效字段不会做处理
+ u.put("uname","haha");
+ ms.insertSQL(u);
+ 返回字符串:
insert into sys_user_info(id,uname) values (123546,'haha')
+
+
+
+
+ ms.updateSQL(false);
+ 返回字符串:
update sys_user_info set uname=?,age=?,email=? where id=?
+ ms.updateSQL(true);
+ 返回字符串:
update sys_user_info set uname=:uname,age=:age,email=:email where id=:id
+
+
+ User u=new User();
+ u.setId(123546);
+ u.setAge(25);
+ u.setEmail(null);
+ u.setUname("sandy");
+ ms.updateSQL(u);//如果参数为实体类则全量更新,即使有字段为空
+ 返回字符串:
update sys_user_info set uname='sandy',age=0,email=NULL where id=1200
+
+
+
+ Map u=new HashMap();
+ u.put("id",13);
+ //u.put("age",25);//不存在字段自动过虑
+ u.put("other","good job good boy");//无效字段不会做处理
+ u.put("uname","haha");
+ ms.insertSQL(u);//如果能数为Map则,更新在Map中存在的字段
+ 返回字符串:
update sys_user_info set uname='haha' where id=13
+
+
+
+
+ ms.deleteSQL(false);
+ 返回字符串:
delete from sys_user_info where id=?
+ ms.deleteSQL(true);
+ 返回字符串:
delete from sys_user_info where id=:id
+
+
+
+ ms.deleteSQL("1","2","3");
+ 返回字符串:
delete from sys_user_info where id in (1,2,3)
+
+ ms.deleteSQL("1");
+ 返回字符串:
delete from sys_user_info where id =1
+
+
+ Map u=new HashMap();
+ u.put("id",13);
+ //u.put("uname","haha");//不存在字段自动过虑
+ u.put("other","good job good boy");//无效字段不会做处理
+ u.put("age",25);
+ ms.deleteSQL(u);//根据条件删除
+ 返回字符串:
delete from sys_user_info where id=13 and age=25
+
+
+
+
+
+生成 Select SQL
+
+ ms.select();
+ 返回字符串:
select s21.id,s21.uname,s21.age,s21.email from sys_user_info s21
+ ms.listSQL(0,10);
+ 返回字符串:
select s21.id,s21.uname,s21.age,s21.email from sys_user_info s21 limit 0,10
+
+ Map u=new HashMap();
+ u.put("id", "13");
+ u.put("age", 25);
+ ms.listSQL(u);
+ 返回字符串:
select s21.id,s21.uname,s21.age,s21.email from sys_user_info s21 where s21.id=13 and s21.age=25
+
+ ModelSQL mm=new ModelSQL(User.class);
+ ms.select().leftJoin(mm).on("id", "id","uname","uname");
+ 返回字符串:
select s21.id,s21.uname,s21.age,s21.email,s0.id,s0.uname,s0.age,s0.email from sys_user_info s21 left join sys_user_info s0 on s21.id=s0.id and s21.uname=s0.uname
+
+
+