SRING 使用JTDS连接SQLSERVER数据库,解决THE DRIVER COULD NOT ESTABLISH A SECURE CONNECTION TO SQL SERVER BY USI

做好的接口发布到客户测试环境,调用接口数据库连接就出现SSL安全性问题,按照网上的方法修改连接字符串,加各种参数都没用

jdbc.url=jdbc:sqlserver://xxx:1433;DatabaseName=xxx;SelectMethod=cursor;integratedSecurity=true;encrypt=true;trustServerCertificate=true;Trusted_Connection=false;verifyServerCertificate=false;useSSL=true;requireSSL=true;


然后就开始换连接池,最初使用的是org.springframework.jdbc.datasource.DriverManagerDataSource.之后试过com.mchange.v2.c3p0.ComboPooledDataSource的,最后在使用dbcp+jtds的时候发现可以连接数据库获取数据了,下面简单的整理一下

项目是通过meavn加载jar包的,可以通过Mvn Repository查询想要使用的jar

jtds 驱动
 

<dependency>
  <groupId>net.sourceforge.jtds</groupId>
  <artifactId>jtds</artifactId>
  <version>1.3.1</version>
</dependency>


dbcp 连接池

<dependency>
  <groupId>commons-dbcp</groupId>
  <artifactId>commons-dbcp</artifactId>
  <version>1.4</version>
</dependency>
<dependency>
  <groupId>commons-pool</groupId>
  <artifactId>commons-pool</artifactId>
  <version>1.6</version>
</dependency>

修改spring-conext.xml的dataSource,class使用dbcp的连接池source,配置对应的参数

<bean id=”dataSource” class=”org.apache.commons.dbcp.BasicDataSource” >
  <property name=”driverClassName” value=”${jdbc.driver}” />
  <property name=”url” value=”${jdbc.url}” />
  <property name=”username” value=”${jdbc.username}” />
  <property name=”password” value=”${jdbc.password}” />
</bean>

properties中的参数
jdbc.driver要改为net.sourceforge.jtds.jdbc.Driver
jdbc.url要改为jdbc:jtds:sqlserver

jdbc.driver=net.sourceforge.jtds.jdbc.Driver
jdbc.url=jdbc:jtds:sqlserver://localhost:1433;DatabaseName=myDatabaseNamexxx;
jdbc.username=usernamexxx
jdbc.password=passwordxxx

重启项目后就可以正常连接sqlserver数据库了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android开发可以通过jtds直接连接SQL Server进行读写操作。以下是连接SQL Server数据库的步骤: 1.在项目的build.gradle文件中添加以下依赖项: ```gradle implementation 'net.sourceforge.jtds:jtds:1.3.1' ``` 2.在代码中使用以下语句加载jtds驱动程序: ```java Class.forName("net.sourceforge.jtds.jdbc.Driver"); ``` 3.使用以下代码连接SQL Server数据库: ```java String url = "jdbc:jtds:sqlserver://服务器IP:端口号/数据库名称;instance=实例名"; Connection conn = DriverManager.getConnection(url, "用户名", "密码"); ``` 4.连接成功后,可以使用以下代码执行SQL查询并获取结果: ```java Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM 表名"); while (rs.next()) { // 处理查询结果 } ``` 需要注意的是,网络访问以及特别耗时的操作不能放在主线程进行,需要创建一个子线程或者一个异步任务来执行。可以使用AsyncTask来实现异步任务,以下是一个使用AsyncTask连接SQL Server数据库并执行查询的例子: ```java public class MySQLConnectAsyncTask extends AsyncTask<Void, Void, String> { @Override protected String doInBackground(Void... voids) { try { Class.forName("net.sourceforge.jtds.jdbc.Driver"); String url = "jdbc:jtds:sqlserver://服务器IP:端口号/数据库名称;instance=实例名"; Connection conn = DriverManager.getConnection(url, "用户名", "密码"); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM 表名"); StringBuilder sb = new StringBuilder(); while (rs.next()) { sb.append(rs.getString("列名")).append("\n"); } rs.close(); stmt.close(); conn.close(); return sb.toString(); } catch (Exception e) { e.printStackTrace(); return "连接数据库失败:" + e.getMessage(); } } @Override protected void onPostExecute(String s) { tvContent.setText(s); } } ``` 可以在Activity中调用该异步任务来连接SQL Server数据库并执行查询: ```java new MySQLConnectAsyncTask().execute(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值