Android数据储存之SQLiteDatabase 简单增删改查

SQLiteDatabase 使用

SQLiteDatabase提供如下方法来打开一个文件对应的数据库:

openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flags)  打开path文件所代表的文件

openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory)   打开或创建(如果不存在时)path文件所代表的文件

openOrCreateDatabase(File file, SQLiteDatabase.CursorFactory factory) 打开或创建File(如果不存在时)文件所代表的文件

以上方法均返回一个SQLiteDatabase对象!

调用SQLiteDatabase对象中的方法来执行sql操作数据库:

execSQL(String sql) 执行sql



execSQL(String sql, Object[] bindArgs)  执行sql

bindArgs代表sql中的占位符参数的值



insert(String table, String nullColumnHack, ContentValues values) 插入语句,

table表名

values为ContentValues对象!该对象存储方式为Key-value,Key表示表中的字段名称,value表示该字段对应的值

nullColumnHack表示强行向表中插入null,前提是第三个参数(values)为空或者不包含任何Key-value时生效



update(String table, ContentValues values, String whereClause, String[] whereArgs)  更新语句

table为表名

values为ContentValues对象!该对象存储方式为Key-value,Key表示表中的字段名称

value表示该字段对应的值,第三个参数为条件例如:_ID = ? ,第四个参数为第三个参数的值!



delete(String table, String whereClause, String[] whereArgs)  删除数据

table表名

whereClause为条件例如:_ID = ?

whereArgs为whereClause的值!



query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)  查询语句

table为表名

columns想要显示的字段

selection条件

selectionArgs 中为selection的值

groupBy 分组

having  分组条件

orderBy 排序

limit 分页


 1 public class MainActivity extends Activity implements OnClickListener{
 2     private Button button,btnUpdate,btnDelete,btnQuery;
 3     private static String DATABASE_PATH;
 4     private static String DATABASE_SQL;
 5     private SQLiteDatabase database;
 6     @Override
 7     protected void onCreate(Bundle savedInstanceState) {
 8         super.onCreate(savedInstanceState);
 9         setContentView(R.layout.activity_main);
10         initView();
11         setEvent();
12     }
13
14     private void setEvent() {
15         button.setOnClickListener(this);
16         btnUpdate.setOnClickListener(this);
17         btnDelete.setOnClickListener(this);
18         btnQuery.setOnClickListener(this);
19     }
20
21     private void initView() {
22         DATABASE_PATH = this.getFilesDir()+"/myDataBase.db";
23         DATABASE_SQL = "CREATE TABLE USER_INOF(_ID INTEGER PRIMARY KEY,_NAME,_AGE,_ADDRESS)";
24         database = SQLiteDatabase.openOrCreateDatabase(DATABASE_PATH, null);
25         button = (Button) findViewById(R.id.id_databaseButton);
26         btnUpdate = (Button) findViewById(R.id.id_databaseButtonUpdate);
27         btnDelete =(Button) findViewById(R.id.id_databaseButtonDelete);
28         btnQuery= (Button) findViewById(R.id.id_databaseButtonQuery);
29     }
30
31     @Override
32     public void onClick(View v) {
33         switch (v.getId()) {
34         case R.id.id_databaseButton:
35             //database.execSQL(DATABASE_SQL);
36             ContentValues values = new ContentValues();
37             values.put("_NAME", "悟空");
38             values.put("_AGE", "666");
39             values.put("_ADDRESS", "辽宁");
40             long i = database.insert("USER_INOF", null, values);
41             if(i==-1){
42                 Toast.makeText(this, "添加失败", 0).show();
43             }else{
44                 Toast.makeText(this, "添加成功", 0).show();
45             }
46             break;
47         case R.id.id_databaseButtonUpdate:
48             ContentValues value = new ContentValues();
49             value.put("_NAME", "猪八戒");
50             value.put("_AGE", "555");
51             value.put("_ADDRESS", "辽宁");
52             database.update("USER_INOF", value, "_ID=?",new String[]{"2"});
53             break;
54         case R.id.id_databaseButtonDelete:
55             int o = database.delete("USER_INOF", "_ID > ?", new String[]{"1"});
56             Toast.makeText(this,""+o+"条数据受影响", 0).show();
57             break;
58         case R.id.id_databaseButtonQuery:
59             Cursor cursor =database.query("USER_INOF", null, null, null, null, null, null);
60             if(cursor.getCount()>0){
61                 while (cursor.moveToNext()) {
62                     String id = cursor.getString(0);
63                     String name =cursor.getString(1);
64                     String age =cursor.getString(2);
65                     String address =cursor.getString(3);
66                     Toast.makeText(this, "查询成功:"+id+name+age+address, 0).show();
67                 }
68             }else{
69                 Toast.makeText(this,""+cursor.getCount()+"", 0).show();
70             }
71             break;
72         default:
73             break;
74         }
75     }
76
77 }
 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     android:layout_width="fill_parent"
 3     android:layout_height="fill_parent"
 4     android:orientation="vertical" >
 5
 6     <Button
 7         android:id="@+id/id_databaseButton"
 8         android:layout_width="match_parent"
 9         android:layout_height="wrap_content"
10         android:text="添加数据" />
11
12     <Button
13         android:id="@+id/id_databaseButtonUpdate"
14         android:layout_width="match_parent"
15         android:layout_height="wrap_content"
16         android:text="修改数据" />
17
18     <Button
19         android:id="@+id/id_databaseButtonDelete"
20         android:layout_width="match_parent"
21         android:layout_height="wrap_content"
22         android:text="删除数据" />
23
24     <Button
25         android:id="@+id/id_databaseButtonQuery"
26         android:layout_width="match_parent"
27         android:layout_height="wrap_content"
28         android:text="查询数据" />
29
30 </LinearLayout>

时间: 2024-10-12 22:56:22

Android数据储存之SQLiteDatabase 简单增删改查的相关文章

[EF]使用EF简单增删改查

目录 认识EF 添加数据 删除数据 修改数据 查询数据 总结 认识EF ADO.NET Entity Framework 是微软以ADO.NET为基础所发展出来的对象关系对伊(O/R Mapping)解决方案,早起被称为ObjectSpage,最新版本EF6. 实体框架Entity Framework是ADO.NET中的一组支持面向数据的软件应用程序的技术.是微软的一个ORM框架. 什么是O/R Mapping 广义上,ORM指的是面向对象模型和关系数据库的数据结构之间的相互转换. 狭义上,OR

Android下利用SQLite数据库实现增删改查

1: 首先介绍如何利用adb查看数据库 1: adb shell 2: cd /data/data/包名/databases 3:  sqlite3 数据库 4   接下来就可以进行数据库的sql语法的使用了 bean对象: public class Person { private int id; private String name; private String number; } 数据库的创建以及表的创建: package com.example.db; import android.

kendoUI 简单增删改查

1  目前学习主要基于kendoUI英文API文档(http://docs.telerik.com/kendo-ui/introduction) 2  在已经搭建的MVC+EF+kendo UI的基础上实现Kendo UI增删改查功能 3 增删改查代码示例: 3-1:主要展示前台实现代码,因为后台代码不是唯一,可自行配置,返回JSON数据 3-1:html代码如下 3-1-1:查询和列表展示 HTML代码,列表展示只需要一个div标签 ,如下(div id="grid"><

Redis之五种数据类型的简单增删改查

开心一笑 乌龟受伤.让蜗牛去买药.过了2个小时.蜗牛还没回来.乌龟急了骂道:他妈的再不回来老子就死了!这时门外传来了蜗牛的声音:你他妈再说老子不去了! 提出问题 Redis五种数据类型的简单增删改查命令??? 解决问题 假设你已经安装Redis服务器: 假设你已经打开Redis cli命令行工具: 假设你对Redis有所了解: Redis简单增删改查例子 例一:字符串的增删改查 #增加一个key为ay_key的值 127.0.0.1:6379> set ay_key "ay" O

Linq to SQL 简单增删改查

Linq to SQL 简单增删改查 用Linq大大减少了对数据库的一般操作所需的编码量. 运行下面事例之前,首先建一个叫做Alien的数据库表. CREATE TABLE [dbo].[Aliens](    [Id] [int] IDENTITY(1,1) NOT NULL primary key,    [Name] [nchar](10) NULL,) 建一个console项目,在项目里添加一个Linq To Sql类文件(.dbml以及两个附属文件),把Alien表从服务器资源管理器拖

Asp.net Core 2.1使用 EF Core 简单增删改查操作数据库

Asp.net Core 2.1使用 EF Core 简单增删改查操作数据库 大概步骤如下5步: 1.创建项目(Asp.net Core 2.1项目) 2.项目使用EF Core 3.建立实体 4.生成迁移文件(生成数据库) 5.使用VS工具生成视图.控制器代码 示例代码下载  https://github.com/ZhMartincheng/NetCoreDemo.git 1.创建项目(Asp.net Core 2.1项目) 选择.net core 版本2.1 基础项目创建成功 2.项目使用E

[android] sql语句实现数据库的增删改查

Javaweb实现增删改查的步骤,1.加载jdbc的驱动,2.连接到数据库 3.准备sql语句, Android中加载驱动已经完成了,拿到数据库的引用就是链接数据库了. 获取SQLitedatabase 对象,调用上一节中helper对象的getWritableDatabase()方法 调用SQLitedatabase 对象的execSQL()方法,执行sql语句 例如:insert into person (name) values(”taoshihan”) Select * from per

BootStrap DataTables Spring MVC简单增删改查实例

1 <!DOCTYPE html> 2 <%@ page contentType="text/html;charset=gbk" language="java" %> 3 <%@page isELIgnored="false" %> 4 <meta name="viewport" content="width=device-width, initial-scale=1&quo

MySQL数据库学习笔记(八)----JDBC入门及简单增删改查数据库的操作

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4050825.html 联系方式:[email protected] [正文]