安卓数据库开发helper

2023-05-16

package com.mytest.myapplication;

public class MyInfo {
public MyInfo(int id,String name,String value)
{
_ID=id;
_Name=name;
_Value=value;
}

public int _ID;
public String _Name;
public  String _Value;

}

package com.mytest.myapplication;

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

public class MySQLiteOpenHelper extends SQLiteOpenHelper{
public static final String TAG = “database”;
private static final String DATABASE_NAME = “test.db”;//数据库名字
private static final int DATABASE_VERSION = 1;//数据库版本号
public static final String TABLE_NAME = “myTable”; //表名

private static final String CREATE_TABLE = "create table " + TABLE_NAME + " ("
        + "ID integer primary key autoincrement,"
        + "Name text, "
        + "Value text);";//创建数据库里的表的sql语句
public MySQLiteOpenHelper(Context context)//创建数据库
{
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version)//创建数据库
{
    super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db)
{
    Log.i(TAG, "onCreate: ");
    db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{

    String sql = "DROP TABLE IF EXISTS " + DATABASE_NAME;
    db.execSQL(sql);
    onCreate(db);
}

}

package com.mytest.myapplication;

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

import android.content.ContentValues;
import java.util.ArrayList;
import java.util.Dictionary;
import java.util.List;
import java.util.Map;

public class DataBaseDAO {
private MySQLiteOpenHelper myDbHelper;
public DataBaseDAO(Context context)
{
myDbHelper=new MySQLiteOpenHelper(context);

}
public void Add(MyInfo info)//增加插入数据
{
SQLiteDatabase db = myDbHelper.getWritableDatabase();
// db.execSQL(“insert into “+myDbHelper.TABLE_NAME+”(ID,Name,Value) values(?,?,?)”,info._ID, info._Name,info._Value);
ContentValues values = new ContentValues();
values.put(“ID”,info._ID);
values.put(“Name”,info._Name);
values.put(“Value”,info._Value);
db.insert(myDbHelper.TABLE_NAME, null, values);
db.close();

}
public void Delete(String Name)//删除数据
{
    SQLiteDatabase db = myDbHelper.getWritableDatabase();

    db.execSQL("delete from "+myDbHelper.TABLE_NAME+" where Name=?",new String[]{Name});

}

public void Update(String name, Map<String,Object> map)//更新数据
{
SQLiteDatabase db = myDbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
for(Map.Entry<String, Object> entry : map.entrySet())
{
if(entry.getKey()==“ID”)
{
values.put(entry.getKey(),(Integer) entry.getValue());
}
else
{
values.put(entry.getKey(),(String) entry.getValue());
}
}
db.update(myDbHelper.TABLE_NAME,values,“Name=?”, new String[]{name});

db.close();
}

public List<MyInfo> findAll()//查找所有数据
{
    SQLiteDatabase db = myDbHelper.getWritableDatabase();
    List<MyInfo> list = new ArrayList<MyInfo>();
    Cursor cursor = db.rawQuery("select * from "+myDbHelper.TABLE_NAME,null);
    while(cursor.moveToNext())
    {
        int id = cursor.getInt(cursor.getColumnIndex("ID"));
        String name = cursor.getString(cursor.getColumnIndex("Name"));
        String value = cursor.getString(cursor.getColumnIndex("Value"));

        MyInfo userInfo = new MyInfo(id,name,value);
        list.add(userInfo);
    }
    cursor.close();
    db.close();
    return list;
}

}

package com.mytest.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import java.util.HashMap;
import java.util.Map;

import java.util.List;

public class DataBaseActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_data_base);
    dbd=new DataBaseDAO(this);
    Regedit();
}
DataBaseDAO dbd;
public List<MyInfo> List;
public void Regedit()
{
    Button addButton=(Button)findViewById(R.id.button_Add);
   addButton.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
           TextView tvName=(EditText)findViewById(R.id.editText_Name);
           TextView tvID=(EditText)findViewById(R.id.editText_ID);
           TextView tvValue=(EditText)findViewById(R.id.editText_Value);
           MyInfo mi=new MyInfo(Integer.parseInt((tvID.getText().toString())),tvName.getText().toString(),tvValue.getText().toString());
           dbd.Add(mi);
       }
   });

    Button deleteButton=(Button)findViewById(R.id.button_Delete);
    deleteButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            TextView tvName=(EditText)findViewById(R.id.editText_DeleteName);
            dbd.Delete(tvName.getText().toString());
        }
    });
    Button updateButton=(Button)findViewById(R.id.button_Upatate);
    updateButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            TextView tvName=(EditText)findViewById(R.id.editText_UpdateID);
            TextView tvID=(EditText)findViewById(R.id.editText_UpDateName);
            TextView tvValue=(EditText)findViewById(R.id.editText_UpdateValue);
          Map<String,Object> map=new HashMap<String,Object>();
          map.put("ID",Integer.valueOf(tvID.getText().toString()));
          map.put("Value",tvValue.getText().toString());
            dbd.Update(tvName.getText().toString(),map);
        }
    });



    Button findButton=(Button)findViewById(R.id.button_Find);
    findButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            TextView tvFind=(EditText)findViewById(R.id.editText_Find);
            tvFind.setText("");
            List=dbd.findAll();
            for (int i = 0; i < List.size(); i++) {
                MyInfo mi=List.get(i);
                tvFind.append(String.valueOf(mi._ID)+",");
                tvFind.append(mi._Name+",");
                tvFind.append(mi._Value+",");
            }
        }
    });

}

}

<?xml version="1.0" encoding="utf-8"?>

<Button
    android:id="@+id/button_Add"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_alignParentTop="true"
    android:layout_marginStart="30dp"
    android:layout_marginTop="39dp"
    android:text="增" />

<Button
    android:id="@+id/button_Delete"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignStart="@+id/button_Add"
    android:layout_marginTop="129dp"
    android:text="删" />

<Button
    android:id="@+id/button_Upatate"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignStart="@+id/button_Add"
    android:layout_marginTop="216dp"
    android:text="改" />

<Button
    android:id="@+id/button_Find"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignStart="@+id/button_Add"
    android:layout_marginBottom="208dp"
    android:text="查" />

<EditText
    android:id="@+id/editText_ID"
    android:layout_width="63dp"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_alignTop="@+id/button_Add"
    android:layout_marginEnd="190dp"
    android:ems="10"
    android:inputType="textMultiLine" />

<EditText
    android:id="@+id/editText_Name"
    android:layout_width="63dp"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_alignTop="@+id/button_Add"
    android:layout_marginEnd="107dp"
    android:ems="10"
    android:inputType="textMultiLine" />

<EditText
    android:id="@+id/editText_Value"
    android:layout_width="66dp"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="true"
    android:layout_alignTop="@+id/button_Add"
    android:layout_marginEnd="13dp"
    android:ems="10"
    android:inputType="textMultiLine" />

<EditText
    android:id="@+id/editText_DeleteName"
    android:layout_width="63dp"
    android:layout_height="wrap_content"
    android:layout_alignStart="@+id/editText_ID"
    android:layout_alignTop="@+id/button_Delete"
    android:ems="10"
    android:inputType="textMultiLine" />

<EditText
    android:id="@+id/editText_Find"
    android:layout_width="322dp"
    android:layout_height="156dp"
    android:layout_alignParentBottom="true"
    android:layout_alignStart="@+id/button_Add"
    android:layout_marginBottom="23dp"
    android:ems="10"
    android:inputType="textMultiLine" />

<EditText
    android:id="@+id/editText_UpDateName"
    android:layout_width="63dp"
    android:layout_height="wrap_content"
    android:layout_alignStart="@+id/editText_ID"
    android:layout_alignTop="@+id/button_Upatate"
    android:ems="10"
    android:inputType="textMultiLine" />

<EditText
    android:id="@+id/editText_UpdateID"
    android:layout_width="66dp"
    android:layout_height="wrap_content"
    android:layout_alignEnd="@+id/editText_Name"
    android:layout_alignTop="@+id/button_Upatate"
    android:ems="10"
    android:inputType="textMultiLine" />

<EditText
    android:id="@+id/editText_UpdateValue"
    android:layout_width="75dp"
    android:layout_height="wrap_content"
    android:layout_alignEnd="@+id/editText_Value"
    android:layout_alignTop="@+id/button_Upatate"
    android:ems="10"
    android:inputType="textMultiLine" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安卓数据库开发helper 的相关文章

  • File.Create创建文件后,需要释放…

    if File Exists SavePath File Create SavePath Close
  • 最全CSS各种布局详解

    一 单列布局的实现 1 单列布局中最常用的水平居中的四种方法 同时设置父元素和子元素的样式 xff1a 父元素使用text align实现 xff0c 子元素使用inline block 这里宽高背景只是为了展示 parent text a
  • Android开发的之基本控件和详解四种布局方式

    Android中的控件的使用方式和iOS中控件的使用方式基本相同 xff0c 都是事件驱动 给控件添加事件也有接口回调和委托代理的方式 今天这篇博客就总结一下Android中常用的基本控件以及布局方式 说到布局方式Android和iOS还是
  • 为Android Studio中的SettingsActivity定制任务栏 (Setting Activity其实本质上是从PreferenceActivity中继承过来的)

    Android Studio为开发者提供了很多内建的Activity 其中Settings Activity是非常有用且功能强大的一种内建Activity Setting Activity其实本质上是从PreferenceActivity中
  • Android设置页面PreferenceFragment使用详细+代码分析

    Android设置页面PreferenceFragment使用详细 文章目录Android设置页面PreferenceFragment使用详细一 设置页面核心代码二 设置页面布局核心代码三SettingFragment核心代码四 setti
  • Android Studio 上Activity的互相切换

    Activity上有两个按钮 xff0c 切换到其他两个Activity 1 先创建两个Button xff0c 一个Textview 2 给两个Button添加监听器 xff0c 实现如下代码 public class MainActiv
  • Android中的Intent和Intent-filter总结

    一 xff0e 相关概念 xff08 一 xff09 基本概念 Intent中文意思指 意图 按照Android的设计理念 Android使用Intent来封装程序的 调用意图 不管启动Activity Service BroadcastR
  • C#接口中为什么不能像java那样使用static?

    我印象中java里面的接口使用static final修饰的常量 xff0c 不是成员方法 xff0c 使用static修饰的method放在接口中是无意义的 xff0c 接口是用来抽象的 与Java不同 xff0c C 中的接口不能包含域
  • JVM(2)九个部分 p4

    文章目录 1 九大部分1 1 类加载子系统1 2 方法区1 3 堆1 4 直接内存1 5 jvm栈1 6 本地方法栈1 7 垃圾回收系统1 8 PC寄存器1 9 执行引擎 2 堆 栈 方法区的联系3 Java堆的不同结构4 对象已经死了吗4
  • 通过点击事件监听 setOnClickListener 彻底理解回调-Android

    前言 老司机们对于回调肯定熟悉得不能再熟悉了 但是新司机可能还是一脸懵逼的 xff0c 我比较笨 xff0c 当年懵逼了好久 xff0c 看夏安明的这一篇博客地址 xff0c 虽然下边的留言都是 xff0c 写得好 xff01 懂了懂了 x
  • Java 接口和抽象类可以被new么?——顺便总结内部类

    转载 xff1a https blog csdn net hackersaillen article details 47281549 背景 xff1a 最近有同事跟我说了他面试时遇到的问题 xff0c 考官问 xff1a 接口和抽象类可以
  • java之方法的重写

    方法的重写 xff1a 1 在子类中可以根据需要对从基类中继承来的方法进行重写 2 重写的方法和被重写的方法必须具有相同方法名称 参数列表和返回类型 3 重写方法不能使用比被重写的方法更严格的访问权限 程序code class Person
  • Android中传递对象的三种方法

    Android中 xff0c Activity和Fragment之间传递对象 xff0c 可以通过将对象序列化并存入Bundle或者Intent中进行传递 xff0c 也可以将对象转化为JSON字符串 xff0c 进行传递 序列化对象可以使
  • Android中BroadCastReceiver使用(整理)

    BroadcastReceiver 在Android中 xff0c Broadcast是一种广泛运用的在应用程序之间传输信息的机制 而BroadcastReceiver是对发送出来的 Broadcast进行过滤接受并响应的一类组件 下面将详
  • Android的联通性---USB主机模式(三)

    获取跟设备通信的权限 在跟USB设备进行通信之前 xff0c 你的应用程序必须要获取用户的许可 注意 xff1a 如果你的应用程序使用Intent过滤器来发现接入的USB设备 xff0c 而且用户允许你的应用程序处理该Intent xff0
  • android USB

    google 在推出API 3 0后 就增加啦USB通讯这块 同时为API 2 3提供啦一个USB通讯吧 xff0c 这样也让2 3有啦USB通讯功能 不过只支持USBAccessory模式 USB通讯分为两种模式 xff1a xff08
  • 入门 Kotlin 和 Java 混合开发

    一 前沿 如果你学习过其他的编程语言 xff0c 你就会发现 Java 的语法很是哆嗦 xff0c 可是我们为什么没有放弃 Java 这门编程语言呢 xff1f 因为 JVM 是一个非常好的平台 xff0c 而且 Java 程序员目前在中国
  • kotlin 和java 混编

    如果你之前使用 Java 语言而没有 Kotlin 开发经验 xff0c 不用担心 xff0c Intellij IDEA 会帮你一键转换 xff0c 将 Java 代码转换成 Kotlin 代码 但是反过来就不行了 在 Mac 上 xff
  • Kotlin 基础语法

    Kotlin 文件以 kt 为后缀 包声明 代码文件的开头一般为包的声明 xff1a package com runoob main import java util fun test class Runoob kotlin源文件不需要相匹
  • ‘break‘ not in the ‘loop‘ or ‘switch‘ context

    使用phpexcel导出表格 xff0c 切换到php7 0报错 错误地址 xff1a FILE ThinkPHP Library Vendor phpexcel PHPExcel Calculation Functions php LIN

随机推荐

  • Android数据存储之SQLite

    概览 l 概述 l CRUD方法详解 l 注意事项 概述 对于大量数据的处理 xff0c 如果不想将数据存于服务器端 xff0c Android API提供了对关系数据库SQLite的支持 xff0c 在android SDK中tool目录
  • SQLlite在安卓中的基本详解和简单使用

    一 基础介绍 1 SQLite 是一个进程内的库 是一种轻量级的 自给自足的 无服务器的 无需配置的 事务性的SQL数据库引擎 和他其他的数据库一样 xff0c SQLite引擎不是一个独立的进程 xff0c 可以按应用程序需求进行静态或动
  • android开发中的数据库SQLite的使用

    其实学习android很久了 xff0c 关于数据存储 xff0c 之前学习的时候也一同学习过 xff0c 编程这些东西很久没用都忘得差不多了 xff0c 最近做个项目要用到 xff0c 所以又学习了一遍 android中关于数据的存储有好
  • Android图表控件MPAndroidChart——曲线图LineChart的使用(财富收益图)

    目录 前言 本文涉及文章 其他相关文章 1 数据准备 1 1 数据来源 2 曲线展示 2 1 MPAndroidChart获取 2 2 数据对象获取 2 3 数据展示 3 曲线完善 3 1 图表背景 边框 网格线修改 3 2 X Y轴值的自
  • Android图表控件MPAndroidChart——曲线图LineChart的使用(财富收益图)

    目录 前言 本文涉及文章 其他相关文章 1 数据准备 1 1 数据来源 2 曲线展示 2 1 MPAndroidChart获取 2 2 数据对象获取 2 3 数据展示 3 曲线完善 3 1 图表背景 边框 网格线修改 3 2 X Y轴值的自
  • SQLiteOpenHelper使用详解

    SQLiteOpenHelper 的子类 xff0c 至少需要实现三个方法 xff1a 1 构造函数 调用父类 SQLiteOpenHelper 的构造函数 这个方法需要四个参数 xff1a 上下文环境 xff08 例如 xff0c 一个
  • SQLiteOpenHelper的简单使用

    由于想学习GreenDao框架 xff0c 但是看了一下有的蒙圈 xff0c 所以先熟悉一下android原生的SQLiteOpenHelper的使用工具 xff1a SQLite Expert Personal SQLite Expert
  • android SQLiteOpenHelper 使用

    1 实体 package mydemo mycom demo2 entity public class UserInfo private int id private String username private String passw
  • SQLiteOpenHelper的简单使用

    由于想学习GreenDao框架 xff0c 但是看了一下有的蒙圈 xff0c 所以先熟悉一下android原生的SQLiteOpenHelper的使用 工具 xff1a SQLite Expert Personal SQLite Exper
  • 安卓案例:利用SQLiteOpenHelper操作数据库及表

    安卓案例 xff1a 利用SQLiteOpenHelper操作数据库及表 一 运行效果 二 涉及知识点 1 利用SQLiteOpenHelper类创建与升级数据库 这个类是一个抽象类 xff0c 我们必须继承该类创建一个子类 xff0c 实
  • delphi SimpleGraph控件的部分注释

    TSimpleGraph是一个delphi下的可视化图形开源控件 xff0c 有很强编辑态和运行态编辑功能 是学习开发DELPHI控件的一个很好的例子 控件本身有很强的扩展性 完全可以自定义绘制各种图形 控件的地址为http www del
  • java获取实体类的属性和值

    package com jackie day11 import java lang reflect Field import java lang reflect InvocationTargetException import java l
  • Android USB 开发详解

    Android USB 开发详解 先附上 Android USB 官方文档 Android通过两种模式支持各种 USB 外设和 Android USB 附件 xff08 实现Android附件协议的硬件 xff09 xff1a USB附件和
  • Android USB串口开发

    因为第一次接触Android下的串口开发 xff0c 在网上找了很多例子都不能满足自己的需要以及不能正常使用 xff0c 于是结合网上的资源以及查阅资料 xff0c 终于完成了关于这个串口的开发 xff0c 在此记录下usb转串口通信开发的
  • Android USB转串口通信开发实例详解

    好久没有写文章了 xff0c 年前公司新开了一个项目 xff0c 是和usb转串口通信相关的 xff0c 需求是用安卓平板通过usb转接后与好几个外设进行通信 xff0c 一直忙到最近 xff0c 才慢慢闲下来 xff0c 趁着这个周末不忙
  • Android USB转串口编程

    安卓手机的对外通信接口就只有USB跟音频口 xff0c 我们可采用其进行与外设进行通信 今天 xff0c 我们来讲讲安卓手机利用USB接口与外设进行通信 此时 xff0c 有两种情况 第一 xff1a USB xff08 手机 xff09
  • Android串口编程--开关灯Demo(附源码)

    1 项目简述 第二次玩硬件了 xff0c 第一次是通过局域网控制门的开关 xff0c 这次是通过ZB xff08 大概就是这么叫 xff0c 具体名字不清楚 xff09 控制灯的开关 xff0c 感觉控制硬件也就是给硬件发个byte数组而已
  • 安卓开发中的USB转串口通讯

    安卓开发中的USB转串口通讯 本文使用GitHub上开源的 hoho android usbserial USB串口库 该库基于 Android USB Host API xff0c 驱动完全由java开发 xff0c 无需root xff
  • Android USB转串口开发(hoho.android.usbserial串口库)

    使用hoho android usbserial串口库开发串口 import android app Application import android app PendingIntent import android content B
  • 安卓数据库开发helper

    package com mytest myapplication public class MyInfo public MyInfo int id String name String value ID 61 id Name 61 name