我想访问我的 sql 数据库,而不是放置在ASUS\MSSQLSERVER1数据库名称“Test”中,并使用密码 teste 访问用户 teste
在 Java 代码中,我对此进行了编码:
@Test
public void TesteTemp() throws SQLException, InstantiationException, IllegalAccessException, ClassNotFoundException
{
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
String connString = "jdbc:jtds:sqlserver://ASUS/Test;instance=MSSQLSERVER1;user=teste;password=teste;";
Connection conn = null;
try{
conn = DriverManager.getConnection(connString);
}catch(SQLException ex){
ex.printStackTrace();
}
conn.close();
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
服务器 ASUS 没有名为 MSSQLSERVER1 的实例。
这说得通?
我正在运行 MSSQLSERVER1 服务。
我花了很多时间来寻找解决方案,尝试谷歌,BING它,试过JTDS社区但没有解决方案,或者我没有搜索到足够的,但这是我的情况:
我的项目中有JTDS库,并希望连接到位于本地文件夹(C:\ path\to\databasefile.mdb)的本地MDB数据库文件,但我看到的只是我需要以下连接字符串:
"jdbc:jtds:sqlserver://url:port[;option1]..."
Run Code Online (Sandbox Code Playgroud)
我想用这样的东西:
"jdbc:jtds:sqlserver://[C:\\path\to\databasefile.mdb]:port[;option1]..."
Run Code Online (Sandbox Code Playgroud)
可能吗?
我是android的新手..我想用JTDS驱动程序连接sql server.可以任何人告诉我..
thnx提前......
免责声明:我之前从未使用过SQL服务器.
我正在尝试使用java代码连接到SQL Server Express.
public class Test1 {
public static void main(String[] args) throws SQLException, ClassNotFoundException {
Class.forName("net.sourceforge.jtds.jdbc.Driver");
String url = "jdbc:jtds:sqlserver://localhost:1433/POC;instance=MOHITCH-LAPTOP/SQLEXPRESS";
String user = "admin";
String password = "admin";
Connection conn = DriverManager.getConnection(url, user, password);
Statement st = conn.createStatement ();
ResultSet rs = st.executeQuery("select * from POC.dbo.poc_table");
while (rs.next())
{
System.out.println(rs.getInt(1) + " " + rs.getString(2));
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了例外:
Exception in thread "main" java.sql.SQLException: Login failed for user 'admin'.
at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:372)
at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2820)
at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2258)
at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:603)
at …Run Code Online (Sandbox Code Playgroud) 我有一段时间远离Java EE,但我对所有这些东西都有一个基本的想法.
我在这里阅读JTDS文档:
http://jtds.sourceforge.net/features.html
它说它提供了语句池和连接池,但没有提供连接池实现.
随意添加更多细节到您的答案
(无论您发现什么重要;我没有明确询问的事情),
因为我对此非常困惑.
到目前为止,我们使用MS JDBC Driver 4.0使用集成安全性和Java Kerberos连接到SQL Server 2008,一切正常.
这是代码:
春天背景:
<!-- ***** Data Source Configuration ***** -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />
<property name="url"
value="jdbc:jtds:sqlserver://<serverName>:<port>;databaseName=<DBName>;integratedSecurity=true;authenticationScheme=JavaKerberos; />
<property name="initialSize" value="5" />
<property name="maxActive" value="2" />
<property name="defaultAutoCommit" value="false" />
</bean>
<!-- ***** Transaction Manager ***** -->
<bean id="txManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<tx:annotation-driven transaction-manager="txManager" />
<!-- ***** JDBC Configuration ***** -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<constructor-arg type="javax.sql.DataSource" ref="dataSource" />
</bean>
Run Code Online (Sandbox Code Playgroud)
login.conf文件:
com.sun.security.jgss.krb5.initiate {
com.sun.security.auth.module.Krb5LoginModule required
useTicketCache=false
doNotPrompt=true
useKeyTab=true …Run Code Online (Sandbox Code Playgroud) 我使用此代码与 Sql 服务器建立连接,当我使用 Class.forName(driver) 它正确连接时出现该错误,但我更喜欢使用 DataSourse。
static final BasicDataSource dataSource = new BasicDataSource();
static {
dataSource.setDriverClassName("net.sourceforge.jtds.jdbc.Driver");
dataSource.setUrl("jdbc:jtds:sqlserver://Mypc/Mydb;instance=SQLEXPRESS;");
dataSource.setUsername("");
dataSource.setPassword("");
}
public static void main(String[] args){
try{
dataSource.getConnection();
}
catch (SQLException ex){
System.out.println(ex);
}}
public static Connection getConnection() throws SQLException {
return dataSource.getConnection();
}
Run Code Online (Sandbox Code Playgroud)
我明白了
Exception in thread "main" java.lang.AbstractMethodError
at net.sourceforge.jtds.jdbc.JtdsConnection.isValid(JtdsConnection.java:2833)
at org.apache.commons.dbcp2.DelegatingConnection.isValid(DelegatingConnection.java:918)
at org.apache.commons.dbcp2.PoolableConnection.validate(PoolableConnection.java:283)
at org.apache.commons.dbcp2.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:357)
at org.apache.commons.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2307)
at org.apache.commons.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2290)
at org.apache.commons.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2039)
at org.apache.commons.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1533)
Run Code Online (Sandbox Code Playgroud) 我正在尝试从gradle脚本任务中查询数据库。我从一个普通的脚本开始验证代码
import groovy.sql.Sql
this.class.classLoader.rootLoader.addURL(new URL('file:<..>/jtds-1.2.2.jar'))
def driver = 'net.sourceforge.jtds.jdbc.Driver'
def dburl = "jdbc:jtds:sqlserver://ITSVIL:1433/APPDB"
def first
Sql.withInstance(dburl, '<..>', '<..>', driver) {
sql ->
first = sql.firstRow( "SELECT * FROM PROJECT" )
}
Run Code Online (Sandbox Code Playgroud)
我使用groovy QueryTest.groovy启动并验证了它是否有效。然后我在gradle任务中移动了脚本,代码没有任何变化,但由gradle buildscript语句处理了加载
import groovy.sql.Sql
defaultTasks 'queryTest'
buildscript {
dependencies {
classpath files('<..>/jtds-1.2.2.jar')
}
}
task queryTest () {
// l'update va su REPOSITORYURL + '/' + alm.project.vcrProjectName + '/' + Reference
doLast {
def driver = 'net.sourceforge.jtds.jdbc.Driver'
def dburl = "jdbc:jtds:sqlserver://ITSVIL:1433/APPDB"
def first
Sql.withInstance(dburl, '<..>', '<..>', driver) { …Run Code Online (Sandbox Code Playgroud) 我们的 Java 应用程序使用 jTDS 1.3.1 连接到 SQL Server,它工作正常,直到客户端尝试将数据库放在 Azure SQL 上。连接失败,出现以下异常:
java.sql.SQLException:原因:由于客户端 TLS 版本低于服务器允许的最低 TLS 版本,登录失败。
我检查了jTDS的文档,无论如何都看不到指定TLS版本。除了用 MS JDBC 驱动程序替换它之外,有人成功地解决了其他问题吗?
我无权访问 Azure SQL,因此无法测试将 TLS 版本降低到 1.0 是否有效。
我需要帮助使用SymmetricDS 3.5.1连接Azure数据库.我似乎无法正确配置.我收到一条错误,说"无法创建PoolableConnectionFactory"消息"socket closed"(当我没有指定ssl参数时)或"login timeout"(当我指定ssl参数时).我已在连接字符串中指定了超时量,但是,它似乎不起作用,默认为30秒.是否有任何关于如何使用SymmetricDS连接到Azure数据库的文档?无论如何,看看我的engine.properties文件中告诉我需要更改什么?我有以下内容:
db.url=jdbc:jtds:sqlserver://MyServer.database.windows.net:1433;database=MyDatabase;user=MyUser@MyServer;password=MyPassowrd;encrypt=true;hostNameInCertificate=*.database.windows.net;loginTimeout=300;useCursors=true;bufferMaxMemory=10240;lobBuffer=5242880;ssl=require
db.user=MyUser@MyServer
db.database=MyDatabase
db.password=MyPassword
db.driver=net.sourceforge.jtds.jdbc.Driver
Run Code Online (Sandbox Code Playgroud)