Android SQLiteOpenHelper 的作用及使用

SQLiteOpenHelper使用之英文生词本 界面效果如下: 布局代码如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:l 阅读详情


SQLiteOpenHelper是一个帮助类数据库管理的帮助类,让开发者直接操作这个类实现对数据库各种框架的完善


首先建立一个SQLiteOpenHelper文件,在这个文件里面进行数据框架的操作


下面是一个简单的一个小例子,主要是通过SQliteOpenHelper来完成  


1:首先建一个XML文件给4个按钮,分别表示 对数据库的添删改查,


 <-----------activity_main.xml------------->布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    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="com.yongninggo.helloworld2.MainActivity"
    android:orientation="vertical"
    android:gravity="center_horizontal">

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="新建数据库"/>

    <Button
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="插入数据"/>

    <Button
        android:id="@+id/btn2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="修改数据"/>

    <Button
        android:id="@+id/btn3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="删除数据"/>

</LinearLayout>


<-----------DBopenhelper.Java------>文件,这个文件就是一个SQliteOpenHelper的帮助类

package com.yongninggo.helloworld2;

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

/**
 * SQLiteOpenHelper帮助类,
 */

public class DBopenhelper  extends SQLiteOpenHelper{

    public DBopenhelper(Context context, String name) {
        super(context, SQLValue.DATABASE_NAME, null, SQLValue.DATABASE_VERTION);
    }

    @Override       //创建数据库调用这个类
    public void onCreate(SQLiteDatabase db) {

        //创建数据表
        String sql =("create table if not exists "+SQLValue.DATABASE_TABLE+"" +
                "("+SQLValue._ID+" integer primary key autoincrement," +
                ""+SQLValue.TABLE_NAME+" text not null,"+SQLValue.TABLE_SEX+" text not null," +
                ""+SQLValue.TABLE_AGE+" integer not null)");

        //插入数据
        db.execSQL(sql);
    }

    @Override       //跟新版本调用这个类
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }

}

其中的值全部写入里一个文件夹方便管理,修改


package com.yongninggo.helloworld2;
 <-----------SQLValue.java----------->布局文件
package com.yongninggo.helloworld2;

/**
 *  SQlite 数据值信息
 */

public class SQLValue {
    public static final String DATABASE_NAME ="pass.db";
    public static final int DATABASE_VERTION = 1;

    public static final String DATABASE_TABLE = "pass";

    public static final String _ID ="_id";
    public static final String TABLE_NAME = "name";
    public static final String TABLE_SEX = "sex";
    public static final String TABLE_AGE = "age";
}

<-----------MainActivity.java----------->布局文件 在这里进行对数据库的操作
package com.yongninggo.helloworld2;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

    private Button btn;
    private Button btn1;
    private Button btn2;
    private Button btn3;

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

        btn = (Button) findViewById(R.id.btn);
        btn1 = (Button) findViewById(R.id.btn1);
        btn2 = (Button) findViewById(R.id.btn2);
        btn3 = (Button) findViewById(R.id.btn3);

        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                DBopenhelper helper = new DBopenhelper(MainActivity.this,"pass.db");

                SQLiteDatabase db = helper.getWritableDatabase();

                //返回游标对象的select 查询
                Cursor c = db.rawQuery("select * from pass",null);
                if (c != null){
                    String [] cols = c.getColumnNames();
                    while (c.moveToNext()){
                        for (String colsnames : cols){
                            Log.i("myc",colsnames+":"+c.getString(c.getColumnIndex(colsnames)));
                        }
                    }
                    c.close();
                }
                db.close();
            }
        });

        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                //插入数据信息
                DBopenhelper helper = new DBopenhelper(MainActivity.this,"pass.db");
                SQLiteDatabase db = helper.getWritableDatabase();
                ContentValues values = new ContentValues();
                values.put("name","马延超");
                values.put("sex","男");
                values.put("age",20);
                db.insert("pass",null,values);
                values.clear();
                values.put("name","马超");
                values.put("sex","男");
                values.put("age",0);
                db.insert("pass",null,values);
                values.clear();
                values.put("name","马延");
                values.put("sex","男");
                values.put("age",2);
                db.insert("pass",null,values);
                values.clear();
            }
        });

        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               DBopenhelper helper = new DBopenhelper(MainActivity.this,"pass.db");
               SQLiteDatabase db = helper.getWritableDatabase();

                // 修改数据信息
                ContentValues values = new ContentValues();
                values.put("sex","女");
                db.update("pass",values,"_id> ?",new String[]{"3"});
            }
        });

        btn3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                DBopenhelper helper = new DBopenhelper(MainActivity.this,"pass.db");
                SQLiteDatabase db = helper.getWritableDatabase();

                //删除数据信息
                db.delete("pass","name like ?",new String[]{"%延%"});
                Cursor c = db.query("pass",null,"_id > ?",new String[]{"0"},null,null,"age");
                if (c != null){
                    String[]columes = c.getColumnNames();
                    while (c.moveToNext()){
                        for (String columenames : columes){
                            Log.i("myc",c.getString(c.getColumnIndex(columenames)));
                        }
                    }
                    c.close();
                }
                db.close();
            }
        });

    }
}










车载LIN总线避坑指南:主从节点通信失败的5个常见原因及解决方案 本文深度解析车载LIN总线主从节点通信失败的五大常见原因,涵盖物理层信号异常、调度表冲突、LDF配置错误、节点状态机缺陷及环境干扰。重点剖析了LDF文件配置不一致、波特率不匹配等关键问题,并提供了从示波器波形分析到软件配置检查的完整实战排查路径,帮助工程师高效定位并解决LIN通信故障。 阅读详情

相关推荐

告别重复劳动:用Python+pywinauto打造你的微信个人助理(自动回复/收款/定时发消息)

本文介绍如何利用Python和pywinauto库构建微信个人助手,实现自动回复、定时消息、智能收款等功能,告别重复劳动。通过详细的代码示例和配置指南,帮助开发者快速掌握微信自动化技术,提升工作效率。

weixin_42568801的博客 328

DBOpenHelper

public class DbOpenHelper extends SQLiteOpenHelper { private static String name = "mydb.db";// 表示数据库的名称 private static int version = 2;// 表示数据库的版本号码 public DbOpenHelper(Context context) {

Struggle119的博客 3387

AGM Supra软件从零到一:国产CPLD工程创建全流程拆解

本文详细拆解了AGM Supra软件从零开始创建国产CPLD工程的全流程,包括开发环境配置、工程创建、Quartus项目转换、TCL脚本执行与编译等关键步骤。特别强调了中文路径避坑、器件型号选择等实用技巧,帮助开发者高效完成CPLD开发任务。

weixin_29158413的博客 410

SQLiteOpenHelper 类

SQLiteOpenHelper 是Android提供的一个管理数据库的工具类,可以用于管理数据库创建和版本更新.一般的用法是创建 SQLiteOpenHelper 的子类,并扩展它的onCreate(SQLiteDatabase db)方法和 onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)方法. 常用方法如下: getR

blue的博客 619

C# 进阶:打造WinForms中的动态交互式UserControl

本文深入探讨了如何在C# WinForms中创建动态交互式UserControl,以提升桌面应用的用户体验和代码复用性。通过剖析UserControl生命周期、事件体系,并结合一个可拖拽缩放的分割面板实战案例,详细讲解了鼠标键盘事件处理、自定义绘制、状态管理以及性能优化等核心技巧,帮助开发者封装复杂交互逻辑,打造专业级自定义控件。

weixin_29279153的博客 460

MCSDK5.4.8电机库双电阻采样适配:从扇区判断到固定采样的重构实践

本文详细解析了MCSDK5.4.8电机库中双电阻采样技术的重构实践,从扇区判断到固定采样的关键步骤。通过硬件配置优化、核心文件重构及电流读取函数改造,实现高效稳定的电机控制,特别适用于成本敏感型项目。文章还提供了占空比限制计算、参数调整及常见问题排查等实用技巧,助力工程师快速掌握两电阻采样方法。

weixin_42532938的博客 279

DBOpenHelper用法

DBOpenHelper用法import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DBOpenHelper extends SQLiteOpenHelper{ pu

陆维淋的博客 8104

雷达工程师避坑指南:STAP处理中,间歇采样转发干扰为什么这么难对付?

本文深入解析了STAP处理中间歇采样转发干扰(ISRJ)的挑战与应对策略。通过分析ISRJ的工作机制和自由度消耗问题,结合仿真数据对比,揭示了其与传统压制干扰的本质差异。文章还探讨了在工程实践中如何构建有效的防御体系,包括降维处理技术选择和混合架构设计,为雷达工程师提供了实用的避坑指南。

weixin_30530339的博客 267

Android:SQLiteOpenHelper类(SQLlite数据库操作)详细解析

前言 SQLite数据库操作在Android开发中非常常用今天我将带大家全面了解关于SQLite数据库的操作(增、删、查、改) 目录 1. SQLite数据库介绍 SQLite是Android内置的一个小型、关系型、属于文本型的数据库。 Android提供了对 SQLite数据库的完全支持,应用程序中的任何类都可以通过名称来访问任何的数据库

武略的专栏 3983

手把手教你用Simulink搭建单相全桥逆变器(附单电流闭环控制仿真文件)

本文详细介绍了如何在Simulink中搭建单相全桥逆变器并实现单电流闭环控制。从功率主电路建模、核心器件参数设置,到控制系统的PI调节与前馈补偿,提供了完整的仿真步骤与调试技巧。文章旨在通过动手实践,帮助读者跨越理论与仿真的鸿沟,深入理解电力电子闭环控制的核心原理。

d6e7f8g9h的博客 316

Ovito隐藏技巧:用Expression Selection快速提取分子链(附模糊背景配置参数)

本文详细介绍了Ovito软件中Expression Selection功能的隐藏技巧,用于从复杂的分子动力学模拟数据中快速、精准地提取目标分子链。通过结合Expand Selection和Invert Selection等修饰器,形成一套高效的工作流,并深入解析了实现SCI论文级渲染效果的景深模糊参数配置,帮助研究者大幅提升数据处理与图片生成效率。

pz890123的博客 867

SQLite数据库

SQLite操作主要靠SQLiteDatabase和SQLiteOpenHelper两个类。 SQLiteDatabase对象通过SQLiteOpenHelper调用方法获得。 (1)SQLiteOpenHelper的使用。 SQLiteOpenHelper是一个抽象类,继承时要求实现onCreate和onUpgrade方法。 onCreate用于生成数据库表,onUpgrade用

zhongmidan0527的博客 323

【无人机基站】基于K-mean算法实现无人机基站部署附matlab代码

【无人机基站】基于K-mean算法实现无人机基站部署附matlab代码

天天酷科研的博客 241

Android中SQLiteOpenHelper类的onUpgrade方法的作用

Android中SQLiteOpenHelper类的onUpgrade方法的作用 结合另外一篇文档学习: http://lzd20021683.iteye.com/blog/1396292   SQLiteOpenHelper类与自动升级数据库   Andoird的SQLiteOpenHelper类中有一个onUpgrade方法。帮助文档中只是说当数据库升级时该方法被触发。经过实践,解决...

lzd20021683的专栏 411

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

SQLiteOpenHelper存在的意义

在Android系统中,既然可以通过Context类的openOrCreateDatabase()函数打开或创建SQLite数据库,并且可以通过其返回值(即SQLiteDatabase对像)调用execSQL()函数对数据库做任何的操作(CRUD),那么还需要SQLiteOpenHelper这个类有什么意义呢? 例如:         db = openOrCreate...

maxma的博客 369

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Android数据存储

SQLiteDatabase,其中实现了增删改查回滚等对数据库直接进行操作的方法,好像并不需要SQLiteOpenHelper,这个类的位置有些尴尬,但实际上这个辅助类的主要作用在于数据库的更新问题。比如:版本更新之类的。

weixin_72010379的博客 340

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

【SQLite数据库小结】你不得不知的类SQLiteOpenHelper

引言 如果你想要新建一个数据库,那么你一定会用到SQLiteOpenHelper; 如果你已经有了数据库,但是你想要操作数据库里面表中的数据,进行CRUD操作,那么你一定会用到SQLiteOpenHelper; 如果你已经有了数据库,但是想要升级数据库,改变数据库中表的结构,那么你一定会用到SQLiteOpenHelper…… 总之,凡是你想要在程序里面对数据库进行相关

Large_beaR的博客 1435

android SQLiteOpenHelper 和 DatabaseErrorHandler源码解析

package android.database; import android.database.sqlite.SQLiteDatabase; /** * An interface to let the apps define the actions to take when the following errors are detected * database corruptio

光英的记忆博客 2116

关于SQLiteOpenHelper

 SQLiteOpenHelper是包装了数据库的创建、打开和更新的抽象类。通过实现和使用SQLiteOpenHelper,你可以隐去在数据库打开之前需要判断数据库是否需要创建或更新的逻辑。 上面的代码片段显示了如何扩展SQLiteOpenHelper类,通过重写构造函数、onCreate和onUpgrade方法来处理新的数据库的创建和更新到新的版本。 

ghd2000的专栏 4554

Android数据库SQLite使用详解一 : SQLiteOpenHelper详解

众所周知,Android使用的SQLite数据库, 其特点是高度便携、使用方便、结构紧凑、高效、可靠    今天的目标就是在Android手机中创建一个数据库    首先,Android 使用的是SQLiteOpenHelper类来管理数据库,来看看官方的对于此类的概述:         A helper class to manage database creation and vers

wingsofPiano的博客 1424

Android数据库之SQLiteOpenHelper

我们知道,android开发时少不了用到数据库,android系统提供了轻量级的数据库:SQLite。在你的应用开发中,如果需要用到数据库就能使用SQLite了。为了使用的SQLite方便,Android提供了SQLite的一个工具类:SQLiteOpenHelper。如果能够保证更好的用SQLite,你当然你可以不用这个工具类。这里我们来看看SQLiteOpenHelper的实现。

狂发飘飘 2096

【Android】SQLiteOpenHelper技术点总结

1、SQLiteOpenHelper是什么? A helper class to manage database creation and version management. 一个数据库创建和版本管理的帮助类。 2、SQLiteOpenHelper作用 SQLiteOpenHelper既然是帮助类,并且是管理数据库的创建和版本,那么为什么类名包含"Open"这个单词呢?为什么不叫SQLit...

now_android 558

Android学习 | 08.SQLiteOpenHelper

SQLiteOpenHelper是android系统提供的用于创建及操作数据库的工具类。该类中提供了创建、升级、降级时的回调方法,对应onCreate(),onUpgrade(),onDowngrade()。在使用时可以根据app功能进行覆写相应的方法,从而实现正确的存储数据...

M_Nobody的博客 5823
上一篇: 在android studio 中查看数据库SQLitem中的数据
下一篇: win10无法连接无线网的修复方法
Colt"
博客等级 码龄9年 30粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值