本人目前在实习阶段,学的是java,但是公司让学Android,做一些小界面。这个案例是初学Android,来测试一下连接mysql数据库。虽然看着简单,但是在实现的路上还是踩了不少的坑,因此简单记录一下。
在网上找了一个类似的小案例,原文是这个,尊重一下作者。
https://blog.csdn.net/qq_37141773/article/details/84255926
一、实现效果
二、实现步骤
1、新建一个工程
这个案例是在模拟器上实现的。
2、开启网络权限!!!
这一步非常重要,在这个地方踩了大坑,希望后面的读者不要踩了。
找到目录结构下的AndroidManifest.xml文件,添加网络权限。
<uses-permission android:name="android.permission.INTERNET"/>
还有一个很重要的坑!!!!
就是一开始你没有给程序添加网络权限,后来发现后给程序添加权限,但是由于程序已经安装了,他的权限是默认一开始的。所以后面你运行程序,就会一直报错,然后你就一直连不上数据库。
java.net.SocketException: socket failed: EPERM (Operation not permitted)
解决的办法就是卸载你模拟器上的程序,重新运行,OK就是这么简单。。我弄了半天,佛了。
完整xml文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.htn.androidstudy">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".login.infoActivity"></activity>
<activity android:name=".login.LoginActivity" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
3、导入jar包
实现直连MySql数据库需要导入mysql-connector-java-5.1.30-binjar包(百度网盘提取码为:ctxa)。(借个楼,要是不能用了就自己去找叭)
将jar下载后,在新建项目的app/src/main 目录下 创建libs文件夹,将jar包复制到该文件夹下,然后右键选择 Add As Library 进行导入即可。
等待gradle同步成功后,打开build.gradle文件依赖内容如下说明导入成功:
implementation files('src/main/libs/mysql-connector-java-5.1.30-bin.jar')
4、登录界面
activity_login.xml文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="15dp"
>
<EditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="50dp"
android:hint="用户名"
android:background="@drawable/bg_username"
android:textColor="#000000"
android:textSize="16sp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:drawablePadding="5dp"
android:drawableLeft="@mipmap/username"