我尝试连接到我的MySQL数据库,但Class.forname()的正常方式不起作用,因为OSGI的Class Loader Hirachie。我不知道该怎么做。如何设置与OSGI的MySQL数据库连接?
0
A
回答
0
看大同JDBC:https://ops4j1.jira.com/wiki/display/PAXJDBC/MySQL+Driver+Adapter
这将注册为MySQL数据库,然后您可以用它来创建数据源一个DataSourceFactory。请参阅http://www.osgi.org/javadoc/r4v42/org/osgi/service/jdbc/DataSourceFactory.html
我认为Pax JDBC MySql驱动程序有一些限制,它没有完全实现规范,所以请仔细阅读说明。
0
在OSGi中,一个bundle的类加载器只能看到这个bundle在其清单中显式导入的包。因此,Class.forname不适用于未导入的包。
直接的解决方案是在com.mysql.jdbc包的清单中添加一个Import-Package标头。如果你试图加载(例如)com.mysql.jdbc.Driver,它会起作用。
为JDBC驱动程序添加显式导入包会导致无需更改导入包头即可切换驱动程序。为此,您可以考虑使用DynamicImport-Package:*。这将允许捆绑包在捆绑布线之后找到类。请注意,在大多数情况下,这绝不应该使用,因为现在您已经回到了运行时加载类加载异常的可能性,OSGi通常会为您预防这些异常。在JDBC的情况下,它可以是正确的解决方案。
相关问题
- 1. 如何连接mysql数据库与android
- 2. 如何在android中设置与远程数据库的连接?
- 3. ibm与mysql数据库的流连接
- 4. 验证与MySQL数据库的连接
- 5. MySQL与数据库的连接
- 6. 与Jython的Mysql数据库连接
- 7. 如何连接android上传PHP数据与MySQL数据库?
- 8. 如何连接到MySQL数据库?
- 9. Xcode 4.6如何连接Mysql数据库
- 10. openui5 - 如何连接到MySQL数据库?
- 11. 如何连接mysql数据库?
- 12. 如何连接远程mysql数据库
- 13. 连接MySQL数据库与play-framework 2.5
- 14. 与sencha在线mysql数据库连接?
- 15. 与MySQL数据库连接失败
- 16. 连接mysql数据库与tcl脚本
- 17. 问题与连接到MySQL数据库
- 18. 连接到MySQL数据库与C#
- 19. 数据库连接C#ExecuteNonReader与MySql
- 20. Laravel:设置数据库连接的时间戳laravel mysql
- 21. OSGI应该如何处理数据库连接失败?
- 22. 如何使用RedBean检查与MySQL数据库的连接?
- 23. Java设置连接数据库
- 24. 为模型设置数据库连接?
- 25. PHP - MySQL数据库连接
- 26. Asp.net mysql数据库连接
- 27. Mysql数据库未连接
- 28. Netbeans MySql数据库连接
- 29. 连接到MySQL数据库
- 30. Laravel/MySQL数据库连接
请阅读:http://www.liquid-reality.de/display/liquid/2012/01/13/Apache+Karaf+Tutorial+Part+6+-+Database+Access – Namphibian