热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AndroidStudioSQLite数据库增删改查简单(代码参考)

一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat

一个建表
一个执行crud操作

建表代码

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;public class DatabaseHelper extends SQLiteOpenHelper {public DatabaseHelper(Context context){super(context,"Test.db",null,1);}//第一个参数是上下文,第二个参数是数据库名称,//第三个参数是CursorFactory对象,一般设置为null,第四个参数是数据库的版本public void onCreate(SQLiteDatabase db) {db.execSQL("CREATE TABLE information(_id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR(20),age INTEGER)");}//创建表 表名information 表结构 自增id,字符串姓名,int年龄public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {Log.d("myDeBug","数据库版本已更新");}//数据库版本发生变化时调用
}

执行crud代码

import androidx.appcompat.app.AppCompatActivity;import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;import java.util.ArrayList;
import java.util.List;public class DictActivity extends AppCompatActivity {private Button insertButton,updateButton,searchButton,deleteButton;private EditText name,age;private TextView show,showAge;final DatabaseHelper dbHelper=new DatabaseHelper(DictActivity.this);@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_dict);insertButton=findViewById(R.id.btn_insert);updateButton=findViewById(R.id.btn_update);searchButton=findViewById(R.id.btn_search);deleteButton=findViewById(R.id.btn_delete);name=findViewById(R.id.name);age=findViewById(R.id.age);show=findViewById(R.id.tv_show);showAge=findViewById(R.id.tv_showAge);SQLiteDatabase db=dbHelper.getReadableDatabase();myShow();insertButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {SQLiteDatabase db=dbHelper.getWritableDatabase();ContentValues values=new ContentValues();values.put("name",name.getText().toString());values.put("age",age.getText().toString());long id =db.insert("information",null,values);Log.d("myDeBug","insert");myShow();db.close();name.setText(null);age.setText(null);}});updateButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {SQLiteDatabase db=dbHelper.getWritableDatabase();ContentValues values=new ContentValues();values.put("age",age.getText().toString());db.update("information",values,"name=?",new String[]{name.getText().toString()});myShow();db.close();Log.d("myDebug","update");name.setText(null);age.setText(null);}});searchButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {SQLiteDatabase db=dbHelper.getWritableDatabase();String name1=name.getText().toString();show.setText(null);if(name1.equals("")){
// show.setText("姓名");
// showAge.setText("年龄");
// Cursor cursor = db.rawQuery("select * from information",null);
//
// while (cursor.moveToNext()) {
// String newName = cursor.getString(cursor.getColumnIndex("name"));
// int newAge = cursor.getInt(cursor.getColumnIndex("age"));
// show.setText(show.getText() + "\n" + newName);
// showAge.setText(showAge.getText()+"\n" + newAge);
// }myShow();db.close();}else {show.setText("姓名");showAge.setText("年龄");Cursor cursor = db.rawQuery("select * from information where name = ? ", new String[]{name1});while (cursor.moveToNext()) {String newName = cursor.getString(cursor.getColumnIndex("name"));int newAge = cursor.getInt(cursor.getColumnIndex("age"));
// show.setText(show.getText() + "\n" + newName + "\t" + newAge);show.setText(show.getText() + "\n" + newName);showAge.setText(showAge.getText()+"\n" + newAge);}cursor.close();db.close();name.setText(null);age.setText(null);}}});deleteButton.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {SQLiteDatabase db=dbHelper.getWritableDatabase();db.delete("information","name=?",new String[]{name.getText().toString()});myShow();db.close();Log.d("myDeBug","DeleteSuccess");name.setText(null);age.setText(null);}});}public void myShow(){SQLiteDatabase db=dbHelper.getReadableDatabase();show.setText("姓名");showAge.setText("年龄");Cursor cursor = db.rawQuery("select * from information",null);while (cursor.moveToNext()) {String newName = cursor.getString(cursor.getColumnIndex("name"));int newAge = cursor.getInt(cursor.getColumnIndex("age"));show.setText(show.getText() + "\n" + newName);showAge.setText(showAge.getText()+"\n" + newAge);}cursor.close();}

界面布局

<?xml version&#61;"1.0" encoding&#61;"utf-8"?>
<LinearLayout xmlns:android&#61;"http://schemas.android.com/apk/res/android"android:layout_width&#61;"match_parent"android:layout_height&#61;"match_parent"android:orientation&#61;"vertical"><LinearLayoutandroid:orientation&#61;"horizontal"android:layout_width&#61;"match_parent"android:layout_height&#61;"wrap_content"><TextViewandroid:layout_width&#61;"wrap_content"android:layout_height&#61;"wrap_content"android:text&#61;"姓名"android:textSize&#61;"30sp"/><EditTextandroid:layout_width&#61;"match_parent"android:layout_height&#61;"wrap_content"android:hint&#61;"请输入姓名"android:textSize&#61;"20sp"android:id&#61;"&#64;&#43;id/name"/></LinearLayout><LinearLayoutandroid:layout_width&#61;"match_parent"android:layout_height&#61;"wrap_content"><TextViewandroid:layout_width&#61;"wrap_content"android:layout_height&#61;"wrap_content"android:text&#61;"年龄"android:textSize&#61;"30sp"/><EditTextandroid:layout_width&#61;"match_parent"android:layout_height&#61;"wrap_content"android:hint&#61;"请输入年龄"android:textSize&#61;"20sp"android:id&#61;"&#64;&#43;id/age"/></LinearLayout><LinearLayoutandroid:layout_width&#61;"match_parent"android:layout_height&#61;"wrap_content"android:orientation&#61;"horizontal"><Buttonandroid:layout_width&#61;"wrap_content"android:layout_height&#61;"wrap_content"android:layout_weight&#61;"1"android:textSize&#61;"20sp"android:text&#61;"插入"android:id&#61;"&#64;&#43;id/btn_insert"android:textAllCaps&#61;"false"/><Buttonandroid:layout_width&#61;"wrap_content"android:layout_height&#61;"wrap_content"android:layout_weight&#61;"1"android:textSize&#61;"20sp"android:text&#61;"更新"android:id&#61;"&#64;&#43;id/btn_update"android:textAllCaps&#61;"false"/><Buttonandroid:layout_width&#61;"wrap_content"android:layout_height&#61;"wrap_content"android:layout_weight&#61;"1"android:textSize&#61;"20sp"android:text&#61;"查询"android:id&#61;"&#64;&#43;id/btn_search"android:textAllCaps&#61;"false"/><Buttonandroid:layout_width&#61;"wrap_content"android:layout_height&#61;"wrap_content"android:layout_weight&#61;"1"android:textSize&#61;"20sp"android:text&#61;"删除"android:id&#61;"&#64;&#43;id/btn_delete"android:textAllCaps&#61;"false"/></LinearLayout><LinearLayoutandroid:layout_width&#61;"match_parent"android:layout_height&#61;"wrap_content"android:orientation&#61;"horizontal"><TextViewandroid:layout_width&#61;"wrap_content"android:layout_height&#61;"wrap_content"android:layout_weight&#61;"1"android:id&#61;"&#64;&#43;id/tv_show"android:textSize&#61;"20sp"android:gravity&#61;"center_horizontal"/><TextViewandroid:layout_width&#61;"wrap_content"android:layout_height&#61;"wrap_content"android:layout_weight&#61;"1"android:id&#61;"&#64;&#43;id/tv_showAge"android:textSize&#61;"20sp"android:gravity&#61;"center_horizontal"/>
</LinearLayout></LinearLayout>


推荐阅读
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • Android 自定义 RecycleView 左滑上下分层示例代码
    为了满足项目需求,需要在多个场景中实现左滑删除功能,并且后续可能在列表项中增加其他功能。虽然网络上有很多左滑删除的示例,但大多数封装不够完善。因此,我们尝试自己封装一个更加灵活和通用的解决方案。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • 深入解析 Android 中 EditText 的 getLayoutParams 方法及其代码应用实例 ... [详细]
  • 掌握Android UI设计:利用ZoomControls实现图片缩放功能
    本文介绍了如何在Android应用中通过使用ZoomControls组件来实现图片的缩放功能。ZoomControls提供了一种简单且直观的方式,让用户可以通过点击放大和缩小按钮来调整图片的显示大小。文章详细讲解了ZoomControls的基本用法、布局设置以及与ImageView的结合使用方法,适合初学者快速掌握Android UI设计中的这一重要功能。 ... [详细]
  • 技术分享:深入解析GestureDetector手势识别机制
    技术分享:深入解析GestureDetector手势识别机制 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 实验九:使用SharedPreferences存储简单数据
    本实验旨在帮助学生理解和掌握使用SharedPreferences存储和读取简单数据的方法,包括程序参数和用户选项。 ... [详细]
  • 【问题】在Android开发中,当为EditText添加TextWatcher并实现onTextChanged方法时,会遇到一个问题:即使只对EditText进行一次修改(例如使用删除键删除一个字符),该方法也会被频繁触发。这不仅影响性能,还可能导致逻辑错误。本文将探讨这一问题的原因,并提供有效的解决方案,包括使用Handler或计时器来限制方法的调用频率,以及通过自定义TextWatcher来优化事件处理,从而提高应用的稳定性和用户体验。 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 本文探讨了利用Java实现WebSocket实时消息推送技术的方法。与传统的轮询、长连接或短连接等方案相比,WebSocket提供了一种更为高效和低延迟的双向通信机制。通过建立持久连接,服务器能够主动向客户端推送数据,从而实现真正的实时消息传递。此外,本文还介绍了WebSocket在实际应用中的优势和应用场景,并提供了详细的实现步骤和技术细节。 ... [详细]
author-avatar
是不是有谁代替我陪在你身旁
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有