From be7a4d2eea0317b8b0621af3607749e6d08a0f39 Mon Sep 17 00:00:00 2001 From: FinalJcsp <869150743@qq.com> Date: Mon, 24 Apr 2023 13:08:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E8=BF=9E=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/myapplication/MainActivity.java | 9 +- .../example/myapplication/MainActivity2.java | 10 +- .../example/myapplication/PeopleActivity.java | 9 +- .../myapplication/PersonSQLiteOpenHelper.java | 34 +++++ .../myapplication/SqliteDbManager.java | 134 ++++++++++++++++++ app/src/main/res/layout/people.xml | 120 ---------------- app/src/main/res/layout/test.xml | 7 +- 7 files changed, 186 insertions(+), 137 deletions(-) create mode 100644 app/src/main/java/com/example/myapplication/PersonSQLiteOpenHelper.java create mode 100644 app/src/main/java/com/example/myapplication/SqliteDbManager.java delete mode 100644 app/src/main/res/layout/people.xml diff --git a/app/src/main/java/com/example/myapplication/MainActivity.java b/app/src/main/java/com/example/myapplication/MainActivity.java index 3ad5f5d..f726c19 100644 --- a/app/src/main/java/com/example/myapplication/MainActivity.java +++ b/app/src/main/java/com/example/myapplication/MainActivity.java @@ -12,6 +12,7 @@ import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { Button loginB, newUser; EditText usernameET, passwordET; + SqliteDbManager instance; private static final String correctName = "admin"; private static final String correctPassword = "rootadmin"; @@ -23,14 +24,13 @@ public class MainActivity extends AppCompatActivity { initView(); loginB.setOnClickListener(v -> { if (submit()) { - System.out.println(usernameET.getText()); Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_LONG).show(); Intent intent = new Intent(); ComponentName componentName = new ComponentName(MainActivity.this, InfoActivity.class); intent.setComponent(componentName); intent.putExtra("username", usernameET.getText()); startActivity(intent); - }else{ + } else { Toast.makeText(MainActivity.this, "账号或密码输入错误", Toast.LENGTH_LONG).show(); } }); @@ -50,10 +50,13 @@ public class MainActivity extends AppCompatActivity { usernameET = findViewById(R.id.username); passwordET = findViewById(R.id.password); newUser = findViewById(R.id.newUser); + instance = SqliteDbManager.getInstance(); } boolean submit() { - return getUsername().equals(correctName) && getPassword().equals(correctPassword); + instance.setSqliteDbOpen(this); + return instance.queryTb("person", getUsername(), getPassword()); +// return getUsername().equals(correctName) && getPassword().equals(correctPassword); } String getUsername() { diff --git a/app/src/main/java/com/example/myapplication/MainActivity2.java b/app/src/main/java/com/example/myapplication/MainActivity2.java index 38d3d6d..6f14e56 100644 --- a/app/src/main/java/com/example/myapplication/MainActivity2.java +++ b/app/src/main/java/com/example/myapplication/MainActivity2.java @@ -43,6 +43,8 @@ public class MainActivity2 extends Activity { private Button btnReg, btnYear, back; private List cityList; + SqliteDbManager instance = SqliteDbManager.getInstance(); + //JSONObject对象,处理一个一个的对象 //JSONObject对象,处理一个一个集合或者数组 //保存带集合的json字符串 @@ -75,6 +77,7 @@ public class MainActivity2 extends Activity { Intent intent = new Intent(MainActivity2.this, MainActivity.class); intent.putExtra("username", edtNewUserName.getText().toString()); intent.putExtra("password", edtPwd1.getText().toString()); + this.register(); startActivity(intent); }); builder.setNegativeButton("否", (dialog, which) -> isYes = false); @@ -103,8 +106,13 @@ public class MainActivity2 extends Activity { }); } + private void register(){ + String username = edtNewUserName.getText().toString(); + String password = edtPwd1.getText().toString(); + instance.insertTb("person", username, password); + } void initView() { - + instance.setSqliteDbOpen(this); edtNewUserName = this.findViewById(R.id.edtNewUserName); edtPwd1 = this.findViewById(R.id.edtPwd); edtPwd2 = this.findViewById(R.id.edtSndPwd); diff --git a/app/src/main/java/com/example/myapplication/PeopleActivity.java b/app/src/main/java/com/example/myapplication/PeopleActivity.java index 97ad560..2874e23 100644 --- a/app/src/main/java/com/example/myapplication/PeopleActivity.java +++ b/app/src/main/java/com/example/myapplication/PeopleActivity.java @@ -1,15 +1,10 @@ package com.example.myapplication; import android.app.Activity; -import android.content.ComponentName; -import android.content.Intent; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; import android.os.Bundle; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; -import android.widget.Toast; public class PeopleActivity extends Activity { private Button ylp, qxs, lsg, tyy, djx; @@ -19,7 +14,7 @@ public class PeopleActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.people); + setContentView(R.layout.test); initView(); ylp.setOnClickListener(v -> { imageView.setImageResource(R.drawable.ylp); @@ -50,6 +45,6 @@ public class PeopleActivity extends Activity { tyy = findViewById(R.id.tyy); djx = findViewById(R.id.djx); textView = findViewById(R.id.peopletext); - imageView = findViewById(R.id.peoplezp); + imageView = findViewById(R.id.peopleImage); } } diff --git a/app/src/main/java/com/example/myapplication/PersonSQLiteOpenHelper.java b/app/src/main/java/com/example/myapplication/PersonSQLiteOpenHelper.java new file mode 100644 index 0000000..ff8a692 --- /dev/null +++ b/app/src/main/java/com/example/myapplication/PersonSQLiteOpenHelper.java @@ -0,0 +1,34 @@ +package com.example.myapplication; + +import android.content.Context; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; + +import java.security.AccessControlContext; + + +public class PersonSQLiteOpenHelper extends SQLiteOpenHelper { + /** + * 构造方法 + * @param context + */ + public PersonSQLiteOpenHelper(Context context) { + super(context,"person",null,1); + } + /** + * 数据库第一次创建完成的回调 + */ + @Override + public void onCreate(SQLiteDatabase db) { +// String sql="create table person (id integer primary key autoincrement,name varchar(10) not null default '')"; + String sql="create table person(id integer primary key autoincrement,username varchar(50),password varchar(50),sex varchar(50),address varchar(50))"; + db.execSQL(sql); + } + + @Override + public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { + // TODO Auto-generated method stub + + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/example/myapplication/SqliteDbManager.java b/app/src/main/java/com/example/myapplication/SqliteDbManager.java new file mode 100644 index 0000000..248379e --- /dev/null +++ b/app/src/main/java/com/example/myapplication/SqliteDbManager.java @@ -0,0 +1,134 @@ +package com.example.myapplication; + +import android.annotation.SuppressLint; +import android.content.ContentValues; +import android.content.Context; +import android.database.Cursor; +import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; +import android.util.Log; + +public class SqliteDbManager +{ + private static SqliteDbManager mInstance = null; + private SQLiteDatabase mDb = null; + private PersonSQLiteOpenHelper mDbHelper = null; + + public static SqliteDbManager getInstance() + { + if (mInstance == null) + { + mInstance = new SqliteDbManager(); + } + return mInstance; + } + + public void setSqliteDbOpen(Context context) + { + mDbHelper = new PersonSQLiteOpenHelper(context.getApplicationContext()); + mDb = mDbHelper.getWritableDatabase(); + } + + public void insertTb(String tbName, String username, String password) + { + openDb(); + //方法一: + ContentValues contentValues = new ContentValues(); + contentValues.put("username",username); + contentValues.put("password",password); +// contentValues.put("sex","男"); + mDb.insert(tbName,null,contentValues); + //方法二: +// mDb.execSQL("insert into "+tbName+" (username,password) values ('李四',20)"); +// mDb.execSQL("insert into "+tbName+" (name,age,sex) values ('王五',22,'女')"); +// mDb.execSQL("insert into "+tbName+" (name,age,sex) values ('哈利',21,'男')"); + closeDb(); + } + + public void deleteTb(String tbName) + { + openDb(); + //方法一: + mDb.delete(tbName,"name=?",new String[]{"zhangsan"}); + //方法二: + mDb.execSQL("delete from "+tbName+" where name = '李四'"); + closeDb(); + } + + public void updateTb(String tbName) + { + openDb(); + //方法一: + ContentValues contentValues = new ContentValues(); + contentValues.put("name","隔壁老王"); + contentValues.put("sex","男"); + mDb.update(tbName,contentValues,"name=?",new String[]{"王五"}); + //方法二: + mDb.execSQL("update "+tbName+" set name = '哈利波特',age = '16' where name = '哈利'"); + closeDb(); + } + + public boolean queryTb(String tbName, String username, String password) + { + openDb(); +// //方法一: +// Cursor cursor = mDb.query(tbName, new String[]{"name","sex","age"}, "name=?", new String[]{"隔壁老王"}, null, null, null); +// //将光标移动到下一行,从而判断该结果集是否还有下一条数据;如果有则返回true,没有则返回false +// if (null != cursor) +// { +// while (cursor.moveToNext()) +// { +// String name = cursor.getString(cursor.getColumnIndex("name")); +// int age = cursor.getInt(cursor.getColumnIndex("age")); +// String sex = cursor.getString(cursor.getColumnIndex("sex")); +// Log.i("????","name = "+name+"; age = "+age+"; sex = "+sex); +// } +// cursor.close(); +// } + //方法二:使用sql语句 + Cursor rawQuery = mDb.rawQuery("select * from " + tbName+" where username=? and password=?", new String[]{username,password}); +// Cursor rawQuery = mDb.rawQuery("select * from " + tbName,null); + if (null != rawQuery) + { + while (rawQuery.moveToNext()) + { + @SuppressLint("Range") String _id = rawQuery.getString(rawQuery.getColumnIndex("id")); + @SuppressLint("Range") String name = rawQuery.getString(rawQuery.getColumnIndex("username")); +// int age = rawQuery.getInt(rawQuery.getColumnIndex("age")); +// String sex = rawQuery.getString(rawQuery.getColumnIndex("sex")); + Log.i("????","_id = "+_id+"; name = "+name); + return true; + } + rawQuery.close(); + } + closeDb(); + return false; + } + + /** + * 创建或打开一个可以读的数据库 + */ + private void openDb() { + if (this.mDbHelper != null) { + try { + mDb = mDbHelper.getWritableDatabase(); + } catch (Exception e) { + mDb = mDbHelper.getReadableDatabase(); + e.printStackTrace(); + } + } + } + + /** + * 关闭数据库 + */ + private void closeDb() { + try { + if (mDb != null) { + mDb.close(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/people.xml b/app/src/main/res/layout/people.xml deleted file mode 100644 index e749bab..0000000 --- a/app/src/main/res/layout/people.xml +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/test.xml b/app/src/main/res/layout/test.xml index e45fed4..a208912 100644 --- a/app/src/main/res/layout/test.xml +++ b/app/src/main/res/layout/test.xml @@ -96,7 +96,7 @@ android:orientation="vertical"> @@ -111,10 +111,5 @@ - - - - -