项目包中有Constants/Dao/DatabseHelper三个类和一个MainActivity
Constants类中定义一些常量如数据库名 版本号 表名等。
Constants类
public class Constants {
public static final String DATABASE_NAME = "sakura.db";
public static final int VERSION_CODE = 1;
public static final String TABLE_NAME = "table1";
}
Dao层编写操作数据库的方法
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
//用于数据库的增删改查
public class Dao {
private static final String TAG ="Dao" ;
private final DatabaseHelper mHelper;
public Dao(Context context){
mHelper = new DatabaseHelper(context);
}
public void insert(String a,String b, String c, String d, String e){
Log.d(TAG, "insert: ");
SQLiteDatabase db = mHelper.getWritableDatabase();
String sql = "insert into "+Constants.TABLE_NAME+"(name,date,time,address,tiwen)values(?,?,?,?,?)";
db.execSQL(sql,new Object[]{a,b,c,d,e});
db.close();
}
public void delete(){
SQLiteDatabase db = mHelper.getWritableDatabase();
String sql = " delete from " + Constants.TABLE_NAME + " where age = 60 ";
db.execSQL(sql);
db.close();
}
public void update(){
SQLiteDatabase db = mHelper.getWritableDatabase();
String sql = " update " + Constants.TABLE_NAME + " set salary = 2";
db.execSQL(sql);
db.close();
}
public void query(){
SQLiteDatabase db = mHelper.getWritableDatabase();
String sql = " select *from " + Constants.TABLE_NAME ;
Cursor cursor = db.rawQuery(sql,null);
while(cursor.moveToNext()){
int index = cursor.getColumnIndex("name");
String name = cursor.getString(index);
Log.d(TAG, "name == "+name);
}
cursor.close();
db.close();
}
}
DatabaseHelper类编写数据库的创建和升级操作,DatabaseHelp类继承自SQLiteOpenHelper类,当Constants.version_code = 1时在活动中创建DatabaseHelper实例,通过对象的getWriteDatabase方法创建数据库
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import android.widget.Switch;
import androidx.annotation.Nullable;
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String TAG ="DatabaseHelper" ;
private DatabaseHelper mHelper;
// context 上下文
// name 数据库名称
// factory 游标工厂
// version 版本号
public DatabaseHelper(@Nullable Context context) {
super(context, Constants.DATABASE_NAME, null, Constants.VERSION_CODE);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.d(TAG, "创建数据库。。。。。");
String sql = "create table "+Constants.TABLE_NAME+"(name varchar,date varchar,time varchar,address varchar,tiwen varchar)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.d(TAG, "升级数据库 。。。。。");
String sql;
switch (oldVersion){
case 1:
sql = " alter table " + Constants.TABLE_NAME + " add address varchar";
db.execSQL(sql);
break;
case 2:
sql = " alter table " + Constants.TABLE_NAME + " add tiwen varchar";
db.execSQL(sql);
break;
case 3:
break;
}
}
}
MainActivity中插入操作
new Thread(new Runnable() {
@Override
public void run() {
String str1;
str1 = name.getText().toString();
String str2;
str2 = date.getText().toString();
String str3;
str3 = time.getText().toString();
String str4;
str4 = space.getText().toString();
String str5;
str5 = wen.getText().toString();
Dao dao = new Dao(Main2Activity.this);
dao.insert(str1,str2,str3,str4,str5);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~