赞
踩
准备工作:添加引用
在AndroidManifest.xml文件内增加
<uses-permission android:name="android.permission.INTERNET" />
一、建立连接
- //连接数据库,成功返回真,失败返回假
- private boolean conSQL() throws ClassNotFoundException {
- Class.forName("com.mysql.jdbc.Driver");
- try {
- String url = "jdbc:mysql://数据库连接外部地址:3306/数据库名称?autoReconnect=true&useSSL=false";
- String name = "用户名";
- String password = "密码";
- con = DriverManager.getConnection(url, name, password);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- if (con != null) {
- return true;
- } else {
- tv_ts1.post(() -> tv_ts1.setText("数据库未连接"));
- return false;
- }
- }
二、查询数据
- //查询并返回结果,查到结果的返回真,未查到结果返回假,结果赋给ResultSet变量rs
- private boolean rtnSQL(String sql) throws SQLException, ClassNotFoundException {
- if (conSQL()) {
- PreparedStatement ps = con.prepareStatement(sql);
- ps.execute();
- rs = ps.getResultSet();
- rs.last(); //移到最后一行
- int rowCount = rs.getRow(); //得到当前行号,也就是记录数
- if (rowCount > 0) {
- rs.beforeFirst(); //如果还要用结果集,就把指针再移到初始化的位置
- return true;
- } else {
- tv_ts1.post(() -> tv_ts1.setText("未查询到结果"));
- return false;
- }
- }
- return false;
- }
三、显示查询结果
- //处理查询结果
- @SuppressLint("SetTextI18n")
- private void rs_user() throws SQLException {
- rs.next();
- String a = rs.getString(1);
- String b = rs.getString(2);
- String c = rs.getString(3);
- String d = rs.getString(4);
- String f = rs.getString(6);
- String g = rs.getString(7);
- String h = rs.getString(8);
- tv_ts1.post(() -> tv_ts1.setText(a + "\n" + b + "\n" + c + "\n" + d + "\n" + f + "\n" + g + "\n" + h));
- }
综合:以下为全部代码
- package com.example.mysql;
-
- import androidx.appcompat.app.AppCompatActivity;
-
- import android.annotation.SuppressLint;
- import android.os.Bundle;
- import android.provider.Settings;
- import android.util.Log;
- import android.widget.Button;
- import android.widget.TextView;
-
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.SQLException;
-
- public class MainActivity extends AppCompatActivity {
- TextView tv_ts1;
- Button btn_lj;
- Button btn_cx;
- Connection con = null;
- ResultSet rs = null;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- tv_ts1 = (TextView) findViewById(R.id.tv_ts1);
- btn_lj = (Button) findViewById(R.id.btn_lj);
- btn_cx = (Button) findViewById(R.id.btn_cx);
- btn_lj.setOnClickListener((v -> {
- new Thread(() -> {
- try {
- @SuppressLint("HardwareIds") String androidId = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);//获取机器码
- String sql="call DC_SVIP_App_InsertUser('19979162865','" + androidId + "');";
- Log.v("SQL",sql);
- boolean io2 = rtnSQL(sql);//执行SQL,并输出查询结果
- if(io2)
- rs_user();//处理查询结果
- } catch (SQLException | ClassNotFoundException e) {
- Log.v("SQL异常",e.getMessage());
- tv_ts1.post(() -> tv_ts1.setText(e.getMessage()));
- }
- }).start();
- }));
- }
-
- //处理查询结果
- @SuppressLint("SetTextI18n")
- private void rs_user() throws SQLException {
- rs.next();
- String a = rs.getString(1);
- String b = rs.getString(2);
- String c = rs.getString(3);
- String d = rs.getString(4);
- String f = rs.getString(6);
- String g = rs.getString(7);
- String h = rs.getString(8);
- tv_ts1.post(() -> tv_ts1.setText(a + "\n" + b + "\n" + c + "\n" + d + "\n" + f + "\n" + g + "\n" + h));
- }
-
- //查询并返回结果
- private boolean rtnSQL(String sql) throws SQLException, ClassNotFoundException {
- if (conSQL()) {
- PreparedStatement ps = con.prepareStatement(sql);
- ps.execute();
- rs = ps.getResultSet();
- rs.last(); //移到最后一行
- int rowCount = rs.getRow(); //得到当前行号,也就是记录数
- if (rowCount > 0) {
- rs.beforeFirst(); //如果还要用结果集,就把指针再移到初始化的位置
- return true;
- } else {
- tv_ts1.post(() -> tv_ts1.setText("未查询到结果"));
- return false;
- }
- }
- return false;
- }
-
- //连接数据库
- private boolean conSQL() throws ClassNotFoundException {
- Class.forName("com.mysql.jdbc.Driver");
- try {
- String url = "***";
- String name = "***";
- String password = "***";
- con = DriverManager.getConnection(url, name, password);
- } catch (SQLException e) {
- e.printStackTrace();
- }
- if (con != null) {
- return true;
- } else {
- tv_ts1.post(() -> tv_ts1.setText("数据库未连接"));
- return false;
- }
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。