随笔 - 148,  文章 - 0,  评论 - 5,  阅读 - 10786

项目包中有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);


posted on   sakura_xxg  阅读(383)  评论(0编辑  收藏  举报
编辑推荐:
· 从 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的设计差异
· 三行代码完成国际化适配,妙~啊~
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示