参考网址:http://blog.csdn.net/codeeer/article/details/30237597点击打开链接
1.继承SQLiteOpenHelper类:
public class DatabaseHelper extends SQLiteOpenHelper {
publicDatabaseHelper(Context context, String name, CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase db) {
//数据库创建时自动调用
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//版本升级时自动调用
}
@Override
public void onOpen(SQLiteDatabase db){
super.onOpen(db);
//数据库打开时调用
}
}
2.在Activity中new出来(可以根据读取或读写需求分别用getReadableDatabase()和getWritableDatabase()来创建数据库):
public class MainActivity extends Activity {
SQLiteDatabase database;
DatabaseHelper helper = newDatabaseHelper(MainActivity.this, "demo_db", null, 1);
database = helper.getWritableDatabase();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
3.创建表(将ID设置为主键并自增长,execSQL()方法需自己写SQL,可用于增删改查):
database.execSQL("CREATE TABLE user(id INTEGER PRIMARY KEY AUTOINCREMENT,name varchar(20))");
4.插入数据(需创建ContentValues实例):
ContentValues values = new ContentValues();
values.put("name", "admin");
//第一个参数是表名,第二个参数是插入null值列的列名,第三个参数是ContentValues对象--Map
lang rawId = database.insert("user", null, values);
插入数据失败:rawId=-1;
5.修改数据:
ContentValues newValues = new ContentValues();
newValues.put("name", "zhangsan");
database.update("user", newValues, "name=?", new String[]{"admin"});
6.删除数据:
database.delete("user", "name=?", new String[]{"zhangsan"});
7.查询数据:
参数说明:1.table/列名;2.columns/select 列名,列名... from;3.selection/where后面的语句;4.selectionArgs/行后面的参数;5.groupBy/group by后的语句;6.having/group by 列名 having ..;7.order by../排序
Cursor cursor = database.query("user", new String[]{"name id"}, "name=?", new String[]{"zhangsan"}, null, null, null);
while(cursor.moveToNext()){
String intnum=cursor.getString(cursor.getColumnIndex("id"));
}
8.修改版本号:
helper = newDatabaseHelper(MainActivity.this, "demo_db", null, 2);
database = helper.getWritableDatabase();
9.通过cmd访问SQLite数据库:
1、运行cmd,cd到android-sdk目录,运行adb.exe,加上参数shell,出现#号就代表进入了shell命令模式,注意adb要在Android模拟器运行时才能进入shell;
2、进入数据库所在目录:
shell命令记住两个基本命令ls和cd,类似windows命令提示行中的dir和cd,代表列出当前目录下文件列表和进入到指定目录。了解这两个命令之后,就可以找到data/data/项目包名/databases;
3、使用sqlite管理工具来进行数据库操作,键入sqlite3 数据库名就进入了sqlite管理模式了(sqlite3 demo_db)。
4、使用sqlite管理数据库:
sqlite命令行工具默认是以;结束语句的。所以如果只是一行语句,要在末尾加;,或者在下一行中键入;,这样sqlite命令才会被执行。
5、sqlite常用命令:.datavase--查看数据库信息
.tables--查看数据库的表列表
.exit--退出sqlite命令行
.schema 命令可以查看创建数据表时的SQL命令
.schema table_name 查看创建表table_name时的SQL的命令
PRAGMA table_info(tablename)查询表中所有列信息
显示列名和数据:sqlite>.headers on //之后所有的查询显示列名
sqlite>select * from 表名;
Android Activity的title的设置:http://blog.csdn.net/sunny2come/article/details/6988832?locationNum=5&fps=1
自定义Title报错 You cannot combine custom titles with other title feature:在style.xml中修改
- <style name="AppTheme" parent="AppBaseTheme">
- <!-- All customizations that are NOT specific to a particular API-level can go here. -->
- <item name="android:windowActionBar">false</item>
- </style>
异常android.database.CursorIndexOutOfBoundsException: Index 6 requested, with a size of 6:找到问题了cursor.move(i);应该为cursor.moveToPosition(i);