开发者社区> 问答> 正文

ireport 设计时报表模板时,无法使用sybase驱动com.sybase.?400报错

ireport 设计时报表模板时,无法使用sybase驱动com.sybase.jdbc3.jdbc.SybDriver?? 400 报错

最近在学习使用jasperreport,但在使用数据源获取数据的时候出现了问题。我这边的环境如下:

 ireport设计时使用的数据源是jdbc connection, 数据库是sybase。由于是ase15.5,对应的驱动是com.sybase.jdbc3.jdbc.SybDriver。配置数据源的界面如图:

点击Test后,显示连接成功。

随后问题来了,在输入sql预览数据的时候出错了,字段没有正确获取,见下图:

如果把数据源换成mysql,是可以正确获取数据的。

ps: 在配置数据源时(见第一张图),JDBC driver选项里有com.sybase.jdbc2.jdbc.SybDriver,但没有com.sybase.jdbc3.jdbc.SybDriver(图1中的driver是我手动输入的)。是否ireport对sybase高版本支持不太好?

展开
收起
爱吃鱼的程序员 2020-05-30 22:24:42 1022 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    额。问题已解决######iReport和 jasperreport是什么关系?######iReport是一个辅助jasperReport的报表模板设计工具。简单来说就是一个图形化的设计工具,可以在windows上安装。上面的截图就是iReport######

    数据库驱动在FineReport很简单

    1. 概述
    制作报表前首先需要定义数据来源,实际用户系统最长见的就是数据保存在数据库中,并且在不断更新中,使用数据库数据来制作报表,并且报表内容会随着数据库的更新而更新。
    FR天然支持这一点,只需要在服务器>定义数据连接中定义需要连接的数据库,就可以自定义查询语句查询出需要的数据,从而制作报表,如下图:
    数据连接存储在工程中,当用户执行需要访问数据库的操作时这些连接被激活。
    一个报表工程可以定义多个数据库连接,所有信息都保存在appName/WEB-INF/resources/datasource.xml配置文件中。
    可以通过JDBC、JNDI、SAP、XMLA和FineBI五种方式连接数据库,当报表执行时需要访问数据库时这些连接才会被激活。
    注:XMLA和FineBI连接的是多维数据库,其中FineBI是连接帆软的另一款BI产品的数据库。
    2. JDBC连接与JNDI连接的区别
    • JDBC连接数据库
    JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,下面介绍JDBC连接数据库的方法。
    • JNDI连接数据库
    JNDI(Java Naming and Directory Interface)是一个应用程序设计的API,为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口,类似JDBC都是构建在抽象层上。
    • JDBC 和JNDI连接数据库哪个更有优势
    使用JNDI连接某个数据源,如名为test,该数据源的所连接的数据库都在应用服务器端定义。因此JNDI连接数据源不需要关心具体的数据库后台是什么?JDBC驱动程序是什么?JDBC URL格式是什么?访问数据库的用户名和口令是什么?甚至没有数据库连接池或连接管理。而是把这些问题交给J2EE容器来配置和管理,只需要对这些配置和管理进行引用即可。
    在报表部署后,如果数据库的相关参数变更,只需要重新修改配置文件中的JDBC参数,只要保证数据源的名称不变,那么数据连接就无需修改。由此可见,JNDI避免了报表与数据库之间的紧耦合,和项目共用服务器的连接池,使应用更加易于配置、易于部署。
    JDBC就是直接连接物理数据库,连接数据库比较快,但在程序中使用的话就比较烦琐,每次连接都要有一定的编码,和数据库的连接需要手动关闭。

    2020-05-30 22:24:43
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ORACLE 10g 数据库体系结构图 立即下载
阿里云数据库案例集下载 立即下载
Oracle VS PostgreSQL技术大比拼 立即下载