Could not get list of tables from database. Probably a JDBC driver problem.

 

在用myeclipse8.5M1 反向生成代码时报错:

 

An internal error occurred during: "Generating Artifacts".

Could not get list of tables from database. Probably a JDBC driver problem. 

 

=============================

 

 

尝试了更换工作空间、重装myeclipse、更换oracle驱动(用工程自带的oracle.jar 替换成ojdbc5.jar 和ojdbc6

.jar(这里没有重启,所以没效果)),结果都没解决。

 

最后反正好了,最后的操作步骤好像是提交了新建的package文件价到svn库,然后就可以用了。然后想复现效果结果复现不了。

 

纳闷。。

 

后面知道原因了,与来更换驱动后要重启myeclipse

 

==============================

 

公司使用的oracle版本号是10.2,解压oracle.jar竟然没有META-INF文件夹,查看不到版本信息,只能把其中的一个class文件放入UltraEdit,第一行内容为:00000000h: CA FE BA BE 00 03 00 2D 00 3F 07 00 2C 07 00 2D

前四个字节为固定的 CA FE BA BE ,接下来的四个字节为次版本号(0003)和主版本号(002D),根据下表查看得知编译该class的jdk版本只能为jdk1.1 、jdk1.2 和jdk1.3。这是什么版本的oracle驱动?还不是官方的?

 

 

JDK 编译器版本target 参数十六进制 minor.major十进制 minor.major
jdk1.1.8不能带 target 参数00 03 00 2D45.3
jdk1.2.2不带(默认为 -target 1.1)00 03 00 2D45.3
jdk1.2.2-target 1.200 00   00 2E46.0
jdk1.3.1_19不带(默认为 -target 1.1)00 03 00 2D45.3
jdk1.3.1_19-target 1.300 00   00 2F47.0
j2sdk1.4.2_10不带(默认为 -target 1.2)00 00   00 2E46.0
j2sdk1.4.2_10-target 1.400 00   00 3048.0
jdk1.5.0_11不带(默认为 -target 1.5)00 00   00 3149.0
jdk1.5.0_11-target 1.4 -source 1.400 00   00 3048.0
jdk1.6.0_01不带(默认为 -target 1.6)00 00   00 3250.0
jdk1.6.0_01-target 1.500 00   00 3149.0
jdk1.6.0_01-target 1.4 -source 1.400 00   00 3048.0
jdk1.7.0不带(默认为 -target 1.6)00 00   00 3250.0
jdk1.7.0-target 1.700 00   00 3351.0
jdk1.7.0-target 1.4 -source 1.400 00   00 3048.0
Apache Harmony 5.0M3不带(默认为 -target 1.2)00 00   00 2E46.0
Apache Harmony 5.0M3-target 1.400 00   00 30

48.0

 

 

==============

 

出现错误,还是因为jar包问题,更换才ojdbc5.jar。然后重启myeclipse 就好了(一定要重启,否则没效果)。

 

可是项目组其他同事用的oralce.jar,确可以用。他们客户端有的装9i 有的装11g  ,而只有我装的是10g ,这还和客户端有关系么?

 

 

查看: http://zhouchaofei2010.iteye.com/blog/1733373   oracle驱动的选择,对象数据库oracle10.2 。项目使用jdk1.6 的驱动可以选择:

 

1:10.2 版本自带的ojdbc14.jar    适用于 JDK 1.4 and 5.0 (jdk1.6 可以解析低版本的驱动):

2:随Oracle 11.1发布的Oracle JDBC驱动11.1版本

ojdbc5.jar:   适用于jdk5 (jdk1.6 可以解析低版本的驱动)

ojdbc6.jar:   适用于jdk6 (如果你使用jdk1.5,就不能使用这个驱动)

 

 

 

 

根据提供的引用内容,出现"Could not get a databaseId from dataSource com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure"错误通常是由于数据库连接问题引起的。以下是一些可能的解决方法: 1. 检查数据库连接配置:确保数据库连接配置正确,包括数据库URL、用户名和密码。可以尝试使用相同的配置在本地连接RDS数据库,以确认配置是否正确。 2. 检查网络连接:确保ECS实例和RDS数据库在同一地域,并且ECS实例的内网IP已经添加到RDS数据库的白名单中。如果白名单配置正确,但仍然无法连接,可以尝试使用telnet命令检查网络连接是否正常。 3. 检查数据库服务状态:确保RDS数据库服务正常运行。可以通过RDS控制台或命令行工具来检查数据库的状态。 4. 检查数据库连接池配置:如果使用了连接池来管理数据库连接,可以检查连接池的配置是否正确。例如,检查连接池的最大连接数、连接超时时间等参数是否合理。 5. 检查数据库驱动程序:确保使用的数据库驱动程序版本与数据库版本兼容。如果驱动程序版本不匹配,可能会导致连接失败。 6. 检查数据库服务器防火墙:如果数据库服务器上启用了防火墙,确保允许ECS实例的IP地址访问数据库服务器的端口。 7. 检查数据库服务器资源:如果数据库服务器资源不足,可能会导致连接失败。可以检查数据库服务器的CPU、内存和磁盘使用情况,以确保有足够的资源来处理连接请求。 8. 检查数据库日志:查看数据库的错误日志,以获取更多关于连接失败的详细信息。日志文件通常位于数据库服务器的特定目录下。 请注意,以上方法仅提供了一些常见的解决方案,具体的解决方法可能因情况而异。如果问题仍然存在,请提供更多详细信息以便进一步分析和解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值