注解学习实例(模拟hibernate,table,column注解,拼装SQL)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了注解学习实例(模拟hibernate,table,column注解,拼装SQL),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3096字,纯文字阅读大概需要5分钟。
内容图文
![注解学习实例(模拟hibernate,table,column注解,拼装SQL)](/upload/InfoBanner/zyjiaocheng/454/0092a6ea27d04de28a04b803184c3a6e.jpg)
package com.guoxinet.o2o.annotation; @Table("tb_department") public class DepartMent { @Column("department_id") private int departmentId; @Column("name") private String name; public int getDepartmentId() { return departmentId; } public void setDepartmentId(int departmentId) { this.departmentId = departmentId; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
package com.guoxinet.o2o.annotation; import java.lang.reflect.Field; import java.lang.reflect.Method; public class Client { public static void main(String[] args) { User user = new User(); user.setUserId(1); user.setEmail("3964412@qq.com,yafeng@yahu.com,lifeng@guoxinet.com"); getSql(user); DepartMent dm = new DepartMent(); dm.setDepartmentId(100); dm.setName("技术部"); getSql(dm); } public static String getSql(Object ob){ StringBuilder sb = new StringBuilder(); //获取class @SuppressWarnings("rawtypes") Class c = ob.getClass(); //获取table的名字 @SuppressWarnings("unchecked") boolean isExist = c.isAnnotationPresent(Table.class); if(!isExist){ return ""; } Table table = (Table)c.getAnnotation(Table.class); String tableName = table.value(); sb.append("select * from ").append(tableName).append(" where 1=1 "); //遍历属性 Field[] fArray =c.getDeclaredFields(); for(Field field: fArray){ boolean fisExist = field.isAnnotationPresent(Column.class); if(!fisExist){ continue; } Column column = (Column)field.getAnnotation(Column.class); //列名 String columnName = column.value(); //得到属性的值 String methodName = "get" +field.getName().substring(0,1).toUpperCase() + field.getName().substring(1); Object fieldValue = null; try { Method method = c.getMethod(methodName); fieldValue = method.invoke(ob); if(null == fieldValue || (fieldValue instanceof Integer && 0 == (Integer)fieldValue) ){ System.out.println(fieldValue); continue; } sb.append(" and ").append(columnName); if(fieldValue instanceof String){ if(((String) fieldValue).contains(",")){ String[] sArray = ((String) fieldValue).split(","); sb.append(" in ").append("("); for(String s : sArray){ sb.append("‘").append(s).append("‘,"); } sb.deleteCharAt(sb.length()-1); sb.append(")"); }else{ sb.append(" = "); sb.append("‘").append(fieldValue).append("‘"); } }else{ sb.append(" = ").append(fieldValue); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } sb.append(";"); System.out.println(sb.toString()); return null; } }
注解学习实例(模拟hibernate,table,column注解,拼装SQL)
标签:
本文系统来源:http://www.cnblogs.com/working/p/4683634.html
内容总结
以上是互联网集市为您收集整理的注解学习实例(模拟hibernate,table,column注解,拼装SQL)全部内容,希望文章能够帮你解决注解学习实例(模拟hibernate,table,column注解,拼装SQL)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。