android中SQLite的使用记录

参考网址: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中修改

  1. <style name="AppTheme" parent="AppBaseTheme">  
  2.     <!-- All customizations that are NOT specific to a particular API-level can go here. -->  
  3.     <item name="android:windowActionBar">false</item>  
  4. </style>  

异常android.database.CursorIndexOutOfBoundsException: Index 6 requested, with a size of 6:找到问题了cursor.move(i);应该为cursor.moveToPosition(i);



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值