Android四大组件-SQLite数据库操作
来源:互联网 发布:一对一远程教学软件 编辑:程序博客网 时间:2024/06/10 14:23
Android中操作SQLite数据库有两种方法
第一种
利用SQLiteDatabase创建
//创建一个叫mytest.db的数据库,可以不用加后缀.db,这样写考虑到导入到电脑查看方便SQLiteDatabase db= openOrCreateDatabase("mytest.db",MODE_PRIVATE,null);
第二种
利用DBOpenHelper来创建
首先先写一个DBOpenHelper类
代码如下
import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;/** * Created by TR on 2016/11/11. */public class DBOpenHelper extends SQLiteOpenHelper { private String name; public DBOpenHelper(Context context, String name) { super(context, name, null, 1); this.name=name; } public DBOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { //在这里写创建数据库语言,name就是数据名名字,(括号这里是属性) sqLiteDatabase.execSQL("create table if not exists "+this.name+"(_id integer primary key autoincrement,name text not null,age integer not null,sex text not null)"); // super.getDatabaseName(); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { } }
数据库操作
利用execSQL(sql);执行相应的sql语句进行操作
SQLiteDatabase db= openOrCreateDatabase("mytest.db",MODE_PRIVATE,null); db.execSQL("create table if not exists usertd(_id integer primary key autoincrement,name text not null,age integer not null,sex text not null)"); db.execSQL("insert into usertd(name,age,sex)values('张三',20,'man')"); db.execSQL("insert into usertd(name,age,sex)values('李四',20,'man')"); db.execSQL("insert into usertd(name,age,sex)values('王五',20,'man')");//查询 Cursor cursor=db.rawQuery("select * from usertd",null); ContentValues values=new ContentValues(); values.put("name","何华"); values.put("sex","男"); values.put("age",20); db.insert(TABLENAME,null,values); if(cursor!=null){ while(cursor.moveToNext()){ Log.i("info","_id"+cursor.getInt(cursor.getColumnIndex("_id"))); Log.i("info","name"+cursor.getString(cursor.getColumnIndex("name"))); Log.i("info","sex"+cursor.getString(cursor.getColumnIndex("sex"))); Log.i("info","age"+cursor.getInt(cursor.getColumnIndex("age"))); Log.i("info","!!!!!!!!!!!!!!!!1"); } cursor.close(); cursor.close(); }
利用insert()、delete()、update()来执行相应的sql语句进行操作
values.clear();
values.put("sex","女");
db.update(TABLENAME,values,"_id>?",new String[]{"3"});
db.delete(TABLENAME,"name like ?",new String[]{"%三%"});
Cursor c= db.query(TABLENAME,null,"_id>?",new String[]{"0"},null,null,"name");
//db.query()
Log.i("info","lllllll-----------");
if(c!=null){
while(c.moveToNext()){
Log.i("info","_id"+c.getInt(c.getColumnIndex("_id")));
Log.i("info","name"+c.getString(c.getColumnIndex("name")));
Log.i("info","sex"+c.getString(c.getColumnIndex("sex")));
Log.i("info","age"+c.getInt(c.getColumnIndex("age")));
Log.i("info","!!!!!!!!!!!!!!!!1");
}
c.close();
}
DBOpenHelper helper =new DBOpenHelper(MainActivity.this,"stu_db");
SQLiteDatabase dbb= helper.getWritableDatabase();
db.close();
//db.isOpen();
Cursor cc= dbb.rawQuery("select * from stu_db",null);
if(cc!=null){
while (cc.moveToNext()){
Log.i("info","rrrrrrrrrrrrrrrrrrrrrrrrrrr");
Log.i("info","_id"+cc.getInt(cc.getColumnIndex("_id")));
Log.i("info","name"+cc.getString(cc.getColumnIndex("name")));
Log.i("info","sex"+cc.getString(cc.getColumnIndex("sex")));
Log.i("info","age"+cc.getInt(cc.getColumnIndex("age")));
Log.i("info","rrrrrrrrrrrrrrrrrrrrrrrrrrr");
}
}
完整代码
MainActivity.java
package com.example.tr.sqlite;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;public class MainActivity extends AppCompatActivity { public static final String TABLENAME ="usertd"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //每个程序都有一个数据,互不干扰 //创建数据库并打开 SQLiteDatabase db= openOrCreateDatabase("mytest.db",MODE_PRIVATE,null); db.execSQL("create table if not exists usertd(_id integer primary key autoincrement,name text not null,age integer not null,sex text not null)"); db.execSQL("insert into usertd(name,age,sex)values('张三',20,'man')"); db.execSQL("insert into usertd(name,age,sex)values('李四',20,'man')"); db.execSQL("insert into usertd(name,age,sex)values('王五',20,'man')");//查询 Cursor cursor=db.rawQuery("select * from usertd",null); ContentValues values=new ContentValues(); values.put("name","何华"); values.put("sex","男"); values.put("age",20); db.insert(TABLENAME,null,values); if(cursor!=null){ while(cursor.moveToNext()){ Log.i("info","_id"+cursor.getInt(cursor.getColumnIndex("_id"))); Log.i("info","name"+cursor.getString(cursor.getColumnIndex("name"))); Log.i("info","sex"+cursor.getString(cursor.getColumnIndex("sex"))); Log.i("info","age"+cursor.getInt(cursor.getColumnIndex("age"))); Log.i("info","!!!!!!!!!!!!!!!!1"); } cursor.close(); } values.clear(); values.put("sex","女"); db.update(TABLENAME,values,"_id>?",new String[]{"3"}); db.delete(TABLENAME,"name like ?",new String[]{"%三%"}); Cursor c= db.query(TABLENAME,null,"_id>?",new String[]{"0"},null,null,"name"); //db.query() Log.i("info","lllllll-----------"); if(c!=null){ while(c.moveToNext()){ Log.i("info","_id"+c.getInt(c.getColumnIndex("_id"))); Log.i("info","name"+c.getString(c.getColumnIndex("name"))); Log.i("info","sex"+c.getString(c.getColumnIndex("sex"))); Log.i("info","age"+c.getInt(c.getColumnIndex("age"))); Log.i("info","!!!!!!!!!!!!!!!!1"); } c.close(); } DBOpenHelper helper =new DBOpenHelper(MainActivity.this,"stu_db"); SQLiteDatabase dbb= helper.getWritableDatabase(); db.close(); //db.isOpen(); Cursor cc= dbb.rawQuery("select * from stu_db",null); if(cc!=null){ while (cc.moveToNext()){ Log.i("info","rrrrrrrrrrrrrrrrrrrrrrrrrrr"); Log.i("info","_id"+cc.getInt(cc.getColumnIndex("_id"))); Log.i("info","name"+cc.getString(cc.getColumnIndex("name"))); Log.i("info","sex"+cc.getString(cc.getColumnIndex("sex"))); Log.i("info","age"+cc.getInt(cc.getColumnIndex("age"))); Log.i("info ","rrrrrrrrrrrrrrrrrrrrrrrrrrr"); } } }}
DBOpenHelper.java
package com.example.tr.sqlite;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;/** * Created by TR on 2016/11/11. */public class DBOpenHelper extends SQLiteOpenHelper { private String name; public DBOpenHelper(Context context, String name) { super(context, name, null, 1); this.name=name; } public DBOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version); } @Override }@Overridepublic void onCreate(SQLiteDatabase sqLiteDatabase) { sqLiteDatabase.execSQL("create table if not exists "+this.name+"(_id integer primary key autoincrement,name text not null,age integer not null,sex text not null)"); sqLiteDatabase.execSQL("insert into "+this.name+"(name,age,sex)values('test',20,'notclear')"); // super.getDatabaseName(); @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { }}
- Android四大组件-SQLite数据库操作
- SQLite数据库存储、Android四大组件
- Iphone Sqlite 数据库的四大操作
- Iphone Sqlite 数据库的四大操作
- Android四大组件之一:contentprovider & 三大存储方式之一:SQLite数据库存储 应用实例
- android sqlite数据库操作
- Android数据库操作--------SQLite
- android数据库SQLite操作
- android 数据库 sqlite 操作
- android SQLite数据库操作
- Android SQLite数据库操作
- Android SQLite数据库操作
- Android sqlite 数据库操作
- Android操作Sqlite数据库
- Android sqlite 数据库操作
- android操作sqlite数据库
- android sqlite 数据库操作
- Android-操作SQLite数据库
- php 数组遍历的问题
- 使用CSDN-markdown编辑器的第一个博客
- 360加固保的dex脱壳方法
- Android 环境配置出现的各种问题
- kafka系列(六)---kafka安装配置与简单测试
- Android四大组件-SQLite数据库操作
- Framework 工作方式及原理,Activity 是如何生成一个 view 的机制是什么?
- 《大话西游》
- 跳转到APP的详情界面(在设置里面的详情信息)
- MINI CC3D穿越机装机连线图详解(一)
- 15 个 Android 通用流行框架大全
- 安装PIL
- 装饰模式
- css html中单行或多行文本溢出显示省略号