構成を使用します。
Android Studio Arctic Fox + Lollipop エミュレーター+ Navicat15 + mysql5.7.27 + mysql-connector-java-5.1.38.jar
mysqlのダウンロードアドレス
MySQL :: MySQL Community Server のダウンロード (アーカイブ バージョン)
選ぶ:
Windows (x86、64 ビット)、ZIP アーカイブ |
1. ダウンロード後、解凍してお好きなファイルに入れ、環境設定のPATHパスにbinパッケージを追加してください。
2. 管理者モードで cmd を開き、bin パッケージが配置されているディレクトリをインポートして、コマンド mysqld -install を使用します。(データベースのダウンロード)
3. コマンド mysqld -initialize を使用します。(データベースの初期化)
4. bin の上位フォルダーに戻り、データ フォルダーを含むいくつかのフォルダーを見つけて、クリックして入力し、err で終わるファイルを見つけて、メモ帳で 1 つずつ開き、見つける一時的なパスワードが生成されますroot@localhost:、その後に mysql の初期パスワード
5. 管理者は cmd を開き、net start mysql と入力し、データベースを起動して、mysql -uroot -p password password new password と入力します。
6. 検証のために mysql -uroot -p の新しいパスワードを入力します. 検証が成功した場合, mysql 構成は完了です (リモート構成の別のステップがあり, Navicat で構成する必要があります)
Navicat ダウンロードアドレス
https://pan.baidu.com/s/1Xn_ddT8v3RgAihROPFcq_A?pwd=phu5
ダウンロード後、プロンプトに従って構成します。ネットワークを切断することを忘れないでください。
設定後
1. connection-new connection-mysql をクリックし、任意の接続名を選択し、パスワードはデータベースのパスワードです. 入力が完了したら、左側の接続をダブルクリックします. 緑色に変わったら、接続は成功です.
2. 上記の「ユーザー」をクリックし、root@localhost をダブルクリックして、ホストを localhost から % に変更します。(1 台のマシンを使用する場合、この手順は省略できます)。
3. cmd を開き、ipconfig を入力し、独自の IPv4 アドレスを見つけ、Navicat で [接続] - [新しい接続] - [mysql] をクリックし、任意の接続名を選択します。パスワードはデータベースのパスワードであり、ホストは独自の IPv4 アドレスに変更されます。
mysql-connector-java-5.1.38.jarをダウンロードします
https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.38
[ファイル] 列を見つけて、jar をダウンロードします。
Android Studio を構成する
1. プロジェクトを開き、jar パッケージをインポートし、ダウンロードした jar パッケージを project/app/libs に配置し、右クリックして [ライブラリとして追加] をクリックします。
2. 環境を構成し、AndroidManifest.xml に追加します。
<uses-permission android:name="android.permission.INTERNET" />
3. クラスの作成 作成するクラスは、JDBCUtils、User、および UserDao の 3 つです。JDBCUtils はデータベースへの接続に使用され、User は情報ストレージ クラス、UserDao はデータベースとフロント エンド間の対話クラスです。
クラスを書く
JDBCUtils クラス:
package utils;
import android.util.Log;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class JDBCUtils {
private static final String TAG = "mysql11111";
static {
try {
Class.forName("com.mysql.jdbc.Driver");
Log.v(TAG, "加载JDBC驱动成功");
} catch (ClassNotFoundException e) {
Log.e(TAG, "加载JDBC驱动失败");
e.printStackTrace();
}
}
public static Connection getConn() {
Connection conn = null;
try {
conn= DriverManager.getConnection("jdbc:mysql://10.0.2.2:3306/lls?useUnicode=true&characterEncoding=utf-8&useSSL=false","root","123456");
Log.d(TAG, "数据库连接成功");
}catch (Exception exception){
Log.d(TAG, "数据库连接失败");
exception.printStackTrace();
}
return conn;
}
public static void close(Connection conn){
try {
conn.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
後で問題が発生した場合は、以下の Logcat をクリックし、検索ボックスをクリックして、設定した TAG (ここでは mysql111111 に設定) を入力して、ドライバーが正常に動作し、接続が成功しているかどうかを確認できます。
上記の静的は駆動用です。getConn 関数は接続を取得するためのもので、接続に失敗した場合、返される conn は空です。
getConnection 関数の 10.0.2.2:3306/ はデータベース名です. ここでは、Navicat で独自の接続を開き、右クリックして接続し、データベースを作成する必要があります. 次の 2 つの変数は、ユーザー名とパスワードです。
close 関数は、データベースを閉じます。
ユーザークラス:
package entity;
public class User {
private int id;
private String name;
private int age;
private String password;
private String phone_number;
private String address;
public User(){
}
public User(int id,String name,int age,String password,String phone_number,String address){
this.id=id;
this.name=name;
this.age=age;
this.password=password;
this.phone_number=phone_number;
this.address=address;
}
public int getId(){
return id;
}
public void setId(int id){
this.id=id;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
public String getPassword(){
return password;
}
public void setPassword(String password){
this.password=password;
}
public String getPhone_number(){
return phone_number;
}
public void setPhone_number(String phone_number){
this.phone_number=phone_number;
}
public String getAddress(){
return address;
}
public void setAddress(String address){
this.address=address;
}
}
ユーザー情報を格納するクラスであることは明らかで、言うことはありません。
ユーザーダオ:
package dao;
import entity.User;
import utils.JDBCUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UserDao {
public boolean login(String phone_number,String password){
String sql = "select * from users where phone_number = ? and password = ?";
Connection con = JDBCUtils.getConn();
try {
PreparedStatement pst=con.prepareStatement(sql);
pst.setString(1,phone_number);
pst.setString(2,password);
if(pst.executeQuery().next()){
return true;
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
JDBCUtils.close(con);
}
return false;
}
public User findUser(String name){
String sql = "select * from users where name = ?";
Connection con = JDBCUtils.getConn();
User user = null;
try {
PreparedStatement pst=con.prepareStatement(sql);
pst.setString(1,name);
ResultSet rs = pst.executeQuery();
while (rs.next()){
int id = rs.getInt(0);
String namedb = rs.getString(1);
int age = rs.getInt(2);
String passworddb = rs.getString(3);
String phone_number = rs.getString(4);
String address = rs.getString(5);
user = new User(id,namedb,age,passworddb,phone_number,address);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
JDBCUtils.close(con);
}
return user;
}
public User findPhone_number(String phone_number){
String sql = "select * from users where phone_number = ?";
Connection con = JDBCUtils.getConn();
User user = null;
try {
PreparedStatement pst=con.prepareStatement(sql);
pst.setString(1,phone_number);
ResultSet rs = pst.executeQuery();
while (rs.next()){
int id = rs.getInt(0);
String namedb = rs.getString(1);
int age = rs.getInt(2);
String passworddb = rs.getString(3);
String phone_numberdb = rs.getString(4);
String address = rs.getString(5);
user = new User(id,namedb,age,passworddb,phone_numberdb,address);
}
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
JDBCUtils.close(con);
}
return user;
}
}
設計された関数がlogin、findUserなどのページ構築で使用される最も基本的な関数であっても、ここでは主にsqlステートメントを使用して、少し文法を学ぶことができます. ページを構築するプロセスでは、このクラスでこれらの関数を呼び出すだけで済みます。