1思路 根据java反射获取属性上的 注解的value的值 然后拼接成sql去执行 这就是完成了一个orm实体关系映射

package src.Test.Reflect;
import java.lang.reflect.Field; @Table("table_teacher")
class teacher{
@Propety(name = "student_id")//必须和数据库里的列表对应一样
private String studentId;
@Propety(name = "student_name")
private String studentName;
@Propety(name = "student_age")
private String studentAge;
} public class ORM_Demo {
//思路 根据java反射获取属性上的 注解的value的值 然后拼接成sql去执行 这就是完成了一个orm实体关系映射
public static void main(String[] args) throws ClassNotFoundException {
Class<?> want= Class.forName("src.Test.Reflect.teacher");
Field[] field=want.getDeclaredFields();//获得所有的属性以及其修饰符 eg: private java.lang.String com.itmayiedu.Student.studentId
//根据注解获得其属性字段的name 这个必须和数据库的列保持一致
StringBuffer sf = new StringBuffer();
sf.append(" select ");
for(int i=0;i<field.length;i++){
Field foo=field[i];//获得单个属性
Propety p = foo.getDeclaredAnnotation(Propety.class);
sf.append(p.name());
//sf.append(field);
if (i < field.length - 1) {
sf.append(" , ");
}
}
Table declaredAnnotation = want.getDeclaredAnnotation(Table.class);
sf.append(" from " + declaredAnnotation.value());
System.out.println("生成的sql语句是"+sf.toString());
}
}
2这上面有我自定义的注解Table和Propety.这部分代码我就不贴出来了 嘿嘿 可以私聊我 qq邮箱在下

最新文章

  1. Socket聊天程序——客户端
  2. Linux下的压缩和解压缩命令——tar
  3. Mac系统下Android生成keystore
  4. Effective C++ 33 避免遮掩继承而来的名称
  5. JavaScript模块化
  6. 关于ssh调用远程后台命令挂住的解释
  7. [转]SQLServer SQL执行效率和性能测试方法总结
  8. 【c++】标准模板库STL入门简介与常见用法
  9. AIX 命令大全
  10. js 实现复制粘贴文本过滤(保留文字和图片)
  11. Chrome插件i18n多语言实现
  12. android的签名
  13. 转载:lua中switch
  14. matplotlib 无法显示中文和负号的解决办法
  15. [HTML/CSS]下拉菜单
  16. object-fit 属性的用法介绍
  17. for 循环增强
  18. nginx反向代理转发后页面上的js css文件无法加载【原创】
  19. [数据]matplotlib总结
  20. Silverlight 查询DataGrid 中匹配项 ,后台改变选中行颜色

热门文章

  1. VUE-CLI3.0脚手架安装
  2. spring springMVC Struts2 区别
  3. maven打包报错问题解析
  4. stixel_world+Multi_stioxel_world+semantic_stixel_world知识拓展
  5. ZIP:GZIP
  6. 下拉选择框,PopupWindow的使用
  7. [小米OJ] 7. 第一个缺失正数
  8. [剑指offer] 10. 旋转数组的最小数字
  9. 多个module实体类集合打一个jar包并上传至远程库
  10. sqlserver 2008 无法使用特殊主体‘sa’,错误15405