近期需要完成一个Android项目,那先从与数据库交互最简单的登陆注册开始吧,现记录过程如下:
此篇文章的小demo主要涉及数据库的连接,以及相应信息的查找与插入。
我已将源码上传至GitHub:
https://github.com/changyan-maker/LoginApp
首先展示一下完成效果。
数据库设计:
数据库内容:
登录结果展示:
此处默认您已经安装好Android studio 与MySQL软件。
首先需要创建一个空项目,关于空的项目如何创建,请参考我本篇文章:
https://blog.csdn.net/changyana/article/details/122948513
接下来需要连接MySQL,首先需要开启网络权限。需要添加一句话,具体位置如图:(将项目切换成Android模式比较好找)
之后是导入Mysql-connection的jar包
关于这个jar包需要我们去官网下载:https://downloads.mysql.com/archives/c-j/
关于版本的选择个人建议选择老一点的,比较稳定。选择ZIP格式进行下载。
下载完成后在里边找到mysql-connector-java-5.1.47-bin.jar并复制到粘贴板。
然后将Android studio的项目页面切换到Project模式,找到如下文件的位置进行粘贴。
粘贴完成后需要把刚才导入的jar包右击Add as Library
然后切换回Android视图,操作如下,新建一个package
然后粘贴代码如下:
本篇文章从图片可以看到我的项目名称为HelloWorld,这个项目只是我用来做测试的。但是代码是我完善后放在另一个项目为party中的,所有的位置都是一样的,只是项目名称不一样,这个不用担心。你只需要把我的代码里的包名改成你项目的名称就好了。
注意数据库的连接:要连接的数据库,还有用户名和密码都要和自己的Mysql对应。
package com.example.party.utils;
import java.sql.Connection;
import java.sql.DriverManager;
/**
* function: 数据库工具类,连接数据库用
*/
public class JDBCUtils {
private static final String TAG = "mysql-party-JDBCUtils";
private static String driver = "com.mysql.jdbc.Driver";// MySql驱动
private static String dbName = "party";// 数据库名称
private static String user = "root";// 用户名
private static String password = "";// 密码
public static Connection getConn(){
Connection connection = null;
try{
Class.forName(driver);// 动态加载类
String ip = "10.0.2.2";// 写成本机地址,不能写成localhost,同时手机和电脑连接的网络必须是同一个
// 尝试建立到给定数据库URL的连接
connection = DriverManager.getConnection("jdbc:mysql://" + ip + ":3306/" + dbName,
user, password);
}catch (Exception e){
e.printStackTrace();
}
return connection;
}
}
接着创建entity和User
位置如图,创建方法与上述创建JDBCUtils一样
代码如下:
package com.example.party.entity;
public class User {
private int id;
private String userAccount;
private String userPassword;
private String userName;
private int userType;
private int userState;
private int userDel;
public User() {
}
public User(int id, String userAccount, String userPassword, String userName, int userType, int userState, int userDel) {
this.id = id;
this.userAccount = userAccount;
this.userPassword = userPassword;
this.userName = userNa