- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 JTDS 连接到 MS SQL Server。与数据库的连接没有问题,但是当我尝试执行语句时,出现数据库“java”不存在异常。
连接字符串:
conn = DriverManager.getConnection("jdbc:jtds:sqlserver://localhost;DatabaseName=MyDatabase;user=testuser;password=testpassword");
尝试执行脚本:
private void runStatement(String scriptLocation) {
if(scriptLocation == null) {
return;
}
try {
InputStream is = getClass().getClassLoader().getResourceAsStream(scriptLocation);
String query = is.toString();
is.close();
Statement stmt = conn.createStatement();
stmt.executeQuery(query);
} catch(IOException | SQLException ex) {
log.warning(ex.getMessage());
}
}
堆栈跟踪:
WARNING: Database 'java' does not exist. Make sure that the name is entered correctly.
java.sql.SQLException: Database 'java' does not exist. Make sure that the name is entered correctly.
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:372)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2988)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2421)
at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:671)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:505)
at net.sourceforge.jtds.jdbc.JtdsStatement.executeQuery(JtdsStatement.java:1427)
at com.exampe.MyJTDSConnection.runStatement(MyJTDSConnection.java:238)
at com.exampe.MyJTDSConnection.loadPageTitle(MyJTDSConnection.java:208)
at com.exampe.MyJTDSConnection.runTesting(MyJTDSConnection.java:69)
at com.exampe.SeleniumTesting.runTest(SeleniumTesting.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
...
最佳答案
正如您问题的评论中所提到的,将 .toString()
方法应用于 InputStream 对象不会读取 InputStream。相反,它只返回对象本身的字符串表示形式,而不是对象包含的内容。
例如,我的 Java 项目有一个名为“script.sql”的资源文件,其中包含:
SELECT @@VERSION
以下代码比较了仅对对象执行 .toString()
与使用 Apache Commons IO 的结果实际上将读取InputStream到字符串中:
package resourceTest;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
public class ResourceTestMain {
public static void main(String[] args) {
try (InputStream is = ResourceTestMain.class.getClassLoader().getResourceAsStream("resources/script.sql")) {
String toStringValue = is.toString();
String contents = IOUtils.toString(is, "UTF-8");
is.close();
System.out.println("is.toString() returned:");
System.out.println(" " + toStringValue);
System.out.println();
System.out.println("IOUtils.toString(is, \"UTF-8\") returned:");
System.out.println(" " + contents);
} catch (Exception e) {
e.printStackTrace(System.out);
}
}
}
结果是:
is.toString() returned:
java.io.BufferedInputStream@804a77
IOUtils.toString(is, "UTF-8") returned:
SELECT @@VERSION
关于java - JTDS 未连接到正确的数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26847309/
useBlobs=false 使用 XAPoolDataSource。 抛出异常,例如“调用 resultset.getObject() 时的标题描述” 我不知道问题是什么。 最佳答案 通用连接字符串
我基于this issue连接到SQL Server数据库。 driverClassName =“net.sourceforge.jtds.jdbc.Driver” 方言=“org.hibernate
我正在使用 JTDS 连接到 MS-SQL 2005。我使用 c3p0 作为数据库连接池,并使用 Spring 配置。 我在 Groovy 脚本中随机收到 SQLException:无效状态,Resu
我厌倦了用谷歌搜索这个错误。请帮我。我发现建议将 jtds-1.3.1.jar 添加到类路径或编辑您的 web.xml。 请告诉我该怎么做?我使用 Idea、Maven、Gwt,并希望连接到 MS S
我正在使用 JTDS 连接到 MS SQL Server。与数据库的连接没有问题,但是当我尝试执行语句时,出现数据库“java”不存在异常。 连接字符串: conn = DriverManager.g
我现在正在尝试决定使用哪个驱动程序来创建从我的 JavaEE 应用程序到 MS SqlServer 的数据源。 几年前,我对 JTDS 有了很好的体验, 和 SO answers表明 JTDS 是当时
当我直接从 SSMS 调用存储过程 (MSSQL 2008R2) 或从 JTDS 调用它时,我看到了不同的行为。 首先,请看这两个程序。 CREATE PROCEDURE [Template].[Un
使用 jtds 1.2.5 建立连接时出现此错误:“找不到消息属性 prop.sokeepalive 的消息资源” 起初,我使用的是 1.2.2 版本,但出现此错误消息。 “获取 jdbc 连接时出错
如何设置参数@p_ItemShelfList [file].[udtt_ItemShelfPair] READONLY与 一样正确 cs.setNull(3, Types.NULL); 当我尝试时,我
我有一个使用 JTDS 连接到 SQL Server 的应用程序。我需要更改数据库并希望在重新配置应用程序之前先测试连接字符串。我是一名 SQL Server DBA,而不是 Java 开发人员!这是
我需要使用 JTDS jdbc 驱动程序调用存储过程。 但是这个存储过程需要一个结构类型作为参数。Jtds CallableStatement 没有设置结构的方法,因此我尝试转换为 SQLServer
我已经离开 Java EE 有一段时间了,但我对所有这些东西都有一个基本的了解。 我在这里阅读 JTDS 文档: http://jtds.sourceforge.net/features.html 它
我的 sql 服务器实例名称是 MYPC\SQLEXPRESS,我正在尝试创建一个 jTDS 连接字符串以连接到数据库“博客”。任何人都可以帮我完成吗? 我正在尝试这样做: DriverManager
我们运行一个用 Java 编写的网站,该网站使用 JDBC 和 jTDS 来访问 SQL Server 数据库。 我们的数据库包含一个复杂的存储过程,通常需要 10 分钟才能运行。如果我们直接执行(例
我正在使用 JTDS 和 Java 连接到 Microsoft SQL 数据库。我能够完美连接到数据库。但是,当我运行下面的代码时,出现错误“找不到存储过程'get_queue_items'”。我尝试
这很奇怪,我正在连接到一个为 Windows 配置了集成身份验证的 SQL Server 2008 实例。我找到了一种通过在代码中执行此操作来绕过集成身份验证的方法: Connection con =
我正在尝试构建一个连接到我们的 SQL Server 的 Android 应用程序。我已经下载了 jTDS JDBC 驱动程序。我有一个 jar 文件,必须将其复制到我的应用程序的类路径中。但那是哪里
据我所知,jTDS 的正确连接字符串是: jdbc:jtds:://[:][/] 我认为问题出在服务器名称上。服务器名称格式如下 servername\adhoc 每当我尝试连接时抛出 SQLExce
情况 我有一个使用 jTDS 连接到 MSSQL 2008 数据库的 (Tomcat) Java Web 应用程序。此 Java 应用程序使用用户输入执行 99% 的 MSSQL 存储过程。 问题 j
我在 MS SQL Server 上有一个表,其中一列的数据类型为日期。我正在使用 jtds.jar 与数据库进行 JDBC 连接。我正在从 Connection 获取 DatabaseMetaDat
我是一名优秀的程序员,十分优秀!