irpas技术客

[Android Studio] 连接MySQL数据库_我好想敲代码_android studio 连接数据库

irpas 6930

1、使用环境 Andorid StudioMySql8JDBC依赖mysql-connector-java-5.1.49.jar

项目的构造截图

?

2、简单安卓页面编写

由于我们连接数据库,需要对数据库进行增删改查等操作,所以需要编写一个简单的页面

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="安卓访问MySql数据库" android:textSize="20sp" android:textColor="#9C27B0" android:textStyle="bold" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/but_query_count" android:text="查询用户数量" android:textSize="20sp" android:textColor="#CDC3CF" android:textStyle="bold"/> <TextView android:id="@+id/tv_user_count" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="用户数量为:" android:textSize="20sp" android:textColor="#9C27B0" android:textStyle="bold" /> </LinearLayout> 3、编写一个连接数据库的类

我们需要编写一个连接数据库的类,可以通过Url、Driver、User、Password进行连接

package com.example.chi; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Connection; import java.sql.Statement; public class DBUtils { private static Connection conn=null; private static final String TAG = "DBUtils"; public static int getConnection(){ String url="jdbc:mysql://192.168.137.43:3306/zxcfruiter?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8"; /*电脑的IP地址*/ /*数据库名字*/ String user="root1";/*数据库用户名*/ String password="123456789";/*进入数据库的密码*/ int count = 0; try{ Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(url,user,password); String sql = "select count(*) as sl from user"; Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); while (rs.next()){ count = rs.getInt("sl"); } }catch (Exception e){ e.printStackTrace(); } return count; } } 4、编写主程序 package com.example.chi; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private Button btu_query_count; private TextView tv_user_count; private Handler handler = new Handler(){ @Override public void handleMessage(@NonNull Message msg){ if(msg.what == 0){ int count = (Integer)msg.obj; tv_user_count.setText("用户数据库中的用户数量为:"+count); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); DBUtils.getConnection(); initView(); } private void initView(){ btu_query_count = findViewById(R.id.but_query_count); tv_user_count = findViewById(R.id.tv_user_count); btu_query_count.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.but_query_count: //查询数量。执行查询 doQueryCount(); break; } } //执行查询数量的方法 private void doQueryCount(){ new Thread(new Runnable() { @Override public void run() { int count = DBUtils.getConnection(); Message msg = Message.obtain(); msg.what = 0; msg.obj = count; //向主线程发送数据 handler.sendMessage(msg); } }).start(); } }

运行环境,可以直接进行查询

查询结果演示

?在这里我们没有明确的抽取出某个类为连接数据库的类,某个类是编写SQL语句的类,如果有需要,后面可以通过这个项目进行修改,抽取即可。

如果报错,有可能是JAR包的版本与MySQL数据库的版本不符合引起的

注意

要注意数据库的密码与账号是正确要注意数据库账号的权限是否有权限要注意IP地址的设置,因为我们使用手机端运行程序,属于远程访问,所以不能使用127.0.0.1或localhost,需要使用具体的IP地址。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Android #Studio #连接数据库 #详细描述了Android