Android Sqlite数据库增删改查操作
2015-08-10 17:46
501 查看
在Android中用的是Sqlite数据库,Sqlite数据库数据相对简单容易。一般用在移动终端。下面我们来创建一个contacts数据库,并对它执行增删改查的基本操作。Sqlite数据库的创建要利用SQLiteOpenHelper这个类。如下:
public
class ContactSqliteHelper extends SQLiteOpenHelper {
/**
* 数据库的名称 数据库查询的结果集 数据库的版本
* @param context
*/
public ContactSqliteHelper(Context context) {
super(context, "contacts.db", null, 1);
}
/**
* 数据库第一次被创建使用的方法
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table contacts (id integer primary key autoincrement,name varchar(20),number varchar(20))");
}
/**
* 数据库的更新方法
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
下面创建一个数据库的工具类,实现增删改查的四个方法:
public
class DatabaseUtils {
private ContactSqliteHelper helper = null;
public DatabaseUtils(ContactSqliteHelper helper){
this.helper =helper;
}
/**
* 增加操作
* @param name
* @param number
*/
public void add(String name,String number){
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL("insert into contacts(name,number) values(?,?)",new Object[]{name,number});
db.close();
}
/**
* 查找操作
* @param name
* @return
*/
public boolean find(String name){
SQLiteDatabase db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from contacts where name=?", new String[]{name});
boolean result = cursor.moveToNext();
db.close();
return result;
}
/**
* 删除操作
* @param name
*/
public void delete(String name){
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL("delete from contacts where name=?",new Object[]{name});
4000
db.close();
}
/**
* 更新操作
* @param name
* @param newnumber
*/
public void update(String name,String newnumber){
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL("update contacts set number=?where name=?",new Object[]{newnumber,name});
db.close();
}
}
在MainActivity中有四个按钮,分别实现点击事件。代码如下:
public
class MainActivity extends Activity {
ContactSqliteHelper helper = null;
DatabaseUtils utils;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
helper = new ContactSqliteHelper(this);
// 数据库被创建
helper.getWritableDatabase();
utils = new DatabaseUtils(helper);
}
/**
* 增加操作
*
* @param view
*/
public void insert(View view) {
utils.add("小红", "10086");
utils.add("小明", "12345");
utils.add("小亮", "21147");
}
/**
* 删除操作
*
* @param view
*/
public void delete(View view) {
utils.delete("小红");
}
/**
* 查询操作
*
* @param view
*/
public void search(View view) {
boolean number = utils.find("小亮");
}
/**
* 更新操作
*
* @param view
*/
public void update(View view) {
utils.update("小明", "44944");
}
}
布局文件如图:
利用linux终端来看下结果:
注:com.example.db为这个apk的包名,有时在
public
class ContactSqliteHelper extends SQLiteOpenHelper {
/**
* 数据库的名称 数据库查询的结果集 数据库的版本
* @param context
*/
public ContactSqliteHelper(Context context) {
super(context, "contacts.db", null, 1);
}
/**
* 数据库第一次被创建使用的方法
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table contacts (id integer primary key autoincrement,name varchar(20),number varchar(20))");
}
/**
* 数据库的更新方法
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
下面创建一个数据库的工具类,实现增删改查的四个方法:
public
class DatabaseUtils {
private ContactSqliteHelper helper = null;
public DatabaseUtils(ContactSqliteHelper helper){
this.helper =helper;
}
/**
* 增加操作
* @param name
* @param number
*/
public void add(String name,String number){
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL("insert into contacts(name,number) values(?,?)",new Object[]{name,number});
db.close();
}
/**
* 查找操作
* @param name
* @return
*/
public boolean find(String name){
SQLiteDatabase db = helper.getWritableDatabase();
Cursor cursor = db.rawQuery("select * from contacts where name=?", new String[]{name});
boolean result = cursor.moveToNext();
db.close();
return result;
}
/**
* 删除操作
* @param name
*/
public void delete(String name){
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL("delete from contacts where name=?",new Object[]{name});
4000
db.close();
}
/**
* 更新操作
* @param name
* @param newnumber
*/
public void update(String name,String newnumber){
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL("update contacts set number=?where name=?",new Object[]{newnumber,name});
db.close();
}
}
在MainActivity中有四个按钮,分别实现点击事件。代码如下:
public
class MainActivity extends Activity {
ContactSqliteHelper helper = null;
DatabaseUtils utils;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
helper = new ContactSqliteHelper(this);
// 数据库被创建
helper.getWritableDatabase();
utils = new DatabaseUtils(helper);
}
/**
* 增加操作
*
* @param view
*/
public void insert(View view) {
utils.add("小红", "10086");
utils.add("小明", "12345");
utils.add("小亮", "21147");
}
/**
* 删除操作
*
* @param view
*/
public void delete(View view) {
utils.delete("小红");
}
/**
* 查询操作
*
* @param view
*/
public void search(View view) {
boolean number = utils.find("小亮");
}
/**
* 更新操作
*
* @param view
*/
public void update(View view) {
utils.update("小明", "44944");
}
}
布局文件如图:
利用linux终端来看下结果:
注:com.example.db为这个apk的包名,有时在
相关文章推荐
- Android动画Animation的两种加载执行方式
- android用SP,判断是否过了一天
- user interface, view 和activity究竟是啥?
- Activity重要知识总结
- Android处子Demo—简易的UC首页动画
- 文章标题
- 【Android进阶篇】自定义应用权限
- Arcgis Android 坐标转换
- Google 收购 Android 十周年 全面解读Android现状
- Android 第三方应用广告拦截实现
- android学习笔记(9)android程序调试学习
- Android中自定义Activity和Dialog的位置大小背景和透明度等
- 【姿势】Android 和 Mac 爆毁灭级安全漏洞
- Android屏幕适配全攻略(最权威的官方适配指导)
- Android 调试出现 could not get wglGetExtensionsStringARB
- Android--SlidingMenu 使用详解
- Android发送验证码的倒计时按钮
- Android工程结构
- Android(Java) 模拟登录知乎并抓取用户信息
- Android项目目录结构介绍