首页 > 其他分享 >20240213打卡

20240213打卡

时间:2024-02-15 11:11:39浏览次数:23  
标签:20240213 String int db name 打卡 id SQLiteDatabase

在Android中,可以使用SQLite数据库来创建和管理本地数据库。下面使用Android自带的数据库API创建表,并进行增删改查操作:

1. **创建数据库帮助类**:
首先,创建一个继承自`SQLiteOpenHelper`的类,用于管理数据库的创建和版本控制。

```java
// DbHelper.java

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DbHelper extends SQLiteOpenHelper {

private static final String DATABASE_NAME = "my_database";
private static final int DATABASE_VERSION = 1;

// 构造函数
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

// 创建表
@Override
public void onCreate(SQLiteDatabase db) {
String createTableQuery = "CREATE TABLE my_table ("
+ "id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "name TEXT, "
+ "age INTEGER)";
db.execSQL(createTableQuery);
}

// 更新数据库
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 当数据库版本更新时执行的操作
// 一般情况下是备份数据,删除旧表,创建新表,然后将备份数据重新插入
}
}
```

2. **进行增删改查操作**:
在您的活动或其他Java类中,实例化`DbHelper`类并使用`SQLiteDatabase`执行增删改查操作。

```java
// MainActivity.java

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

private DbHelper dbHelper;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

dbHelper = new DbHelper(this);

// 插入数据
insertData("John", 25);

// 查询数据
readData();

// 更新数据
updateData(1, "Jack");

// 删除数据
deleteData(1);
}

private void insertData(String name, int age) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", name);
values.put("age", age);
long newRowId = db.insert("my_table", null, values);
Log.d("MainActivity", "New row inserted with ID: " + newRowId);
}

private void readData() {
SQLiteDatabase db = dbHelper.getReadableDatabase();
String[] projection = {"id", "name", "age"};
Cursor cursor = db.query("my_table", projection, null, null, null, null, null);
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
Log.d("MainActivity", "ID: " + id + ", Name: " + name + ", Age: " + age);
}
cursor.close();
}

private void updateData(int id, String newName) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", newName);
String selection = "id = ?";
String[] selectionArgs = {String.valueOf(id)};
int count = db.update("my_table", values, selection, selectionArgs);
Log.d("MainActivity", count + " rows updated");
}

private void deleteData(int id) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
String selection = "id = ?";
String[] selectionArgs = {String.valueOf(id)};
int count = db.delete("my_table", selection, selectionArgs);
Log.d("MainActivity", count + " rows deleted");
}
}
```

标签:20240213,String,int,db,name,打卡,id,SQLiteDatabase
From: https://www.cnblogs.com/newzeon/p/18016062

相关文章

  • 20240205打卡
    在AndroidStudio中使用碎片(Fragments)加载界面,并实现滑动视图切换页面:1.**创建项目**:在AndroidStudio中创建一个新项目。2.**添加碎片**:在`res/layout`目录下创建您的碎片布局文件。您可以使用XML定义碎片的布局。例如,创建一个`fragment_one.xml`和`fragment_two.xml`......
  • 2024年重启人生要做的100件事,记录待办清单并打卡完成
    新年伊始,很多人都怀揣着改变自己、追求更美好生活的期望,渴望在2024年做一些有意义的事情,为自己的人生注入新的活力。为了帮助大家更好地实现这些目标,小编整理了一份2024年重启人生要做的100件事待办清单,涵盖了健康美丽、自我提升、享受生活、诗与远方、奖励自己等五个方面。这些......
  • 20240204打卡
    当我发这篇博客时,代表我的项目已经做完了,接下来几天我将会对AndroidStudio项目做一些总结当涉及到AndroidStudio和Kotlin的相关知识时,有很多方面可以讨论。以下是一些基本的概念和代码示例:  1.Kotlin基础 变量和常量varmyVariable:Int=10//可变变量valmyConstant......
  • datawhale-leetcode打卡:038~050题
    两数相加(leetcode002)#Definitionforsingly-linkedlist.#classListNode:#def__init__(self,val=0,next=None):#self.val=val#self.next=nextclassSolution:defaddTwoNumbers(self,l1:Optional[ListNode],l2:Optional[List......
  • 20240126打卡——《构建之法》第5~8章
    第五章团队和流程5.2软件团队的模式主治医师模式、明星模式、社区模式、业余剧团模式、秘密团队、特工团队、交响乐团模式、爵士乐模式、功能团队模式、官僚模式5.3开发流程①写了再改模式②瀑布模型(WaterfallModel)是一个项目开发架构,开发过程是通过设计一系列阶段顺序......
  • 20240125打卡——《构建之法》读书笔记第1~4章
    第一章概论在这一章中,作者为我们介绍了一些关于软件工程的基本知识。①软件=程序+软件工程:正是因为对软件开发活动(构建管理、源代码管理、软件设计、软件测试、项目管理)相关的内容的完成,才能完成把整个程序转化成为一个可用的软件的过程。扩展的推论:软件企业=软件+商业模式......
  • 只需要1天和10元,上线我的第①个工具站 - 50个工具站打卡计划
    2023年用了一整年的时间探索技术变现的方式,学习到了特别多的理论知识。2024年到了爆发的时间了。今年计划上线50款出海工具站计划,我会详细记录开发工具站的全部流程。工具站的核心任务是找到关键字,找对关键词并成功找到适当的域名,那就成功了一半。例如,最近推出的GPTStore,由于有人......
  • datawhale-leetcode打卡:001-012题
    这次这十二个题目属于是极限肝出来的,有两个参考了一下题解,还是很有意思。我会按照我个人的感觉去写这个东西。螺旋矩阵(leetcode054)这个题目比较恶心的就是跑圈的过程怎么描述。首先,顺时针一圈下来是先从左到右,顶到最右边i<m,好再往下,顶到最下边i<n,好现在i--往回排,最后j--走完一......
  • 大二打卡(12.23)
    uml作业:实现视图建模:(2)、绘制顺序图充值消费子系统:  身份识别门禁子系统: 校方卡片授权信息管理子系统:(3)、绘制协作图充值消费子系统: 身份识别门禁子系统: 校方卡片授权信息管理子系统: (4)、绘制活动图充值消费子系统: 身份识别门禁子系统: 校方卡片授权信息......
  • 大二打卡(12.18)
    今天做了什么:在期末考试的那一天,早早地来到了考场,准备迎接这场挑战。考试铃声响起,老师开始逐一发放试卷。深吸一口气,开始认真地审题。说实话,经过这么长时间的练习,已经对这类题目驾轻就熟了。建立表、编写页面、编写Java文件,这些步骤几乎成了肌肉记忆,几乎不需要思考就能完成。考......