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方法,右侧是数据库对应的表信息
下面是数据库个字段对应的数据类型
1.通过映射获取student类的实例
path表示Student类的全类名 object表示通过映射(反射)获得的student的实例
2.通过JDBC方法获取数据连接、执行sql语句、获得查询结果集
步骤:加载Driver驱动、获取数据库连接connection、通过连接获得prepareDstatement对象、Resultset接受执行sql语句的结果集
ps.setInt(1,3)----设置查询stuid=3;
3.遍历结果集
通过rs.getMetaDate()(返回数据类型是ResultSetMetaData)获取结果集的元数据 ,再由元数据的getColumnCount()方法获得数据库表Student的字段个数
通过循环逐一获得字段对应的数据,这里注意在循环过程中下标从1开始,下标最大值等于字段的个数
获得字段对应的set方法
写一个字符串拼接方法,获得给定字符串的set方法
例如:传入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方法
执行打印结果
将Student的实体类转换成Student类型,并打印出来
============================================================================================
循环打印出对应的数据类型
元数据的getColumnType(int index)返回字段数据对应的字段长度
============以上内容是个人学习总结=================
================仅供参考======================