【问题标题】:Java JDBC Sybase JConnectJava JDBC Sybase JConnect
【发布时间】:2012-02-02 06:23:04
【问题描述】:

我需要在我的 Java 应用程序中使用来自 sybase 的 JConnect(jConn3.jar) 驱动程序连接到我的 SQL Anywhere 11 (Sybase) 数据库。我已经尝试了文档并联系了技术支持,但没有得到有效的帮助:(。另外,如果有人知道如何使用此驱动程序连接到 Crystal Reports XI,我们将不胜感激...

【问题讨论】:

  • 你要给我们的不仅仅是“它不起作用”。你有一些源代码和堆栈跟踪吗?到这里来!您可能还想包含命令行。找出 JDBC 连接字符串是 JDBC 最糟糕的部分。你来对地方了,但你必须给我们更多。
  • 抱歉,当我说“连接到我的 SQL Anywhere 11(Sybase) 数据库”时,我想你误解了...我的意思是我想连接到 SQL Anywhere 11 数据库,而不是 MySQL数据库,抱歉误导性的上下文。我还想出了类路径部分,谢谢鲍勃。但是,我也想问一下,是否可以将 jConn3.jar 放在我的项目中(作为库)并在我的应用程序启动时动态加载它?如果可以,我将如何处理?
  • 它是什么样的应用程序?网络版还是独立版?

标签: java jdbc


【解决方案1】:

确保您的 jconn3.jar 位于应用程序的类路径中。然后使用您的 jdbc 驱动程序如下:

   try {
       Class.forName("com.mysql.jdbc.Driver").newInstance();
       String url = "jdbc:mysql://localhost/coffeebreak";
       conn = DriverManager.getConnection(url, "username", "password");

       // Do your stuff

       conn.close();
   } catch (Exception ex) {
   ...
   }

您对我的回答的评论有所帮助。我们也遇到过这样的问题。我们的项目在 JSP 中使用了查看器。问题是在深入我们的报告时发生的。 当您第一次打开报表时,查看器会为您的报表生成一个标识符。您必须将其存储在会话中,因此当您向下钻取时,您可以使用此标识符。这样,您表明它仍然是同一个报表,并且查看器将使用同一个数据源。 这是一段代码,应该比文字更清晰:

// Report viewer
CrystalReportViewer crystalViewer = new CrystalReportViewer();

// Key to store the report source
String reportSourceSessionKey = "anyKeyYouWant";
Object reportSource = null;

// Get the report name passed in parameter
String reportName = request.getParameter("report");
if (reportName != null) {
    // Build your report
    ReportClientDocument reportClientDoc = new ReportClientDocument();

    // ...

    // Store de report source
    reportSource = reportClientDoc.getReportSource();
    session.setAttribute(reportSourceSessionKey, reportSource);

    // Close the report document
    reportClientDoc.close();
} else {
    reportSource = session.getAttribute(reportSourceSessionKey);
}

// Set the source of the viewer
crystalViewer.setReportSource(reportSource);

....

这解决了我们的 JNDI 问题。希望它对你有用。

【讨论】:

  • 嗨 ouapdouap,感谢您的回答:)。但是请阅读我的顶级评论。 Aswel,那个网站根本没有帮助我,过去 3 周我一直在不停地访问它:(。问题是,由于某种原因,当我使用 ReportViewer 打开报告时,它显示了报告中已经存在的数据并且没有从数据库更新。当我说刷新()时......它没有做任何事情,没有错误,没有任何东西,就像它只是跳过它......但是当我尝试在查看器中刷新时,它会抛出一个 JNDI名称错误...我的头发忙掉了:o...叹息,大声笑
猜你喜欢
  • 2011-03-12
  • 2021-04-11
  • 2017-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多