`
liyixing1
  • 浏览: 957448 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

通过jdbc sql调用,并将结果转化成GenericValue

 
阅读更多

1.查看GenericDelegator的代码,发现代码最后是进入GenericDAO,的selectListIteratorByCondition方法,它最后是将jdbc最后的结果交给
return new EntityListIterator(sqlP, modelEntity, selectFields, modelFieldTypeReader, this, whereEntityCondition, havingEntityCondition, findOptions.getDistinct());

而EntityListIterator则是将结果转换成GenericValue的实际代码。
而EntityListIterator存在一个专门针对ResultSet(jdbc的查询结果)的构造函数,我们可以通过这个构造来完成。
但是这个构造有一个ModelFieldTypeReader modelFieldTypeReader参数。在GenericDAO中这个对象是通过
ModelFieldTypeReader =ModelFieldTypeReader.getModelFieldTypeReader(helperInfo.getHelperBaseName());
得到的,我们当然也可以这么做,首先需要获得helperInfo.getHelperBaseName(),这个可以通过delegator.getEntityHelper("").getHelperName()获取。
完整的代码则是
ModelFieldTypeReader m =  ModelFieldTypeReader.getModelFieldTypeReader(delegator.getEntityHelper("").getHelperName()


另外对于有会对结果(GenericValue)进行增删改操作的话,需要为其设置GenericDelegator
只需要调用eli.setDelegator(this);进行设置。
2.另一种方式是
SQLProcessor sqlP = new SQLProcessor(helperInfo);
        sqlP.prepareStatement(sql, findOptions.getSpecifyTypeAndConcur(), findOptions.getResultSetType(),
                findOptions.getResultSetConcurrency(), findOptions.getFetchSize(), findOptions.getMaxRows());
sqlP.executeQuery();
这里的helperInfo可以通过delegator.getGroupHelperInfo(delegator.getEntityGroupName(""));得到。

然后 return new EntityListIterator(sqlP, modelEntity, selectFields, modelFieldTypeReader, this, whereEntityCondition, havingEntityCondition, findOptions.getDistinct());
这里的modelFieldTypeReader也是通过
ModelFieldTypeReader m =  ModelFieldTypeReader.getModelFieldTypeReader(delegator.getEntityHelper("").getHelperName()可以得到。
当然结果如果还是需要增删改操作的话还是需要eli.setDelegator(delegator);
return this.getGroupHelperInfo(this.getEntityGroupName(entityName));
分享到:
评论

相关推荐

    jdbc sql 调用数据方法(封装方法)

    jdbc sql 调用数据方法(封装方法)jdbc sql 调用数据方法(封装方法)jdbc sql 调用数据方法(封装方法)jdbc sql 调用数据方法(封装方法)jdbc sql 调用数据方法(封装方法)jdbc sql 调用数据方法(封装方法)...

    sqljdbc和sqljdbc4 sqlserver最新驱动

    SQLJDBC和SQLJDBC4是Microsoft为Java应用程序提供的用于连接SQL Server数据库的驱动程序。这两个版本都是JDBC(Java Database Connectivity)驱动,允许Java开发者在应用程序中与SQL Server进行交互。下面将详细介绍...

    sqljdbc sql2008 sql2012

    请注意,“sqljdbcX.jar”版本名称符合 JDBC API 版本号的相容性(例如,Microsoft JDBC Driver 6.0 包中包含的 sqljdbc42.jar 包含最新功能,与 JDBC 4.2 相容,并兼容 JRE 8)。 • 适用于包含 sqljdbc.jar、sql...

    Matlab中使用JDBC访问SQL Server

    本文将详细介绍如何在Matlab环境中使用JDBC驱动来连接并操作SQL Server 2008数据库。 #### 准备工作 在正式连接数据库之前,需要完成以下准备工作: 1. **下载驱动**:首先从Microsoft官网下载适用于SQL Server ...

    jdbc sqlserver2014

    标题中的"jdbc sqlserver2014"指的是Java Database Connectivity (JDBC) 驱动程序,用于连接Java应用程序和Microsoft SQL Server 2014数据库。SQL Server 2014是微软的一个关系型数据库管理系统,提供了高性能、可...

    JDBCDriver3.0.rar_jdbc driver 3.0_sql jdbc 3.0_sql server jdbc_s

    本文将深入解析JDBC Driver 3.0以及其在SQL Server环境中的应用。 JDBC Driver 3.0是Java SE 6引入的一个重要更新,它带来了许多增强功能和性能改进,旨在提升开发者的体验和应用程序的效率。此版本的驱动程序支持...

    sqlserver驱动包 jdbc驱动 sqljdbc.jar和sqljdbc4.jar

    本文将详细介绍这两个重要的驱动文件——sqljdbc.jar和sqljdbc4.jar,以及如何利用它们来建立和管理数据库连接。 首先,sqljdbc.jar和sqljdbc4.jar都是由微软官方提供的JDBC驱动程序,适用于不同版本的Java运行环境...

    java操作xml和sql server 2008必备包(crimson jdom sqljdbc sqljdbc4)

    例如,一个常见的应用场景可能是:应用从XML文件中读取配置数据,然后使用JDBC驱动程序连接到SQL Server 2008数据库,将这些数据存储或检索到数据库中,实现数据的持久化。 在实际开发中,正确导入和使用这些库至关...

    java通过JDBC链接SQLServer2016

    本文将详细介绍如何使用Java通过JDBC连接微软的SQL Server 2016数据库,并提供一个实际的案例供读者参考学习。 #### 二、准备工作 ##### 1. 安装JDBC驱动包 在开始之前,首先需要确保已经正确安装了JDBC驱动包。...

    sqljdbc4.jar, sqljdbc41.jar, sqljdbc42.jar三个包

    标题中的"sqljdbc4.jar, sqljdbc41.jar, sqljdbc42.jar"是指Microsoft SQL Server为Java应用程序提供的Java Database Connectivity (JDBC)驱动程序。这些JAR文件是数据库连接的关键,允许Java代码与SQL Server进行...

    jdbc sql2000驱动

    这些文件通常用于Java项目中,通过`Class.forName()`加载驱动,并使用`DriverManager.getConnection()`建立到SQL Server 2000的连接。 **详细知识点:** 1. **JDBC API**:JDBC是Java中的核心API,提供了一系列...

    sqljdbc41、sqljdbc42的官方jar包

    通过引入这个驱动,Java开发者可以在他们的应用中利用JDBC接口来执行SQL语句、处理结果集、管理事务等,从而与SQL Server数据库进行交互。sqljdbc41.jar提供了诸如自动重连、性能优化和更好的Unicode支持等功能,...

    sql server2000 jdbc

    SQL Server 2000 JDBC 是Java编程语言与Microsoft SQL Server 2000数据库进行交互的...以上就是关于"sql server2000 jdbc"的相关知识点,这些内容将帮助Java开发者成功地在应用程序中与SQL Server 2000数据库进行交互。

    sqljdbc4.jar sqlserver2005 jdbc 新版

    java 连接sqlserver数据库 sqljdbc4.jar sqlserver2005 2008 jdbc sqljdbc

    sqljdbc_6.0

    5. 处理结果:如果执行的是查询,可以获取ResultSet对象并遍历结果集。 6. 关闭资源:完成操作后,务必关闭Connection、Statement和ResultSet,以释放系统资源。 此外,JDBC 6.0版本可能引入了一些新特性,例如增强...

    sqljdbc.sqljdbc4.rar

    3. **结果集处理**:通过`Statement`或`PreparedStatement`执行查询后,会返回一个`java.sql.ResultSet`对象,可以遍历并处理查询结果。 4. **事务管理**:JDBC驱动支持事务的开始、提交、回滚,确保数据的一致性。...

    sqljdbc4 (SQL连接驱动包)

    `sqljdbc4`是微软公司提供的Java数据库连接(JDBC)驱动程序,它允许Java应用程序通过Java编程语言与Microsoft SQL Server进行通信。这个驱动包是专门为那些使用Java平台标准版(Java SE)7或更高版本的开发者设计的...

    sqljdbc和sqljdbc4jar包.rar

    在Java应用中,JDBC驱动扮演着桥梁的角色,将Java代码与数据库之间的通信转化为数据库特定的协议。 SQLJDBC驱动主要有以下几个版本: 1. **SQLJDBC**: 这是微软早期发布的JDBC驱动,适用于Java应用程序连接SQL ...

    sqlserver2000-jdbc2.0驱动

    这两个文件是Java应用程序连接到SQL Server 2000的桥梁,它们允许Java代码通过标准的JDBC接口执行SQL查询,插入数据,更新和删除记录。 首先,让我们了解JDBC。JDBC是Java平台的一个标准接口,由Sun Microsystems...

    Windowssever 2016 连sqlsever的jar包 JDK1.7/1.8 sqljdbc41/sqljdbc42

    要使用这个驱动,你需要确保你的Java环境是JDK 1.7,并将`sqljdbc41.jar`添加到项目的类路径中。 2. **JDBC 4.2 (sqljdbc42.jar)**:针对JDK 8,提供了更多新特性,如结果集的滚动和定位、更大的二进制和字符流以及...

Global site tag (gtag.js) - Google Analytics