ORM框架通过映射(反射)获取数据库的数据

时间:2023-03-09 19:33:27
ORM框架通过映射(反射)获取数据库的数据

  ORM(Object Relational Mapping)框架采用元数据来描述对象一关系映射细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中。
只要提供了持久化类与表的映射关系,ORM框架在运行时就能参照映射文件的信息,把对象持久化到数据库中。当前ORM框架主要有四种:Hibernate(Nhibernate),iBATIS,mybatis,EclipseLink。
  ORM是通过使用描述对象和数据库之间映射的元数据,在我们想到描述的时候自然就想到了xml和特性(Attribute).目前的ORM框架中,Hibernate就是典型的使用xml文件作为描述实体对象的映射框架,而大名鼎鼎的Linq则是使用特性(Attribute)来描述的。

元数据(Metadata)

  是描述其它数据的数据(data about other data),或者说是用于提供某种资源的有关信息的结构数据(structured data)。元数据是描述信息资源或数据等对象的数据,其使用目的在于:识别资源;评价资源;追踪资源在使用过程中的变化;实现简单高效地管理大量网络化数据;实现信息资源的有效发现、查找、一体化组织和对使用资源的有效管理。

对映射获得数据库的数据放大做简单的介绍

创建一个数据表相对应的类Student   包含:属性stuid、stuname、tid以及相对应的set/get方法,右侧是数据库对应的表信息

ORM框架通过映射(反射)获取数据库的数据ORM框架通过映射(反射)获取数据库的数据

下面是数据库个字段对应的数据类型

ORM框架通过映射(反射)获取数据库的数据

1.通过映射获取student类的实例

path表示Student类的全类名      object表示通过映射(反射)获得的student的实例

ORM框架通过映射(反射)获取数据库的数据

2.通过JDBC方法获取数据连接、执行sql语句、获得查询结果集

步骤:加载Driver驱动、获取数据库连接connection、通过连接获得prepareDstatement对象、Resultset接受执行sql语句的结果集

ps.setInt(1,3)----设置查询stuid=3;

ORM框架通过映射(反射)获取数据库的数据

3.遍历结果集

通过rs.getMetaDate()(返回数据类型是ResultSetMetaData)获取结果集的元数据 ,再由元数据的getColumnCount()方法获得数据库表Student的字段个数

通过循环逐一获得字段对应的数据,这里注意在循环过程中下标从1开始,下标最大值等于字段的个数

  获得字段对应的set方法

写一个字符串拼接方法,获得给定字符串的set方法

ORM框架通过映射(反射)获取数据库的数据

例如:传入name  返回setName

  循环获得数据

  通过元数据的getColumnName(int index)(返回结果是String类型)方法,获得字段的名称;再通过元数据的getColumnTypeName(int index)(返回值String)获得

字段对应的数据类型,将字段名传入写好的上述写好的方法setMethod(String name)中获得字段对应的set方法名称

  判断字段的数据类型,调用对应的set方法

  Student实体类的getClass()方法,运行时获得Student类,通过类的getMethod(setMethod,Integer.class)(以integer类型距离)方法获得set方法,通过invoke()传入Student的实体类和字段对应的值re.getInt(column_name)执行set方法

ORM框架通过映射(反射)获取数据库的数据

执行打印结果

将Student的实体类转换成Student类型,并打印出来

ORM框架通过映射(反射)获取数据库的数据

============================================================================================

循环打印出对应的数据类型

ORM框架通过映射(反射)获取数据库的数据

元数据的getColumnType(int index)返回字段数据对应的字段长度

ORM框架通过映射(反射)获取数据库的数据

============以上内容是个人学习总结=================

================仅供参考======================

相关文章