FineReport无法连接access数据库解决方案

楼主
欢迎找我唠嗑
FineReport连接access数据库失败的原因是8.0中我们的jdk升级到了1.8,这个jdk就不带odbc驱动,导致access数据连接不成功。

帆薯小坚评论道:
本质上来说,Access问题是由于Oracle和Microsoft之间的撕逼,最终用户遭殃。

以下是详细解决方案:

1. JDBC连接数据库示例
我们以连接Access和Oracle数据库为例介绍JDBC方式连接数据库的操作步骤。
1.1 Access数据库
  • 新建数据库,选择JDBC方式连接

  • 选择数据库类型,修改URL
选择数据库类型如Access,会自动加载的驱动器及默认的URL,修改了URL后,由于8.0设计器自带的jdk升级到了1.8版本,不自带有odbc驱动,会导致原来的odbc连接access不能使用,出现如下图的错误提示

这里,需要使用连接access数据库的第三方jdbc驱动jar包下载地址,以及驱动路径和url都需要改一下
注:需要用户自己将对应驱动放置在%FR_HOME%\WebReport\WEB-INF\lib文件夹下。如下图所示


驱动器修改为net.ucanaccess.jdbc.UcanaccessDriver ;URL修改为 jdbc:ucanaccess://access数据库所在的路径;如下图所示

  • 连接池属性
点击连接池属性可设置该JDBC数据连接的连接池配置,详细请查看JDBC连接池属性,这里使用默认设置,一般性都是用默认设置。
  • 输入用户名、密码,测试连接
输入Oracle数据库用户名与密码,点击左上方的测试连接,提示成功,数据库连接便定义好了。
注:测试连接成功并不是说已经可以正确地获取到数据库的数据,测试的只是网络连接。
1.2 Oracle数据库
  • 新建数据库,选择JDBC方式连接

  • 选择数据库类型,修改URL
选择数据库类型如Oracle,会自动加载的驱动器及默认的URL,根据实际数据库服务器地址修改URL,如下:

  • 连接池属性
点击连接池属性可设置该JDBC数据连接的连接池配置,详细请查看JDBC连接池属性,这里使用默认设置,一般性都是用默认设置。
  • 输入用户名、密码,测试连接
输入Oracle数据库用户名与密码,点击左上方的测试连接,提示成功,数据库连接便定义好了。

其他数据库连接步骤相同。
注:测试连接成功并不是说已经可以正确地获取到数据库的数据,测试的只是网络连接。
2. 数据库驱动及URL对应表
以下列出设计器中支持的数据库及对应的连接属性值:
数据库类型
驱动器
URL
支持数据库版本
Oracle
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@ip:1521:databaseName
Oracle9i、Oracle10g、Oracle11g
Oracle
oracle.jdbc.driver.OracleDriver
jdbc:oracle:oci:@databaseName
Oracle9i、Oracle10g、Oracle11g
Sqlite
org.sqlite.JDBC
jdbc:sqlite://${ENV_HOME}/../FRDemo.db
DB2
com.ibm.db2.jcc.DB2Driver
jdbc:db2://ip:50000/databaseName
DB2_7.2、DB2_8.1
SQL Server
com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc:sqlserver://ip:1433;databaseName=xxx
SQL Server2000、2005、2008
SQL Server
net.sourceforge.jtds.jdbc.Driver
jdbc:sqlserver://ip:1433;databaseName=xxx
SQL Server2000、2005、2008
MySQL
com.mysql.jdbc.Driver
jdbc:mysql://ip/databaseName?user=root&useUnicode=True&characterEncoding=gb2312
MySQL4.0版本以上
MySQL
org.gjt.mm.mysql.Driver
jdbc:mysql://ip/databaseName?user=root&useUnicode=True&characterEncoding=gb2312
MySQL4.0版本以上
Sybase
com.sybase.jdbc2.jdbc.SybDriver
jdbc:sybase:Tds:ip:5000/databaseName?CHARSET=cp936
Sybase
Access
sun.jdbc.odbc.JdbcOdbcDriver
jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=${ENV_HOME}\..\FRDemo.mdb
Access
Access
sun.jdbc.odbc.JdbcOdbcDriver
jdbc:odbc:Driver={Microsoft Access Driver (*.mdb, *accdb)};DBQ=${ENV_HOME}\..\FRDemo.accdb
Access2007及以上版本
Access
net.ucanaccess.jdbc.UcanaccessDriver
jdbc:ucanaccess://数据库所在路径
Access
Derby
org.apache.derby.jdbc.ClientDriver
jdbc:derby://ip:1527/databaseName
Derby
Postgre
org.postgresql.Driver
jdbc:postgresql://ip:5432/databaseName
Postgre
Others
org.hsqldb.jdbcDriver
jdbc:hsqldb:file:[PATH_TO_DB_FILES]
Hsql

注:在进行数据连接的时候要注意驱动器支持的数据库版本,如果选择的数据库版本不在上述表格中,那么就需要更换驱动器。
  • 示例
使用oracle数据库的时候,没有使用上述表格中所说的版本,而是oracle7.2.3,那么需要把oracle7中jdbc/lib目录下的classes12.jar放进FR的WEB-INF/lib中,同时删除ojdbc14.jar。相当于换了一个oracle驱动。
注:如果FR内置没有JDBC数据连接使用的驱动,需要用户自己将对应驱动放置在%FR_HOME%\WebReport\WEB-INF\lib文件夹下,如果放入驱动之后还是连接不上,请注意驱动版本和是否需要辅助jar。



分享扩散:
参与人数 +1 F豆 +1 理由
netforces + 1 赞一个!

查看全部评分

沙发
发表于 2015-6-12 16:53:00
板凳
发表于 2015-6-12 17:04:50
{:8_209:}
地板
发表于 2015-6-17 18:45:30
学习了,一直连接ACC连接不上,刚知道
5楼
发表于 2015-6-26 21:38:50
连上了,但是刷不到表格啊.
6楼
发表于 2015-7-20 23:14:15
今天试了一下,连接access数据库解决方案在我机器上不成功呀
7楼
发表于 2015-7-23 13:27:23
表示没用过access的路过。。。
8楼
发表于 2016-6-1 09:12:26
我的也连不上Access数据库,上火啊,安装jdk1.7了也没用啊!
9楼
发表于 2021-1-4 11:56:06
链接成功了。但是刷不出表,怎么办?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

8回帖数 2关注人数 27992浏览人数
最后回复于:2021-1-4 11:56

返回顶部 返回列表