SQLite CRUD操作

时间:2022-09-05 12:37:30

SQLite CRUD操作代码实例:

1:首先创建一个继承了SQLiteOpenHelper类的MyDatabaseHelper类。实现他的onCreate(SQLiteDatabase db)

onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)方法。

package dataBase.databasetest;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast; public class MyDatabaseHelper extends SQLiteOpenHelper {
private Context mContext; public MyDatabaseHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
mContext=context;
} public static final String CREATE_BOOK="create table book(" //创建book表
+"id integer primary key autoincrement,"
+"author text,"
+"price real,"
+"pages integer,"
+"name text)";
public static final String CREATE_CATEGORY="create table category(" //创建category表
+"id integer primary key autoincrement,"
+"category_name text,"
+"category_code integer)";
@Override
public void onCreate(SQLiteDatabase db) {
// TODO 自动生成的方法存根
db.execSQL(CREATE_BOOK);
db.execSQL(CREATE_CATEGORY);
Toast.makeText(mContext, "创建数据库成功", Toast.LENGTH_LONG).show();
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO 自动生成的方法存根
db.execSQL("drop table if exists book"); //如果已有这两个表。先删除,
db.execSQL("drop table if exists category"); //在调用onCreate()分别创建
onCreate(db);
} }

2.在MainActivity中通过几个按钮事件测试对数据的CRUD:

 package dataBase.databasetest;

 import android.app.Activity;
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.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast; public class MainActivity extends Activity {
private MyDatabaseHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//修改参数为2,执行onUpgrade()方法跟新数据库
dbHelper=new MyDatabaseHelper(this, "BookStor.db", null, 2); //实现构造函数,传入参数,第一个为context。第二个为数据库名称
//创建表
Button create=(Button)this.findViewById(R.id.creat);
create.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
dbHelper.getWritableDatabase();
}
}); //增加数据
Button add=(Button)this.findViewById(R.id.add);
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
SQLiteDatabase db=dbHelper.getWritableDatabase();
ContentValues values=new ContentValues();
//开始组装数据
values.put("name", "Android第一行代码");
values.put("author", "郭霖");
values.put("price",66.78);
values.put("pages",400 );
//写入数据
db.insert("book", null, values);
values.clear();
//准备再次写入数据
values.put("name","java讲义");
values.put("author", "张三");
values.put("price", 66.76);
values.put("pages", 789);
db.insert("book", null, values);
values.clear();
Toast.makeText(getApplicationContext(), "数据写入成功", Toast.LENGTH_LONG).show();
}
}); //更新数据
Button updata=(Button)this.findViewById(R.id.updata);
updata.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
SQLiteDatabase db=dbHelper.getWritableDatabase();
ContentValues values=new ContentValues();
values.put("price", 100.00);
db.update("book", values, "name=?",new String[]{"平凡的世界"});
values.clear();
Toast.makeText(getApplicationContext(), "数据更新成功", Toast.LENGTH_SHORT).show(); }
}); //删除数据
Button delete =(Button)this.findViewById(R.id.delete);
delete.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
SQLiteDatabase db=dbHelper.getWritableDatabase();
db.delete("book", "id>?", new String[]{"23"}); //第一个参数为表名,二三个参数为限制条件
Toast.makeText(getApplicationContext(), "数据删除成功", Toast.LENGTH_SHORT).show();
}
}); //查询数据
Button find =(Button)this.findViewById(R.id.find);
find.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
SQLiteDatabase db=dbHelper.getWritableDatabase();
Cursor cursor=db.query("book",null, null, null, null, null, null);
if(cursor.moveToFirst()){
do {
String name=cursor.getString(cursor.getColumnIndex("name"));
String author=cursor.getString(cursor.getColumnIndex("author"));
int pages=cursor.getInt(cursor.getColumnIndex("pages"));
double price=cursor.getDouble(cursor.getColumnIndex("price"));
Log.d("MainActivity", name);
Log.d("MainActivity", author);
Log.d("MainActivity", String.valueOf(pages));
Log.d("MainActivity", String.valueOf(price));
} while (cursor.moveToNext());
}
cursor.close();
Toast.makeText(getApplicationContext(), "数据查找完毕",Toast.LENGTH_SHORT).show();
}
}); //事物
Button transAction=(Button)this.findViewById(R.id.transaction);
transAction.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
SQLiteDatabase db=dbHelper.getWritableDatabase();
db.beginTransaction();//开启事务
try {
ContentValues values=new ContentValues();
db.delete("book", "id=?", new String[]{"11"}); //删除
values.put("name", "newnewnew");
values.put("price",111);
values.put("author", "牛人");
values.put("pages", 222);
db.update("book", values, "name=?", new String[]{"Android第一行代码"});
Toast.makeText(getApplicationContext(), "事务执行完毕", Toast.LENGTH_SHORT).show();
values.clear();
} catch (Exception e) {
// TODO: handle exception
}finally{
db.endTransaction();//关闭事务
}
}
});
}
}

3:查看数据库数据可以通过在dos中运行 adb shell 或者 SQLite Expert软件查看。

SQLite CRUD操作的更多相关文章

  1. SQLite数据库操作 (原始操作)

    android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API, 使用该类可以完成对数据进行添加(Create).查询(Retrieve).更新(Update)和删除( ...

  2. ORM对象关系映射之使用GreenDAO进行CRUD操作

    在Android中,我们都知道使用的数据库是SQLite,而使用这种原生的数据库非常繁琐,它对表的管理和进行CRUD操作都需要我们写sql语句,在进行多表关联的操作上,更是需要写一堆sql,而且维护起 ...

  3. 【翻译】MongoDB指南/CRUD操作(四)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...

  4. 【翻译】MongoDB指南/CRUD操作(三)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...

  5. 【翻译】MongoDB指南/CRUD操作(二)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...

  6. 【翻译】MongoDB指南/CRUD操作(一)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(一) 主要内容:CRUD操作简介,插入文档,查询文档. CRUD操作包括创建.读取.更新和删 ...

  7. ASP.NET Core Web API Cassandra CRUD 操作

    在本文中,我们将创建一个简单的 Web API 来实现对一个 “todo” 列表的 CRUD 操作,使用 Apache Cassandra 来存储数据,在这里不会创建 UI ,Web API 的测试将 ...

  8. MongoDB的CRUD操作

    1. 前言 在上一篇文章中,我们介绍了MongoDB.现在,我们来看下如何在MongoDB中进行常规的CRUD操作.毕竟,作为一个存储系统,它的基本功能就是对数据进行增删改查操作. MongoDB中的 ...

  9. 【Java EE 学习 44】【Hibernate学习第一天】【Hibernate对单表的CRUD操作】

    一.Hibernate简介 1.hibernate是对jdbc的二次开发 2.jdbc没有缓存机制,但是hibernate有. 3.hibernate的有点和缺点 (1)优点:有缓存,而且是二级缓存: ...

随机推荐

  1. [数据科学] 从text, json文件中提取数据

    文本文件是基本的文件类型,不管是csv, xls, json, 还是xml等等都可以按照文本文件的形式读取. #-*- coding: utf-8 -*- fpath = "data/tex ...

  2. Bootstrap<基础二十> 标签

    Bootstrap 标签.标签可用于计数.提示或页面上其他的标记显示.使用 class .label 来显示标签,如下面的实例所示: <!DOCTYPE html> <html&gt ...

  3. require&period;js的用法

    我采用的是一个非常流行的库require.js. 一.为什么要用require.js? 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了.后来,代码越来越多,一个文 ...

  4. java&lowbar;IO读写模版

    InputStream in = null; OutputStream out = null; try{ in = new FileInputStream(); int len=0; byte buf ...

  5. python 循环使用 while 或 for 语句实现用户名密码输错三次退出

    如有错误欢迎大家指出,新手初来乍到.程序没那么复杂,是最简单的. 一.需求 编写登录文件 .py1. 输入用户名密码2. 正确,输出欢迎登录3. 当输入用户名和密码小于 3 次,输入用户名或者密码错误 ...

  6. 执行发送邮件Send方法时,报错:邮箱不可用。 服务器响应为&colon; 5&period;7&period;1 Unable to relay for xxx&commat;xxx&period;com

    .net代码在执行发送邮件Send方法时,往往出现这个的报错: 邮箱不可用. 服务器响应为: 5.7.1 Unable to relay for xxx@xxx.com 这个问题应该是smtp的设置问 ...

  7. python生成字符画

    python生成字符画 这个idea来自于实验楼,非常适合练习PIL的像素处理,更重要的是非常有意思. 环境配置 依赖的第三方库就是PIL(Python Image Library),可以直接使用pi ...

  8. kvm日常维护

    1.列出物理机器上安装的虚拟[root@localhost ~]# virsh list --all Id Name State------------------------------------ ...

  9. MySQL学习----unsigned 无符号的总结

    unsigned    为“无符号”的意思,          unsigned,zerofill    既为非负数,用此类型可以增加数据长度,      例如如果    int最大是65535,那  ...

  10. React Native开启实时重载&lpar;Enable live Reload&rpar;

    传统的原生应用开发中,每一次修改都需要重新编译. 但在 RN 中你只需要刷新一下 JavaScript 代码,就能立刻看到变化. 操作 1.安卓模拟器 按下Ctrl + M,Enable live R ...