安卓开发培训(3.3 SQLite的使用方法)
2016-04-20 14:25
288 查看
在开发中常常需要将一些内容本地保存,比如获取的新闻列表等,这类数据不方便使用键值对存取,更不适合使用文件存取,最方便的办法是使用SQLlite,SQLite是一套轻量化的数据库,可以使用大部分的SQL语句进行查询。
在使用SQLlite时,可以首先创建一个工具类MySQLiteHelper,代码如下:
public class MySQLiteHelper extends SQLiteOpenHelper {
private Context mContext;
public MySQLiteHelper(Context context, String name, CursorFactory factory, int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
mContext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String create = "";
db.execSQL("create table news (id integer primary key autoincrement, title text, info text)");
Log.e("panda","created");
}
@Override
public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS news");
Log.e("panda","这个东西要被更新了");
this.onCreate(db);
}
}当新的数据库被创建时,会执行onCreate方法,而当之后在执行时就仅仅获取数据库对象,因此,如果想要在后期对数据库进行修改,就需要使用onUpgrade方法中的内容了。然后在ACTIVITY中执行数据库的操作。
public class MainActivity extends Activity{
Button btn1,btn2,btn3,btn4,btn5;
private MySQLiteHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button)findViewById(R.id.button1);
btn2 = (Button)findViewById(R.id.button2);
btn3 = (Button)findViewById(R.id.button3);
btn4 = (Button)findViewById(R.id.button4);
btn5 = (Button)findViewById(R.id.button5);
dbHelper = new MySQLiteHelper(this, "news.db", null, 2);
btn1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
dbHelper.getWritableDatabase();
}
});
btn2.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("title", "这个是文章标题");
values.put("info", "这个是文章内容");
db.insert("news", null, values);
Log.e("cat", "插入了一条数据");
}
});
btn3.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM news", null);
if(cursor.moveToFirst()){
do{
int id = cursor.getInt(cursor.getColumnIndex("id"));
String title = cursor.getString(cursor.getColumnIndex("title"));
String info = cursor.getString(cursor.getColumnIndex("info"));
Log.e("cat", id + "||" + title + "||" + "" + info);
}while(cursor.moveToNext());
}
}
});
btn4.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("title", "123456");
db.update("news", values, "title = ?", new String[]{"这个是文章标题"});
}
});
btn5.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.delete("news", "title = ?", new String[]{"123456"});
}
});
}
}
不难看出,在activity中一共有5个按钮,分别对应着1-5五个button。
应该都比较容易看懂就不解释了,除此之外,数据的更新和删除等都是可以直接通过SQL语句进行操作的,像这个样子:
Cursor cursor = db.rawQuery("SELECT * FROM news", null);
代码在这里下载。
在使用SQLlite时,可以首先创建一个工具类MySQLiteHelper,代码如下:
public class MySQLiteHelper extends SQLiteOpenHelper {
private Context mContext;
public MySQLiteHelper(Context context, String name, CursorFactory factory, int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
mContext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String create = "";
db.execSQL("create table news (id integer primary key autoincrement, title text, info text)");
Log.e("panda","created");
}
@Override
public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS news");
Log.e("panda","这个东西要被更新了");
this.onCreate(db);
}
}当新的数据库被创建时,会执行onCreate方法,而当之后在执行时就仅仅获取数据库对象,因此,如果想要在后期对数据库进行修改,就需要使用onUpgrade方法中的内容了。然后在ACTIVITY中执行数据库的操作。
public class MainActivity extends Activity{
Button btn1,btn2,btn3,btn4,btn5;
private MySQLiteHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button)findViewById(R.id.button1);
btn2 = (Button)findViewById(R.id.button2);
btn3 = (Button)findViewById(R.id.button3);
btn4 = (Button)findViewById(R.id.button4);
btn5 = (Button)findViewById(R.id.button5);
dbHelper = new MySQLiteHelper(this, "news.db", null, 2);
btn1.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
dbHelper.getWritableDatabase();
}
});
btn2.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("title", "这个是文章标题");
values.put("info", "这个是文章内容");
db.insert("news", null, values);
Log.e("cat", "插入了一条数据");
}
});
btn3.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM news", null);
if(cursor.moveToFirst()){
do{
int id = cursor.getInt(cursor.getColumnIndex("id"));
String title = cursor.getString(cursor.getColumnIndex("title"));
String info = cursor.getString(cursor.getColumnIndex("info"));
Log.e("cat", id + "||" + title + "||" + "" + info);
}while(cursor.moveToNext());
}
}
});
btn4.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("title", "123456");
db.update("news", values, "title = ?", new String[]{"这个是文章标题"});
}
});
btn5.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.delete("news", "title = ?", new String[]{"123456"});
}
});
}
}
不难看出,在activity中一共有5个按钮,分别对应着1-5五个button。
应该都比较容易看懂就不解释了,除此之外,数据的更新和删除等都是可以直接通过SQL语句进行操作的,像这个样子:
Cursor cursor = db.rawQuery("SELECT * FROM news", null);
代码在这里下载。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories