小弟在学习hibernate,想知道hibernate内部机制是如何实现一个根据一个model类来建表的。比如说 model类里面有 String name 这个变量,hibernate怎么知道建表的时候就要指定一个列,而且此列就是映射到相应类型数据库中的某个数据类型?其实小弟最困惑的时候就是hibernate建表的时候,理解不了。因为我们一般使用java变量都是定义完变量知道变量类型之后直接使用的。hibernate内部怎么根据model类及其中变量来建表呢(java难道有方法得到一个类的所有变量,有方法得到所有变量名,以及变量类型? 不懂,求解!),如果要我们写一个ORM的框架的话,关于这个我是一点思路都没有!。

解决方案 »

  1.   

    java难道有方法得到一个类的所有变量,有方法得到所有变量名,以及变量类型?
    Java有个这样的东西叫反射。 
      

  2.   

    java的高级特性当中有反射reflection部分 ,反射主要是为了java相关的开发工具以及各种框架开发者使用的,像hibernate spring struts tomcat这些开源工具里面大量地使用反射来完成功能
    现阶段,实际上所有的ORM工具都必须要使用反射才能实现对象关系的映射
      

  3.   

    java反射机制 
    运用很广泛 比如构造函数
      

  4.   


    对啊,因为以前没这么应用过所以有点费解! 知道反射机制的话我的思路就清晰点了,java可以通过反射知道这个类本身的一些信息。真的蛮高级的,呵呵~