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)返回字段数据对应的字段长度

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

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

ORM框架通过映射(反射)获取数据库的数据的更多相关文章

  1. Spring笔记05(Spring JDBC三种数据源和ORM框架的映射)

    1.ORM框架的映射 01.JDBC连接数据库以前的方式代码,并给对象赋值 @Test /** * 以前的方式jdbc */ public void TestJdbc(){ /** * 连接数据库的四 ...

  2. ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

    前段时间在园子里看到了小蝶惊鸿 发布的有关绿色版的Linux.NET——“Jws.Mono”.由于我对.Net程序跑在Linux上非常感兴趣,自己也看了一些有关mono的资料,但是一直没有时间抽出时间 ...

  3. 视频教程--ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库

    说好的给园子里的朋友们录制与<ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库> 这篇博客相对应的视频,由于一个月一来没有时 ...

  4. jmeter 获取数据库表数据作为参数

    jmeter - 获取数据库表数据作为参数 在jmeter中使用数据库表数据首先需要设置数据库连接,然后在创建JDBC取样器 1.创建配置元件 JDBC Connection Configuratio ...

  5. c# 国内外ORM 框架 dapper efcore sqlsugar freesql hisql sqlserver数据常规插入测试性能对比

    c# 国内外ORM 框架 dapper efcore sqlsugar freesql hisql sqlserver数据常规插入测试性能对比对比 在6.22 号发布了 c# sqlsugar,his ...

  6. c#自定义ORM框架---(泛型&反射&实体类扩展属性<附带通用增、删、查、改>)

    该教材主要是运用到泛型.反射和实体类扩展属性 步骤一.建立扩展属性类 实体类扩展属性要继承Attribute基类完成 [AttributeUsage(AttributeTargets.Property ...

  7. [转]C#反射,根据反射将数据库查询数据和实体类绑定,并未实体类赋值

    本文来自:http://www.cnblogs.com/mrchenzh/archive/2010/05/31/1747937.html /****************************** ...

  8. C#反射获取数据库字段

    static string sqlselect = "insert into {0}({1}) values ({2})"; (这个方法可以适用于任何数据库的插入语句) publi ...

  9. php获取数据库中数据,转成json数据

    <?php //需要执行的SQL语句 //单条 $sql="select * from xinwen"; //多条数据 //$sql="select id,name ...

随机推荐

  1. 关于缺少nvToolsExt64_1.lib时的PhysX的处理

    我本人之所以缺少这个文件是因为我的PhysX如果你的PhysX是从UE4源代码中提取的,那么可能会出现如下错误,提示找不到nvToolsExt64_1.lib(本机是64bit的操作系统) 那就执行u ...

  2. 构建简单的Maven工程,使用测试驱动的方式开发项目

    构建简单的Maven工程很简单,这里写这篇随笔的原因是希望自己能记住几个小点. 一.安装Maven 1.下载maven:https://maven.apache.org/download.cgi 2. ...

  3. Mountains(CVTE面试题)解题报告

    题目大意: 用一个数组代表群山的高度.高度大的地方代表山峰,小的地方代表山谷.山谷可以容水.假设有一天下了大雨,求群山中总共可以容纳多少水? 如图所示情况,a代表该数组,总共可以容纳5个水. 解题思路 ...

  4. Linux_know

    Linux_know 在创建Linux分区时,一定要创建SWAP/根分区两个分区 Red Hat Linux 9中,系统默认的root用户对整个系统拥有完全的控制权. 当登录Linux时,一个具有唯一 ...

  5. oracle性能优化之表设计

    数据库优化的目标无非是避免磁盘I/O瓶颈.减少CPU利用率和减少资源竞争.为了便于读者阅读和理解,笔者参阅了Sybase.Informix和Oracle等大型数据库系统参考资料,基于多年的工程实践经验 ...

  6. VS2015解决非Unicode编码包含中文字段无法编译的问题

    用VS2015打开并编译,定位到编译错误的文件(.cs而不是可视化编辑视图) 文件--高级保存选项--编码 改为 Unicode-代码页1200 这样不论用VS2015/2013/2012/2010 ...

  7. 01.线性表 ArrayList

    public class MyArrayList { //容量 ; //存放数组元素 private object[] _items; //数组大小 private int _size; //元素个数 ...

  8. windows环境安装和配置Apache-Tomcat7.0

    转自:http://blog.sina.com.cn/s/blog_7c35df9b010111sh.html 说明: Tomcat Manager的用户名和密码可以到"Tomcat安装目录 ...

  9. 170103、Redis官方集群方案 Redis Cluster

    前面我们谈了Redis Sharding多服务器集群技术,Redis Sharding是客户端Sharding技术,对于服务端来说,各个Redis服务器彼此是相互独立的,这对于服务端根据需要灵活部署R ...

  10. ResultSet相关ResultSetMetaData详细

    DatabaseMetaData 有关整个数据库的信息:表名.表的索引.数据库产品的名称和版本.数据库支持的操作. ResultSet 关于某个表的信息或一个查询的结果.您必须逐行访问数据行,但是您可 ...