Android Studio访问SQL server总结


前言

花了将近三周时间,学习Android Studio访问SQL server数据库信息。期间遇到了好多问题,踩了很多坑,最终终于访问成功,还是很有成就感的。写这篇文章,是想再次梳理下思路,也想对一些博主表达感谢,他们的文章对我很有帮助,另外也想帮助和我一样的小白。


一、第一类问题

我用的版本是Android Studio2019和SQL server 2017 developer 版本,主要参考easyboot博主的文章《android Studio与数据库SQLserver连接实现登录》[1]。要注意的是,当我把代码放进Android Studio时,提示如下错误:
提示空指针异常
于是找原因,发现MainActivity.java 代码中最后一段颜色和其它的不一样,如下图,而且handler被划掉了。另外当我把鼠标放在被划掉的handler上时,提示This Handler class should be static or leaks might occur。
在这里插入图片描述

对于handler被划掉这个问题,要感谢尹蓝锐博主的文章,《Android开发中Handler被划横线解决办法》[2],文章简短有效。解决办法:file—structure product—modules—将API30改为29。
对于“This Handler class should be static or leaks might occur”问题,了解下来,handler有两种定义用法,具体颗参考catRuan的《Handler基本使用(一) new Handler》[3],代码中的为第一种定义用法,将handler定义为匿名内部类,容易造成内存泄漏。于是我采用了第二种定义方式,如下图:
handler的第二种定义方法
这样handler代码就解决了。不过要提醒的是,运行代码之前需要检查AS是不是合适的SDK版本。这里也有个大坑,因为SDK比较大,最好下载低一点的版本,以免不兼容,可参考我的版本。下载SDK版本时,要在SDK manager中,选择SDK tool,右下角点show tool details,然后选择合适的版本。如果在project structure中下载的话,容易出现版本不兼容。
SDK版本

二、第二类问题

代码拷贝在自己AS中后,最好先运行DBUtil.java,它可以检测AS在电脑上能否访问数据库。这里就涉及到ip地址的填写。一开始我以为这个ip地址就是sql server.exe对应的地址。所以网上找了很久,要查找这个应用程序对应的ip地址。用的是netstat -anbo在dos命令窗口执行。但其实不用这么麻烦,这个ip地址其实就是这台电脑在局域网里所分配的ip地址,直接ipconfig /all就行了。另外还需要改用户名、密码、数据库、及sql语句里面的表名,在代码中,对应的列名也需要更改。可根据参考代码对比我的:在这里插入图片描述

这个环节还涉及到SQL server的配置。可参考火龙果研究院博主的《配置SQLServer,允许远程连接》。这里就不赘述了。我的访问结果如下图:
在这里插入图片描述

三、第三类问题

DBUtil.java有了结果,就开始调试安卓app。这里也有一些需要注意的点。一开始我的报错还是如第一张图显示的。这里要注意,调试的时候,电脑、手机都必须连在同一个局域网里,并且最好用真机调试,不然安卓模拟机的IP地址也需要配置。我第一次模拟出来之前就是因为这点卡了很久,网上这方面的内容很少。另外,要将自己电脑的防火墙关了,不然真机无法访问成功。
如果安卓app也可以访问了,那就可以尝试访问别人电脑里的数据库了。访问之前要保证在同一局域网,然后可以先做几个测试。先在dos命令窗口,ping对方的ip地址,查看IP地址是否正确;然后用telnet ip地址 1433(注意中间有两个空格),查看对方1433端口是否打开。1433端口在防火墙作用下默认是关的,所以需要将对方电脑的防火墙给关了。接着,可用自己的数据库管理工具(SMSS)登入界面,先用对方的ip地址、用户名及密码登录,查看该用户的权限。如果这些尝试都成功了,那就可以用真机运行代码了。至此,一般就能访问成功啦!

四、总结

以上就是我摸索出的一些细节。希望这篇文章对你们有用!有需要的话,请在评论区交流。

[1]:《android Studio与数据库SQLserver连接实现登录》(https://blog.csdn.net/na2609613672/article/details/82254051?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161656635316780266295894%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161656635316780266295894&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-1-82254051.pc_search_result_hbase_insert&utm_term=Android%20studio%20%E8%BF%9E%E6%8E%A5SQL%20server)
[2]:《Android开发中Handler被划横线解决办法》(https://blog.csdn.net/weixin_52249641/article/details/112797969)
[3]: 《Handler基本使用(一) new Handler》(https://blog.csdn.net/u011791526/article/details/53609599)

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要让Android Studio访问SQL Server数据库,需要进行以下步骤: 1. 下载并安装Microsoft JDBC驱动程序:在Microsoft官方网站上下载适用于SQL Server的JDBC驱动程序,然后将其添加到Android Studio项目中。 2. 在Android Studio中创建数据库连接:在项目的build.gradle文件中添加相应依赖,然后在代码中使用JDBC驱动程序连接到SQL Server数据库。具体的连接代码可参考以下示例: ```java String connectionUrl = "jdbc:sqlserver://server_name:port;databaseName=database_name;user=user_name;password=password"; Connection conn = DriverManager.getConnection(connectionUrl); ``` 确保替换`server_name`、`port`、`database_name`、`user_name`和`password`为实际的数据库服务器名、端口号、数据库名、用户名和密码。 3. 编写SQL查询代码:使用SQL语句在Android应用程序中执行数据库操作,例如查询、插入、更新或删除数据。 以下是一个简单的示例,显示如何执行查询,并将结果存储在Cursor对象中: ```java Statement stmt = conn.createStatement(); String query = "SELECT * FROM table_name"; ResultSet rs = stmt.executeQuery(query); while (rs.next()) { // 处理查询结果 String column1 = rs.getString("column1"); // 其他列的处理代码... } ``` 确保替换`table_name`为实际的表名,并根据需要处理查询结果的每一列。 4. 关闭数据库连接:在完成数据库操作后,确保关闭数据库连接以释放资源。 ```java conn.close(); ``` 通过按照上述步骤进行操作,您就可以在Android Studio访问和操作SQL Server数据库了。记得在连接数据库时提供正确的数据库信息和凭据,并以适当的方式处理查询结果和异常情况。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LivingStone31

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值