sqlite 增删改查附代码
一、进入数据库
命令行输入下列命令进入数据库
1.adb
2.adb shell
3.cd data
4.cd data
5.cd [包名]
6.创建数据库后
7.cd databases
8.sqlite3 [数据库名]
即数据库存放在/data/data/[包名]/databases/路径下
常用命令
.schema 查看当前数据库中有哪些表
查看表中数据 select * from [tablename];
二、知识点
1、public void execSQL(String sql);
执行单个SQL语句,但不能执行SELECT和其他有返回值的SQL语句;
2、SQL语句
语句:create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
说明:tabname——表名,col1,col2——字段名(即列名),not null——该字段非空,primary key——主键(某条记录的唯一标识符)。
3、public long insert (String table, String nullColumnHack, ContentValues values)
注:插入记录,table——表名,nullColumnHack——强行插入null值的字段(列名),values——一行记录的数据。
4、public int update (String table, ContentValues values, String whereClause, String[] whereArgs)
注:更新数据库中数据;table——想要更新的表名,values——想要更新的数据,whereClause——满足该whereClause子句的记录将会被更新,whereArgs——为whereClause传入参数。(可理解为:在表table中,根据whereClause和whereArgs查找出数据,更新为values)
如:更新person_inf表中所有主键大于20的人的人名,
ContentValues values = new ContentValues();
values.put(“name”,“新人名”);
int result = db.update(“person_inf”,values,”_id > ?”, new Integer[]{20});
5、public Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy)
注:查询,详情见帮助。
6.SQLiteOpenHelper类中的onCreate方法
public abstract void onCreate (SQLiteDatabase db);
当调用SQliteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获取用于操作数据库的SQLiteDatabase实例时,如果数据库不存在,Android系统会自动生成一个数据库,接着调用onCreta方法,onCreate方法在初次生成数据库时才被调用。
即:getWritableDatabase()、getReadableDatabase()在获取实例时,数据库不存在则创建,存在则不创建;而onCreate方法是第一次创建时自动调用的方法。因此,可重写该方法初始化数据表结构及数据等。
三、数据库版本version必须是正数!
四、掌握数据库操作的两个类SQLiteDatabase和SQLiteOpenHelper即可!
五、再理解数据库和表的创建
六、实例代码
package com.lucus.erseventh;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper{
private final static String DB_NAME = "erSeventh.db";//数据库名称
private final static String TABLE_NAME = "erSeventhTable";//表名称
public final static String FIELD_ID="_id";//表列名,主键
public final static String FIELD_EVENT_NAME="eventName";//表列名
public final static String FIELD_REMIND_TIME="remindTime";//表列名
/**在SQLiteOpenHelper的子类中,必须有该构造函数;context即activity对象,name即数据库名*/
public DatabaseHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, DB_NAME, factory, version);//调用父类的构造函数
// TODO Auto-generated constructor stub
}
/**在SQLiteOpenHelper的子类中,必须有该构造函数;context即activity对象,name即数据库名*/
/**该函数是在第一次创建数据库时执行,调用getWritableDatabase()或getReadableDatabase()方法时自动调用*/
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String sql = " create table " +
TABLE_NAME +
" ( " +
FIELD_ID +
" integer primary key, " + //注意"前后有空格!!!
FIELD_EVENT_NAME +
" varchar, " +
FIELD_REMIND_TIME +
" varchar ) ";
db.execSQL(sql);
// db.execSQL("create table evtesttable(_id int primary key,eventName varchar(20)),remindTime varchar(20)");
// db.execSQL("create table eventName(_id int primary key,eventName varchar(20))");
System.out.println("Create a table");
}
/**该函数是在第一次创建数据库时执行,调用getWritableDatabase()或getReadableDatabase()方法时自动调用*/
/**插入*/
public void insert(String myEventName, String myRemindTime)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(FIELD_EVENT_NAME, myEventName);
cv.put(FIELD_REMIND_TIME, myRemindTime);
db.insert(TABLE_NAME, null, cv);//第二个参数为null,主键自增1
db.close();
System.out.println("Insert data");
}
/**插入*/
/**修改,修改FIELD_ID为id的记录,修改该记录的FIELD_EVENT_NAME和FIELD_REMIND_TIM*/
public void update(int id,String newEventName,String newRemindTime)
{
SQLiteDatabase db = this.getWritableDatabase();
String where = FIELD_ID + "=?";
String[] whereValue = {Integer.toString(id)};
ContentValues cv=new ContentValues();
cv.put(FIELD_EVENT_NAME, newEventName);
cv.put(FIELD_REMIND_TIME, newRemindTime);
db.update(TABLE_NAME, cv, where, whereValue);
System.out.println("Modify data");
}
/**修改,修改FIELD_ID为id的记录,修改该记录的FIELD_EVENT_NAME和FIELD_REMIND_TIM*/
/**删除,删除FIELD_ID为id的记录*/
public void delete(int id)
{
SQLiteDatabase db=this.getWritableDatabase();
String where=FIELD_ID + "=?";
String[] whereValue={Integer.toString(id)};
db.delete(TABLE_NAME, where, whereValue);
System.out.println("Delete data");
}
/**删除,删除FIELD_ID为id的记录*/
/**删除数据库?*/
public boolean deleteDBByName(String DBName) {
Context context = null;
context.deleteDatabase(DBName);
return false;
}
/**删除数据库?*/
/**获取游标*/
public Cursor getCursor()
{
SQLiteDatabase db=this.getWritableDatabase();
Cursor cursor=db.query(TABLE_NAME, null, null, null, null, null, null);
return cursor;
}
/**获取游标*/
/**查询,查询FIELD_ID为id的记录*/
public Cursor query(int id)
{
SQLiteDatabase db = this.getWritableDatabase();
String where = FIELD_ID + "=?";
String[] whereValue = {Integer.toString(id)};
Cursor cursor = db.query
(
TABLE_NAME,
new String []{"_id","eventName","remindTime"},
where,
whereValue,
null, null, null
);
return cursor;
}
/**查询,查询FIELD_ID为id的记录*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}//end class DatabaseHelper
转载于:https://blog.51cto.com/chinesefys/971420
sqlite 增删改查附代码相关推荐
- android 入门 006(sqlite增删改查)
android 入门 006(sqlite增删改查) package cn.rfvip.feb_14_2_sqlite;import android.content.Context; import a ...
- easyui增删改查前段代码
easyui增删改查前段代码 <script>var url;//添加用户窗体 function newUser(){$('#dlg').dialog('open').dialog('se ...
- VUE2.0增删改查附编辑添加model(弹框)组件共用
为什么80%的码农都做不了架构师?>>> Vue实战篇(增删改查附编辑添加model(弹框)组件共用) 前言 最近一直在学习Vue,发现一份crud不错的源码 预览链接 https: ...
- SQLite 增删改查
一. 打开Eclipse,连接安卓设备 博主这里以Eclipse自带的模拟器为例 新建模拟器 如图: 单击Create 如图: 单击OK 选中新建的模拟器 点击start 如图: 然后点击launch ...
- SQlite增删改查
SQlite从入门到入土 1.SQlite的增删改查 文章目录 SQlite从入门到入土 前言 一.SQlite简介和下载安装 二.简单操作 1.建一个表 2.增加数据 3.删除数据 4.修改数据 5 ...
- 增删改查java代码_程序员:听说你正在为天天写增删改查代码而烦恼
有相当多的一部分程序员一直都只接触业余应用的功能,天天写业务代码的程序员也被戏称为CURD程序员,CURD就是增(create).改(update).查(read).删(delete)的意思. CUR ...
- JDBC的DML增删改查的代码重构设计(上)
1 设计商品对象 public class Product {private Long id;private String productName;private String brand;priva ...
- python对sqlite增删改查_Python操作sqlite3数据库 增删改查
SQLite,是一款轻型的数据库,占用资源非常的低.这里记录下对sqlite3的增删改查相关操作,顺便复习一下SQL语句- -. 一.创建数据库 连接到一个现有的数据库.如果数据库不存在,那么它就会被 ...
- mysql分析表增删改统计_MySQL增删改查|附思维导图
对于数据库的学习,增删改查一直是我们老师啰嗦的重点,他说(原话):对于常用sql语法我们一定要牢记于心,尤其是各种查询的用法,在面试的时候,一个小小的知识点,面试官都可以推断出求职者的基础是否扎实. ...
最新文章
- rsync文件同步的两种方式——ssh协议和守护进程(端口873)
- Matlab:成功解决Undefined function or variable B
- vuex报错: [vuex] Expects string as the type, but found undefined.
- SENetSKNet 解读
- qt 嵌入web页面_Qt嵌入浏览器(三)——QWebEngine与Https
- 斐波那契数java实现_斐波那契数列Java实现[剑指offer]
- linux centos7 r安装,如何在CentOS 7上安装R
- 2.3Python基础语法(三)之输入输出
- Eureka实例自动过期
- 巴塞尔问题欧拉解法逐步推导与分析
- C++ 中的数学计算函数
- JQuery学习之一:(加载函数,获取画面元素,一些简单的函数【each】【find】【focuse】【blur】)
- 中航信E-Build基础API使用实例
- 实时数据流采集工具Flume
- Visual Studio——使用多字节字符集与使用Unicode字符集
- pcb焊接的一些技巧
- html5视频播放器 知乎,6款让人赞不绝口的电脑软件,知乎超10W人推荐,建议悄悄收藏...
- el-element使用本地自定义图标
- 通过Requst进行12306查票(2022-09-10)
- 基于opencv的SVM车牌号码识别模型训练(C++)QT