【Android-数据库Sqlite】Sqlite数据库 增、删、改、查
1、先创建一个Product类 Product.java
变量如下:
int id;
String code;
String name;
int qty;
2、创建一个DBHelper类 DBHelper.java
DBHelper类继承于SQLiteOpenHelper ,创建一个test.db的数据库,创建一张product表,并对product表进行增删改查操作。
import java.util.ArrayList;
import java.util.HashMap; import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper; public class DBHelper extends SQLiteOpenHelper { public final static String DB_NAME = "test.db";
public final static int VERSION = 1;
private static DBHelper instance = null;
private SQLiteDatabase db; public static DBHelper getInstance(Context context) {
if (instance == null) {
instance = new DBHelper(context);
}
return instance;
} private void openDatabase() {
if (db == null) {
db = getWritableDatabase();
}
} private DBHelper(Context context) {
super(context, DB_NAME, null, VERSION);
} /** 第一次安装程序后创建数据库 */
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table product (_id integer primary key autoincrement,code text,name text,qty Integer )");
} /** 版本升级时,先删除原有的数据库,再重新创建数据库 */
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exist product");
onCreate(db);
} /** 添加一条数据 */
public long saveLamp(Product pro) {
ContentValues value = new ContentValues();
value.put("code", pro.getCode());
value.put("name", pro.getName());
value.put("qty", pro.getQty());
return db.insert("product", null, value);
} /** 根据id删除数据 */
public int deleteLamp(int id) {
return db.delete("product", "_id=?", new String[] { String.valueOf(id) });
} /** 根据id更新数据 */
public int updateLamp(Product pro, int id) {
ContentValues value = new ContentValues();
value.put("code", pro.getCode());
value.put("name", pro.getName());
value.put("qty", pro.getQty());
return db.update("product", value, "_id=?", new String[] { String.valueOf(id) });
} /** 查询所有数据 */
public ArrayList<HashMap<String, Object>> getLampList() {
openDatabase();
Cursor cursor = db.query("product", null, null, null, null, null, null);
ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
while (cursor.moveToNext()) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("id", cursor.getInt(cursor.getColumnIndex("_id")));
map.put("code", cursor.getString(cursor.getColumnIndex("code")));
map.put("name", cursor.getString(cursor.getColumnIndex("name")));
map.put("qty", cursor.getString(cursor.getColumnIndex("qty")));
list.add(map);
}
return list;
} /** 根据编码查询数据 */
public Product getALamp(String code) {
openDatabase();
Cursor cursor = db.query("product", null, "code=?", new String[] { code }, null, null, null);
Product pro = new Product();
while (cursor.moveToNext()) {
pro.setId(cursor.getInt(cursor.getColumnIndex("_id")));
pro.setCode(cursor.getString(cursor.getColumnIndex("code")));
pro.setName(cursor.getString(cursor.getColumnIndex("name")));
pro.setQty(cursor.getInt(cursor.getColumnIndex("qty")));
}
return pro;
} /** 查询有多少条记录 */
public int getLampCount() {
openDatabase();
Cursor cursor = db.query("product", null, null, null, null, null, null);
return cursor.getCount();
} }
3、测试数据 MainActivity .java
import java.util.ArrayList;
import java.util.HashMap; import android.app.Activity;
import android.os.Bundle;
import android.util.Log; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
exec();// 测试数据 } private void exec() {
/** 添加数据 */
Product product1 = new Product("pingguo", "红富士苹果", 100);
long sucess1 = DBHelper.getInstance(MainActivity.this).saveLamp(product1);
Log.d("test", "sucess=" + sucess1);
if (sucess1 > 0) {
// "添加成功!"
} else {
// "添加失败,请重新操作!"
} /** 修改数据 */
Product product2 = new Product("pingguo", "红富士苹果", 100);
int updateId = 5;
int sucess2 = DBHelper.getInstance(MainActivity.this).updateLamp(product2, updateId);
if (sucess2 > 0) {
// "修改成功!"
} else {
// "修改失败,请重新操作!"
} /** 删除数据 */
int deleteId = 5;
int sucess = DBHelper.getInstance(MainActivity.this).deleteLamp(deleteId);
if (sucess > 0) {
// "删除成功!"
} else {
// "删除失败!"
} /** 获取表记录数 */
int count = DBHelper.getInstance(MainActivity.this).getLampCount(); /** 获取所有数据 */
ArrayList<HashMap<String, Object>> data = DBHelper.getInstance(MainActivity.this).getLampList(); }
}
【Android-数据库Sqlite】Sqlite数据库 增、删、改、查的更多相关文章
- 简单的php数据库操作类代码(增,删,改,查)
这几天准备重新学习,梳理一下知识体系,同时按照功能模块划分做一些东西.所以.mysql的操作成为第一个要点.我写了一个简单的mysql操作类,实现数据的简单的增删改查功能. 数据库操纵基本流程为: 1 ...
- iOS FMDB的使用(增,删,改,查,sqlite存取图片)
iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...
- iOS sqlite3 的基本使用(增 删 改 查)
iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...
- 好用的SQL TVP~~独家赠送[增-删-改-查]的例子
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...
- django ajax增 删 改 查
具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...
- ADO.NET 增 删 改 查
ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...
- MVC EF 增 删 改 查
using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...
- python基础中的四大天王-增-删-改-查
列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...
- Android SQLite(1)简单示例-增,删,改,查
1.主要核心类,Sqlite编程要继承SQLiteOpenHelper import android.content.Context; import android.database.sqlite.S ...
- Django(十)模型:django模型类对数据库的:增/删/改/查、自关联、管理器、元选项(指定表名)
一.插入.更新和删除 调用一个模型类对象的save方法的时候就可以实现对模型类对应数据表的插入和更新. 调用一个模型类对象的delete方法的时候就可以实现对模型类对应数据表数据的删除. 二.自关联 ...
随机推荐
- QT QcustomPlot的使用(二)
在QcustomPlot中,给横纵坐标添加箭头的方法 //在末尾添加箭头 customPlot->xAxis->setUpperEnding(QCPLineEnding::esSpikeA ...
- linux下如何查看一个服务所在的安装路径?
当接手一个不是自己维护的linux服务器,我们常常会想要看看该服务器上是否安装了某个服务,这个服务安装的路径在哪? redis 是开发过程中常常会用到的一个服务,我这里就以这个服务为例,进行说明. 1 ...
- Python多线程VS多进程
- 8-MySQL DBA笔记-测试基础
第三部分 测试篇 测试需要掌握的知识面很广泛,本篇的关注点是数据库的性能测试和压力测试,对于其他领域的测试,由于涉猎不多,笔者就不做叙述了.DBA的工作职责之一就是评估软硬件,这往往是一项很耗时的工作 ...
- Java组合模式(思维导图)
图1 组合模式[点击查看图片] 1,以公司职员为例的结构 package com.cnblogs.mufasa.demo3; import java.util.ArrayList; import ja ...
- Ubuntu12.04 root登陆方法【保证有效】
su -取得root权限后,gedit /etc/lightdm/lightdm.conf ,里面的内容全部改为 [SeatDefaults] greeter-session=unity-greete ...
- SpringBoot实现定时器定时处理任务
最近在项目中遇到了一个问题, 对于新建的活动, 活动设置了开始时间和结束时间, 也就是数据库中的一个状态码的改变而已. 但是,这里就有问题了, 如何去实现到时间更改活动状态呢? 1. 刚开始的时候,我 ...
- Activiti使用总结
工作流在我们日常的工作中用得可谓相当普及,尤其在企业内部管理系统,如考勤.财务.合同等系统中更是离不开它.在我们金融科技领域,工作流主要用于贷款审批.风控审核等环节.早期工作流在企业信息化发挥着很重要 ...
- chrome浏览器重新安装不了
1.打开注册表方法1. windows键 + R-->输入regedit-->回车方法2.开始-运行里输入regedit方法3.单击任务栏中windows图标,在搜索程序和文件中输入reg ...
- 4.SpringMVC 配置式开发-处理器映射器
处理器映射器 HandlerMapping HandlerMapping 接口负责根据request请求找到对应的Handler处理器及Interceptor拦截器, 并将它们封装在HandlerEx ...