Android 的SQlite数据库比较简单,以下通过一个例子展示
MinaActivity代码
package com.example.sqlite;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.util.Date;
import java.util.List;
public class MainActivity extends AppCompatActivity {
String []name2={"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""};
String []time2={"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""};
String text="",textname, time;
int num=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Date time1=new Date();//获取当前时间
time=String.format("%tc",time1);
find();//查找记录
Button button=findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {//添加按钮
@Override
public void onClick(View view) {
EditText textName=findViewById(R.id.textName);
textname=textName.getText().toString();
// Toast.makeText(MainActivity.this,"message"+textname, Toast.LENGTH_SHORT).show();
insert(textname,time);//添加记录
}
});
Button button2=findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {//删除按钮
@Override
public void onClick(View view) {
EditText textName=findViewById(R.id.textName);
textname=textName.getText().toString();
delete( textname);//删除
}
});
Button button3=findViewById(R.id.button4);
button3.setOnClickListener(new View.OnClickListener() {//要更改的姓名按钮
@Override
public void onClick(View view) {
EditText textName2=findViewById(R.id.textName2);
textname=textName2.getText().toString();
EditText textName3=findViewById(R.id.textName3);
String textname2=textName3.getText().toString();
update( textname,textname2);//更新内容
}
});
}
public static class MyHelper extends SQLiteOpenHelper {
public MyHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
//创建数据库和数据表
sqLiteDatabase.execSQL("CREATE TABLE information(_id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20),time1 VARCHAR(30))");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}
public void insert(String name,String time1){//添加内容
MyHelper m=new MyHelper(MainActivity.this,"test.db",null,1);
SQLiteDatabase db = m.getWritableDatabase();//获取可读写SQLiteDatabse对象
ContentValues values=new ContentValues();
values.put("name",name);
values.put("time1",time1);
long id=db.insert("information",null,values);
db.close();
find();//刷新内容
}
public void delete(String name){//删除记录
MyHelper helper=new MyHelper(MainActivity.this,"test.db",null,1);
SQLiteDatabase db=helper.getWritableDatabase();
int number=db.delete("information","name=?",new String[]{name});
db.close();
find();
}
public void find(){//查找记录
// Toast.makeText(RecordActivity.this, app.account+"message", Toast.LENGTH_SHORT).show();
MyHelper helper=new MyHelper(MainActivity.this,"test.db",null,1);
SQLiteDatabase db=helper.getReadableDatabase();
Cursor cursor=db.query("information",null,null,null,null,null,null);
if(cursor.getCount()!=0) {
while (cursor.moveToNext()) {
String _id = cursor.getString(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String time1 = cursor.getString(cursor.getColumnIndex("time1"));
name2[num] = name;
time2[num] = time1;
num++;
// Toast.makeText(RecordActivity.this, app.account+"message"+message[0], Toast.LENGTH_SHORT).show();
}
}
for(int i=0;i<num;i++){
text+=name2[i]+" "+time2[i]+" ";
name2[i]="";
time2[i]="";
}
num=0;
TextView textView=findViewById(R.id.textView);
textView.setText("");
textView.setText(text);
text ="";
cursor.close();
}
public void update(String name1,String name2){//更新记录
MyHelper helper=new MyHelper(MainActivity.this,"test.db",null,1);
SQLiteDatabase db=helper.getWritableDatabase();
ContentValues values=new ContentValues();
values.put("name",name2);
int number=db.update("information",values,"name=?",new String[]{name1});
db.close();
find();//刷新内容
}
}
activity_main代码
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<EditText
android:id="@+id/textName"
android:layout_width="208dp"
android:layout_height="47dp"
android:inputType="text"
android:hint="Name"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.078"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.04" />
<EditText
android:id="@+id/textName3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text"
android:hint="Name"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.069"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.24" />
<EditText
android:id="@+id/textName2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="text"
android:hint="Name"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.079"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.145"
tools:ignore="MissingConstraints" />
<TextView
android:id="@+id/textView"
android:layout_width="376dp"
android:layout_height="407dp"
android:text="TextView"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.4"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.79" />
<Button
android:id="@+id/button"
android:layout_width="68dp"
android:layout_height="41dp"
android:text="添加"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.682"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.039"
tools:ignore="MissingConstraints" />
<Button
android:id="@+id/button2"
android:layout_width="74dp"
android:layout_height="42dp"
android:text="删除"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.943"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.039" />
<Button
android:id="@+id/button3"
android:layout_width="152dp"
android:layout_height="47dp"
android:text="要更改的姓名"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.938"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.144" />
<Button
android:id="@+id/button4"
android:layout_width="70dp"
android:layout_height="43dp"
android:text="更改"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.686"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.254" />
</androidx.constraintlayout.widget.ConstraintLayout>