利用反射拼接sql语句
2017-06-10 15:08
246 查看
首先,创建一个Student类:
然后利用反射来拼接插入一个条数据
运行结果:
Student(age,name,date) values(1,’张三’,’2017-06-10’)
class Student{ private int age; private String name; private Date date; public Student(){} public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public Student(int age, String name, Date date) { super(); this.age = age; this.name = name; this.date = date; } }
然后利用反射来拼接插入一个条数据
import java.lang.reflect.Field; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; public class ReflectDemo { public String insert(Object o){ Class c = o.getClass(); String tableName = c.getSimpleName(); System.out.println(tableName); Field[] fields = c.getDeclaredFields(); StringBuffer sb=new StringBuffer(); for(Field f: fields){ sb.append(f.getName() + ","); } String sql=sb.substring(0,sb.length()-1); String sql2=""; StringBuffer sb2=new StringBuffer(); try { Field[] fields2 = c.getDeclaredFields(); for (Field f : fields2) { f.setAccessible(true); if(f.getType()==String.class){ sb2.append("'" + f.get(o) + "',"); }else if(f.getType()==Date.class){ Date d=(Date) f.get(o); DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String str = df.format(d); sb2.append("'" + str + "',"); }else{ sb2.append(f.get(o) + ","); } } sql2=sb2.substring(0,sb2.length()-1); }catch (Exception e) { e.printStackTrace(); } return "insert into " + tableName + "(" + sql + ") values(" + sql2 + ")"; } public static void main(String[] args) { Student stu = new Student(1, "张三", new Date()); ReflectDemo s = new ReflectDemo(); String sql = s.insert(stu); System.out.println(sql); } }
运行结果:
Student(age,name,date) values(1,’张三’,’2017-06-10’)
相关文章推荐
- java 利用注释和反射写一个简单的SQL语句拼接程序,很简单初学者
- 利用反射自动生成SQL语句(仿Linq)
- 利用反射动态构成sql语句
- 利用excel批量拼接SQL语句的几处细节
- 使用反射让linq实现动态查询, 类似拼接sql语句的where 条件
- java反射获取注解并拼接sql语句
- 使用反射让linq实现动态查询, 类似拼接sql语句的where 条件
- 利用反射拼接SQL查询条件字符串
- kettle job如何利用java的反射机制获取执行的sql语句
- 利用反射,创建Android的SQL语句,极大提高速率
- 利用Attribute特性简化多查询条件拼接sql语句的麻烦
- 利用反射动态构成sql语句
- 利用反射自动生成SQL语句(仿Linq)
- 利用反射生成SQL语句
- 使用基于注解的mybatis时,利用反射和注解生成sql语句
- 利用反射自动生成SQL语句(仿Linq)
- 利用一个辅助变量来实现sql语句的拼接
- 利用反射动态生成sql语句
- 利用反射+特性实现简单的实体映射数据库操作类(还未做自动生成SQL语句部分)
- ASP.NET偷懒大法三 (利用Attribute特性简化多查询条件拼接sql语句的麻烦)