当前位置: 首页 > news >正文

Android——连接MySQL(Java版)

Android——连接MySQL(Java版)

目录:

  • Android——连接MySQL(Java版)
    • 一、JDBC
      • 1、什么是JDBC
      • 2、载入JDBC
      • 3、创建JDBC的工具类
    • 二、使用数据库

一、JDBC

1、什么是JDBC

JDBC全称Java Database Connectivity,译为Java语言连接数据库,是sun公司制定的一个接口。不同的数据库都有对应JDBC的jar包用于驱动数据库。

2、载入JDBC

在Android开发中,是以Gradle创建项目,添加JDBC关于MySQL的接口,在项目文件(app目录)下找到build.gradle文件,在dependencies添加语句

implementation 'mysql:mysql-connector-java:5.1.25'

冒号后为MySQL客户端的版本,添加后环境会自动安装。

3、创建JDBC的工具类

在项目文件中新建DBHelper类,添加Driver和数据库密码等信息,然后通过JDBC接口发送至数据库。

public class DBHelper {private static String diver = "com.mysql.jdbc.Driver";//加入utf-8是为了后面往表中输入中文,表中不会出现乱码的情况private static String url = "jdbc:mysql://地址:端口/用户名?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=FALSE&autoReconnect=true&failOverReadOnly=false";private static String user = "";//用户名private static String password = "";//密码public static Connection getConn() {Connection conn = null;try {Class.forName(diver);conn = (Connection) DriverManager.getConnection(url, user, password);//获取连接} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}return conn;}
}

根据MySQL不同的版本,MySQL8.0中Driver的应该为com.mysql.cj.jdbc.Driver

二、使用数据库

在项目中实例化工具类创建连接

Connection conn = null;
conn=(Connection)DBHelper.getConn();

实例化Statement类用于将命令发送到数据库中

Statement statement=null;
statement=conn.createStatement();

创建SQL语句

String SQL="select * from 表名 where 变量名='"+username+"';";

最后实例化ResultSet类用于接受MySQL返回的信息

 ResultSet resultSet=statement.executeQuery(SQL);

当数据库返回为大量数据时使用while循环读取

 while (resultSet.next()){String sql_password=resultSet.getString("password");String user_type=resultSet.getString("type");
}

注意的是在使用statement对象时,要使用try-catch方法,以下是获取输入的账号密码对比数据库内数据的完整代码

public void login(View v){new Thread(new Runnable() {@Overridepublic void run() {EditText editText_username=(EditText) findViewById(R.id.phone_num);EditText editText_password=(EditText)findViewById(R.id.psw);String username=editText_username.getText().toString();String t_password=editText_password.getText().toString();Connection conn = null;conn=(Connection)DBHelper.getConn();Statement statement=null;try {statement=conn.createStatement();String SQL="select * from user where username='"+username+"';";System.out.println(SQL);ResultSet resultSet=statement.executeQuery(SQL);boolean change=false;while (resultSet.next()){String sql_password=resultSet.getString("password");String user_type=resultSet.getString("type");System.out.println(sql_password);if(t_password.equals(sql_password)){m_username=username;m_user_type=user_type;conn.close();statement.close();resultSet.close();finish();if (User_Status==true) {User.instance.finish();}Intent intent=new Intent(context,MainActivity.class);startActivity(intent);}}if(change==false) {Looper.prepare();Toast.makeText(Login.this, "账号或密码错误", Toast.LENGTH_SHORT).show();Looper.loop();editText_username.setText("null");editText_password.setText("null");conn.close();statement.close();resultSet.close();}} catch (SQLException e) {e.printStackTrace();}}}).start();}
http://www.lryc.cn/news/490573.html

相关文章:

  • 「四」体验HarmonyOS端云一体化开发模板——工程目录结构与云侧工程一键部署AGC云端
  • Kotlin:后端开发的新宠
  • SSM全家桶 1.Maven
  • SpringBoot 集成 html2Pdf
  • 利用 Watchtower 自动监听并更新正在运行的 Docker 容器
  • Nodejs开发仿马蜂窝旅游小程序API接口,服务器端开发,商家后台 Vue3+微信小程序+koa+mongodb+node.js
  • 极限失控的大模型使电力系统面临的跨域攻击风险及应对措施
  • mybatis-plus方法无效且字段映射失败错误排查
  • librdns一个开源DNS解析库
  • Unity3D 逻辑服的Entity, ComponentData与System划分详解
  • 跟《经济学人》学英文:2024年11月23日这期 Why British MPs should vote for assisted dying
  • 基于阿里云服务器部署静态的website
  • 【2024 Optimal Control 16-745】Ubuntu22.04 安装Julia
  • nuget默认包管理格式:packages.config、packageReference区别
  • element-plus教程:Input Number 数字输入框
  • M|横道世之介
  • 借助算力云跑模型
  • LlamaIndex+本地部署InternLM实践
  • 3.12MayBeSomeJava
  • 设计模式之 命令模式
  • 24.11.23 Ajax
  • Sickos1.1 详细靶机思路 实操笔记
  • rk3568-linux-5.10.160移植rtl8822cs wifi 模块纪要
  • QT基础 编码问题 定时器 事件 绘图事件 keyPressEvent QT5.12.3环境 C++实现
  • 学习electron
  • 《C++智能合约与区块链底层交互全解析:构建坚实的去中心化应用桥梁》
  • MySQL:事务
  • Linux——进程间通信之管道
  • java-排序算法汇总
  • Vscode进行Java开发环境搭建