http://tool.oschina.net/apidocs/apidoc?api=android/reference
详细的API文档
1.每个程序都有自己的数据库,默认情况下互不干扰
2.在查看自己创建的数据库时遇到了小插曲,打开的file explore时空白的,上网搜了一下,换了个API23的模拟器就ok了。
3.数据库存盘
file explore那行右边的两个黑色按钮,点击靠左的那个就可以存盘
一小段代码
package com.example.lenovo.sqlitedemo1;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//每个程序都有自己的数据库,默认情况下互不干扰
//创建数据库
/*
Parameters:
1.自己定义的数据库名字
2.访问模式
3.工厂类
*/
SQLiteDatabase db=openOrCreateDatabase("user.db",MODE_PRIVATE,null);
//创建了一个表
db.execSQL("create table if not exists usertb (_id integer primary key autoincrement, name text not null, age integer not null, sex text not null) ");
db.execSQL("insert into usertb(name,sex,age) values('张昊雨','男',20)");
db.execSQL("insert into usertb(name,sex,age) values('郑道翔','男',19)");
db.execSQL("insert into usertb(name,sex,age) values('安晨阳','男',20)");
db.execSQL("insert into usertb(name,sex,age) values('秦鸿俊','男',21)");
/*
Cursor时安卓查询数据后得到的一个管理数据集合的类
*/
Cursor cursor=db.rawQuery("select * from usertb",null);
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","age:"+cursor.getInt(cursor.getColumnIndex("age")));
Log.i("info","sex:"+cursor.getString(cursor.getColumnIndex("sex")));
}
cursor.close();//释放游标
}
db.close();//释放数据库
}
}
建议使用下面这个类进行数据库操作
一小段用ContextValues的代码
package com.example.lenovo.sqlitedemo2;
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;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获得数据库对象
SQLiteDatabase db=openOrCreateDatabase("stu.db",MODE_PRIVATE,null);
//创建了一个表
db.execSQL("create table if not exists stutb (_id integer primary key autoincrement, name text not null, age integer not null, sex text not null) ");
/*
用ContentValues存储,类似HashMap 的key value键值对
*/
ContentValues values=new ContentValues();
values.put("name","张昊雨");
values.put("age",20);
values.put("sex","男");
db.insert("stutb",null,values);//insert()方法会返回一个long类型的值,表示插入在第几行
values.clear();//清空数据
values.put("name","郑道翔");
values.put("age",19);
values.put("sex","男");
db.insert("stutb",null,values);//insert()方法会返回一个long类型的值,表示插入在第几行
values.clear();//清空数据
values.put("name","安晨阳");
values.put("age",20);
values.put("sex","男");
db.insert("stutb",null,values);//insert()方法会返回一个long类型的值,表示插入在第几行
values.clear();//清空数据
values.put("name","秦鸿俊");
values.put("age",21);
values.put("sex","男");
db.insert("stutb",null,values);//insert()方法会返回一个long类型的值,表示插入在第几行
values.clear();//清空数据
values.put("sex","中性");
db.update("stutb",values,"_id>?",new String[]{"3"});//将id大于3的人性别改成中性
db.delete("stutb","name like ?",new String[]{"%阳%"});//删除所有名字中带有阳的人
//获得查询到的数据集合
Cursor c=db.query("stutb",null,"_id>?",new String[]{"0"},null,null,"name");
if(c!=null){
String [] columns=c.getColumnNames();
while(c.moveToNext()){
for(String columnName :columns){
Log.i("main",c.getString(c.getColumnIndex(columnName)));
}
}
c.close();
}
db.close();
}
}
SQLiteOpenHelper
一段代码
MainActivity.java
package com.example.lenovo.sqlitedemo3;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DBOpenHelper helper=new DBOpenHelper(MainActivity.this,"stu.db",null,1);
//helper.getReadableDatabase();//获取一个只读的数据库,只能查询,不能写入
SQLiteDatabase db=helper.getWritableDatabase();//获取一个可读写数据库
Cursor cursor=db.rawQuery("select * from stutb",null);
if(cursor!=null){
String [] cols = cursor.getColumnNames();//得到数据库有哪些列名
while(cursor.moveToNext()){
for(String ColumnName : cols){//遍历每列的内容
Log.i("info",ColumnName+":"+cursor.getString(cursor.getColumnIndex(ColumnName)));
}
}
cursor.close();
}
db.close();
}
}
DBOpenHelper.java
package com.example.lenovo.sqlitedemo3;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* Created by lenovo on 2018/3/25.
*/
public class DBOpenHelper extends SQLiteOpenHelper {
public DBOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, 1);
}
/*
首次创建数据库时调用,一般可以把建库建表的操作放在这里执行
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table if not exists stutb (_id integer primary key autoincrement,name text not null,sex text not null,age integer not null)");
db.execSQL("insert into stutb(name,sex,age)values('张昊雨','男',20)");
}
/*
当数据库的版本发生变化时会自动执行
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}