欢迎大家光临【无师自通-教程网】您的到来是我们的荣幸。本站提供photoshop教程,ps教程,flash教程,cad教程,网页制作教程,excel教程,asp教程,vb教程,3d教程,c语言教程,html教程,coreldraw教程,dreamweaver教程,java教程,3dmax教程 等各种教程为主题的内容和服务,相信您会在这里找到您所需要的东东。无师自通伴您一生-谢谢您的光临!!
网站地图 设为首页
简繁切换 加入收藏
栏目待定 留言本站
您现在的位置: 无师自通-教程网 >> 程序设计 >> JAVA教程 >> 数据库 >> 教程正文

  没有公告

教程: JAVA-数据库-Java,Beans和关系数据库的镜像(2) 更多...
教程: JAVA-数据库-Java,Beans和关系数据库的镜像(2)
Java,Beans和关系数据库的镜像(2)

Classc=class.forName("Person");
Personp=(Person)c.newInstance();
System。out.println("...justcreateda" c.getName();

· 清单2:一个简单的Class.forName()例子

然而,此处还有一些问题。由于对某些特定的类来说,forName()函数需要调用参数为void的构造函数,所以不能将RecordSet变量直接传递给构造函数。在这里,我们需要一个初始化函数,把从数据库中抽取出的记录作为RESULTSET参数,将其值赋予对象的数据元素。一个好的方法是引入超级类,并将其作为所有数据库表相关类的通用父类。实际上,这个超级类在数据库查询中充当着重要的角色,我们将在下面展示这一点。

查询数据库利用上面的方法可以由记录生成对象,但是你仍然得用SQL语句来查询数据库,这需要对数据库结构有深入的了解。这还是没有解决问题,虽然我们能够自动地匹配数据库表和类的名字,但是还是必须手工编写SQL语句。这就是说每次修改数据库结构后,将不得不手工编辑这些查询语句。不过,我们仍然可以利用前文所述的方法来越过这个障碍。通常而言,查询关系数据库时,你将会用到属于主键或索引的字段名和值。一言弊之,如果某人向你提供了适当的字段名和字段值

,你就可以从相应的数据库中抽取符合要求的记录(或字段)。而DatabaseMetaData对象不但可以被用于检索一系列的表名(见上所述),而且可以获得一系列的主键及索引字段。上面的问题由此可以迎刃而解。

通过填入一系列适当的(字段名,字段值)对,可以利用相对而言少得多的代码实现对关系数据库的查询。你可以将对子中的所有字段名和数据库中的主健及索引字段相匹配。每当你找到了名字列表中相应的主健或索引字段,可以根据相应的数值来生成一个SQL语句,执行它来获取RecordSet,并通过Class.forName()构造机

制将结果转化为对象。实现这一想法要求可以以(名,值)对的方式对与数据库表相关的每个类的数据元素进行存取。但是这种方法只有通过上节所述的通用父类才能趋于完美。清单3和4利用伪码表示了这一方法。

Openthedatabaseconnection
Reievealistofuserdefineds
foreach
{
Checkwherethereisacorrespondingclassfile
if(itisavailabe)
{
loadtheclassfile
Reievelistsofkeyfieldsandindecesforthis
Storetheselistsinhashsforeasyaccess
}
elsethrowanexception
}

· 清单3:初始化数据库连接的伪码

TakeanobjectAcontainingaseriesof(name,value)pairs
foreachT
{
foreach(name,value)pair
{
if(namematchesprimary_key_fieldorindex_field)
storearefrencetobothnameandvalue
}
ifallkey_fieldswerefound
createaquerysingusingkeynamesandvalues
elseifallindex_fieldswerefound
createaquerysingusingindexnamesandvalues
executethequerytoobtainaResultSet
ForeachrecordintheResultSet
{
Createanobj

[1] [2] [3] 下一页

教程录入:admin    责任编辑:admin 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
     
     
     

    access基础知识
    免责声明!本站资料大部分来自于互联网,其版权归原作者或其他合法者所有.如内容涉及或侵犯了您的权益,请通知本人,我将尽快处理!.欢迎您的光临。
    辽ICP备07003958号
    无师自通,伴你一生-教程网