关于Android Studio使用jdbc连接数据库

遇到问题

错误信息:

com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“Socket closed”。

关于环境:

JDK:

图片说明

驱动:

图片说明

SQL Server:

图片说明

Android Studio:

图片说明

背景:

准备设计一个汽车配件进销存管理系统,曾经已经在PC端实现过了,现在想结合新学的安卓开发知识,在Andriod系统上开发该管理系统,并且据需使用PC端SQL Server上的数据。于是直接使用Eclipse上连接数据库的代码,并稍作修改。在Android Studio中创建assets目录放入properties文件,使用class.getResourceAsStream加载该文件,在properties中拿到url、user、password和driver。使用 Class.forName()注册驱动,使用DriverManager.getConnection()获取连接。
图片说明
几乎和Eclipse上连接数据库的步骤一模一样,在Eclipse上没有任何问题,但是在Android Studio中出现了错误:com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“Socket closed”。

解决过程:

1、网络问题

一开始以为是模拟器的ip地址与主机ip地址不能连通,查阅相关资料,发现主机相对于模拟器的ip地址为10.0.2.2。然而修改后并没有区别,并且使用java的net.Socket进行两个设备的tcp连接,发现完全没有问题。于是排除这个因素。

2、连接方式

之后继续查阅资料,查看sql server jdbc的url参数,进行各种修改,也无济于事。最终选择放弃使用sql server。转向mysql。

3、版本匹配

由于电脑本身安装了mysql 8.0版本的。于是下载了对应版本的jdbc驱动。出现了新的错误:UnsupportedOperationException。我继续查阅资料,发现这个错误一般都是在操作集合的时候才出现,不明白为什么会出现在获取连接的时候。因此只好放弃该版本,选择更为稳定的mysql 5.7版本。进行重新安装和配置。最终成功连接jdbc并查询到信息!
图片说明

结论:

至今不知什么原因导致sql server和Android Studio无法进行连接,还需要更多的尝试和考证,由于时间有限,和sql server安装的复杂性,无法继续探究。只好使用mysql数据库。同时也不知道为什么mysql 8.0版本会出现问题。最终选择使用mysql 5.7版本。

解决方案

将SQL Server数据库,更换为My SQL 5.7版本。并更换对应的jdbc驱动进行连接。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务