简单SQLite的使用
2016-02-17 19:50
691 查看
简单描述一下Android SQLite的使用方法
第一步,创建一个Db类,该类继承字SQLiteOpenHelper,该类中与Activity一样,有一个onCreate方法,会在new的时候执行,我们在这里创建一张名为user的表,代码:
该类会在使用它 的类中创建一张表user
第二步创建Activity,初始化
获得数据库对象并通过该对象获得读写数据库的对象
向数据库写入一条数据
从数据库读取数据
其中c为游标Cursor类,获得数据后把数据塞进SimpleCursorAdapter中:
第一步,创建一个Db类,该类继承字SQLiteOpenHelper,该类中与Activity一样,有一个onCreate方法,会在new的时候执行,我们在这里创建一张名为user的表,代码:
String test = "create table user(" + "_id INTEGER PRIMARY KEY AUTOINCREMENT," + "name TEXT DEFAULT \"\"," + "sex TEXT DEFAULT \"\")";
该类会在使用它 的类中创建一张表user
第二步创建Activity,初始化
db = new Db(this); dbReader = db.getReadableDatabase(); dbWriter = db.getWritableDatabase();
获得数据库对象并通过该对象获得读写数据库的对象
向数据库写入一条数据
ContentValues cv = new ContentValues(); cv.put("name", nameEditText.getText().toString()); cv.put("sex", sexEditText.getText().toString()); dbWriter.insert("user", null, cv);
从数据库读取数据
c = dbReader.query("user", null, null, null, null, null, null);
其中c为游标Cursor类,获得数据后把数据塞进SimpleCursorAdapter中:
adapter = new SimpleCursorAdapter(this, R.layout.test_sqlite_item, c, new String[]{"name", "sex"}, new int[]{R.id.name, R.id.sex})
package com.example.huanghanqing.testsqlite;
import android.annotation.SuppressLint;
import android.content.Context;
import android.database.DatabaseErrorHandler;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
/**
* Created by huanghanqing on 2016/2/16.
*/
public class Db extends SQLiteOpenHelper {
public Db(Context context) {
super(context, "db", null, 1);
// TODO Auto-generated constructor stub
}
@SuppressLint("NewApi")
public Db(Context context, String name, SQLiteDatabase.CursorFactory factory, int version,
DatabaseErrorHandler errorHandler) {
super(context, name, factory, version, errorHandler);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
String test = "create table user(" + "_id INTEGER PRIMARY KEY AUTOINCREMENT," + "name TEXT DEFAULT \"\"," + "sex TEXT DEFAULT \"\")";
db.execSQL(test);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
package com.example.huanghanqing.testsqlite;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SimpleCursorAdapter;
import android.app.Activity;
import android.app.LauncherActivity.ListItem;
import android.app.ListActivity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.os.Build;
public class MainActivity extends ListActivity {
private Db db;
EditText nameEditText;
EditText sexEditText;
Button add;
SQLiteDatabase dbWriter;
SQLiteDatabase dbReader;
SimpleCursorAdapter adapter;
Cursor c;
ListView listView;
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
db = new Db(this); dbReader = db.getReadableDatabase(); dbWriter = db.getWritableDatabase();
nameEditText = (EditText) findViewById(R.id.editTextName);
sexEditText = (EditText) findViewById(R.id.editTextSex);
add = (Button) findViewById(R.id.add);
//listView = (ListView)findViewById(R.id.listView1);
c = dbReader.query("user", null, null, null, null, null, null);
adapter = new SimpleCursorAdapter(this, R.layout.test_sqlite_item, c, new String[]{"name", "sex"}, new int[]{R.id.name, R.id.sex});
setListAdapter(adapter);
add.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
ContentValues cv = new ContentValues(); cv.put("name", nameEditText.getText().toString()); cv.put("sex", sexEditText.getText().toString()); dbWriter.insert("user", null, cv);
refresh();
}
});
getListView().setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
// TODO Auto-generated method stub
return false;
}
});
}
public void refresh() {
c = dbReader.query("user", null, null, null, null, null, null);
adapter.changeCursor(c);
}
}
相关文章推荐
- Mysql“集群”和”主从“两者的区别
- 【原】Windows中使用Redis基本入门教程
- 使用 Redis 实现分布式锁
- MySql语句集合类
- 查询oracle表的信息(表,字段,约束,索引)
- zabbix如何监控mongodb
- SQL Delay 命令
- MYSQL集群
- Spark将计算结果写入到Mysql中
- SQL Server附加数据库时报1813错误的解决方案,Vmware 断电
- Mycat数据库中间件的安装与使用
- 消息队列服务器 memcacheq的搭建
- MYSQL死掉后自动重启脚本
- mysql主从
- mongodb 3.2版本基本管理
- javaweb JDBC连接Mysql与Oracle的比较及启示总结
- mysql下将分隔字符串转换为数组
- SQL DISTINCT 多字段查询用法
- 不同场景下 MySQL 的迁移方案
- mysql start slave 的until用法