六 SQLite 数据库存储数据
来源:互联网 发布:java中的设计模式 编辑:程序博客网 时间:2024/06/05 18:01
目的:
=修改数据库里的内容
=创建数据库+写入
SQLiteOpenHelper作用:
=数据库打开帮助
=创建+升级
=帮写入?
=onCreate+onUpgrade
=db.execSQL+
=数据库起名并对设置其内容格式+
Activity作用:
=写入
=get数据库+增加Add(contentValues.put写下内容+insert插入到数据库 )
+游标query(查询)+删除delete+更新update(更改)
-----------------------------------------------------------------------------------------------------------
步骤:
1、创建SQLiteOpenHelper并继承
*新建文件夹 java-包-database
*新建类 extends
2、构造器
* super(context,数据库名,null,数据库版本 )
3、onCreate(SQLiteDatabase db)
*创建表格,并设计格式
db.execSQL("create table 表格名(内容名 varchar(字节数) not null,内容名 varchar(字节数) not null,))
3、onUpgrade(SQLiteDatabase db)
*升级的内容
-------------------------------------------------------------------------------------------------------
步骤:
1、创建Activity并继承
2、onCreate 并关联xml
3、引用数据库,并得到它
* new DatabaseHelper(this)
* .getWritableDatabase()
4、进行操作,如:
<1>增 add
* 新建键值对 new ContentValues();
* 写入到数据库 .put(数据库.内容标题,”内容“)
* 插入 .insert(表格名,null,contentValues)
<2>删 delete
* 找到 内容的名字 whereClauseString
* 找到内容 whereArgsString
* 删除 .delete(表格名,内容标题,内容)
<3>改 update
* 新建键值对 new ContentValues();
* 写入到数据库 .put(数据库.内容标题,”内容“)
* 找到 内容的名字 whereClauseString
* 找到内容 whereArgsString
* .update(表格名,contentValues, whereClauseString,whereArgsString)<4>查 query
* 一次性遍历完这个表格里所有的数据 cursor = .query(表格名,null,null,null,null,null,null)
*一个个遍历一遍 .moveToNext
从第一个开始找 if(cursor.moveToFirst())
得到之前遍历的条数 cursor.getCount()
得到内容标题,遍历 .getString(内容标题)
遍历(下一个) .moveToNext
<5>事务
* 开始事务 .beginTransaction
* 做你的操作 如: .execSQL()
* 设置成功 setTransactionSuccessful
* 关闭提交 .endTransaction
-------------------------------------------------------------------------------------------------
SQLiteOpenHelper
import android.content.Context;Activity
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String USER_TABLE_NAME = "user";
public static final String USERNAME = "username";
public static final String AGE = "age";
public static final String DATABASE_NAME = "test.db";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 2);
}
@Override
public void onCreate(SQLiteDatabase db) {//db.execSQL("create table 表格名(列名 varchar(20) not null,列名 varchar(20) not null);");
db.execSQL("create table " + USER_TABLE_NAME + "(" + USERNAME + " varchar(20) not null, " + AGE + " varchar(60) not null);");}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO: on database upgrade operation
}
}
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Toast;
import com.geekband.Test01.database.DatabaseHelper;
public class DatabaseButtonActivity extends AppCompatActivity {
private SQLiteDatabase mSqLiteDatabase;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_database);
DatabaseHelper databaseHelper = new DatabaseHelper(this);
mSqLiteDatabase = databaseHelper.getWritableDatabase();
// Add:
findViewById(R.id.add).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// IO操作,建议后台操作
ContentValues contentValues = new ContentValues();
contentValues.put(DatabaseHelper.USERNAME, "小明");
contentValues.put(DatabaseHelper.AGE, "1岁");
long rowNumber = mSqLiteDatabase.insert(DatabaseHelper.USER_TABLE_NAME, null , contentValues);
if(rowNumber != -1){
Toast.makeText(DatabaseButtonActivity.this, "插入成功", Toast.LENGTH_SHORT).show();
}
// query :
// 游标
Cursor cursor = mSqLiteDatabase.query(DatabaseHelper.USER_TABLE_NAME,null,null,null,null,null,null);Log.i(MainActivity.class.getSimpleName(), i + ":"+userName+"|"+age+".");
/*if(cursor!=null&&cursor.moveToFirst()){}
int count = cursor.getCount();
for (int i = 0; i < count; i++) {
String userName = cursor.getString(cursor.getColumnIndexOrThrow(DatabaseHelper.USERNAME));
String age = cursor.getString(cursor.getColumnIndexOrThrow(DatabaseHelper.AGE));
cursor.moveToNext();//一个个遍历完
Log.i(MainActivity.class.getSimpleName(), i + ":"+userName+"|"+age+".");
}*/
});
findViewById(R.id.delete).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// delete:
String whereClauseString = "username=?";
String[] whereArgsString = {"小明"};
mSqLiteDatabase.delete(DatabaseHelper.USER_TABLE_NAME, whereClauseString, whereArgsString);
}
});
// update
ContentValues contentValues = new ContentValues();
contentValues.put(DatabaseHelper.AGE, "100岁");
String whereClauseString = "username=?";
String[] whereArgsString = {"小明"};
mSqLiteDatabase.update(DatabaseHelper.USER_TABLE_NAME,contentValues, whereClauseString, whereArgsString);
事务
//插入10000條數據
//開始事務 此時db會被鎖定
mSqLiteDatabase.beginTransaction();
try {
//做你的操作
for (int i = 0; i < 1000; i++) {
mSqLiteDatabase.execSQL("insert into user(username,age) values ('liu do ming','5歲')");
}
mSqLiteDatabase.setTransactionSuccessful();
} catch (Exception e) {
e.printStackTrace();
} finally {
mSqLiteDatabase.endTransaction();
}
}
0 0
- 六 SQLite 数据库存储数据
- Android数据存储(六)、SQLite数据库使用实例
- SQLite数据库存储数据
- SQLite数据库存储数据
- SQLite数据库存储数据
- SQLite数据库存储数据
- SQLite数据库存储数据
- SQLite数据库存储数据
- SQLite数据库存储数据
- SQLite数据库存储数据
- SQLite数据库存储数据
- Sqlite数据库存储数据
- android-数据存储-SQLite数据库
- 使用SQLite数据库存储数据
- android-SQLite数据库存储数据
- android数据存储----SQLite数据库
- 创建sqlite数据库存储数据
- iOS数据存储--SQLite数据库
- Android源码解析——AsyncTask
- 人生不设限 没有不可能
- POJ 1101(BFS)
- 【Linux学习笔记五】用户与用户组管理
- 20160501
- 六 SQLite 数据库存储数据
- design pattern
- android 创建简单通用工程
- 使用android创建安卓项目工程或者创建安卓测试项目工程命令详解
- 六、类和对象
- IDEA导入web项目时Tomcat的配置
- JMX-JAVA进程监控利器
- 跳坑(2)
- 跨域 - JSONP