android SQLite数据库的增删改查
2015-08-25 16:21
501 查看
先定义一个数据库帮助类
package com.cwj.sqlite825;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class PersonSQLiteOpenHelper extends SQLiteOpenHelper {
public PersonSQLiteOpenHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
//第一次创建数据库时调用的方法
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("create table person (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
}
}
写一个dao接口实现增删改查的功能,具体如下
package com.cwj.sqlite825.dao;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.cwj.sqlite825.PersonSQLiteOpenHelper;
import com.cwj.sqlite825.domain.Person;
public class PersonDao {
private PersonSQLiteOpenHelper sqlHelper;
public PersonDao(Context context) {
sqlHelper = new PersonSQLiteOpenHelper(context, "cwj.db", null, 1);
}
/**
* 添加一条记录到数据库
*
* @param name
* @param number
*/
public void add(String name, String number) {
SQLiteDatabase db = sqlHelper.getWritableDatabase();
db.execSQL("insert into person (name,number)values(?,?)", new Object[] {
name, number });
db.close();
}
/**
* 查
* @param name
* @return
*/
public String find(String name) {
String res = "";
SQLiteDatabase db = sqlHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select number from person where name=?",
new String[] { name });
if (cursor.moveToNext())
;
{
res = cursor.getString(0);
}
cursor.close();
db.close();
return res;
}
/**
* 修改信息
*
* @param name
*/
public void updateNumberByName(String name, String number) {
SQLiteDatabase db = sqlHelper.getWritableDatabase();
db.execSQL("update person set number=? where name=?", new Object[] {
name, number });
db.close();
}
/**
* 删除数据
*
* @param name
*/
public void deleteByName(String name) {
SQLiteDatabase db = sqlHelper.getWritableDatabase();
db.execSQL("delete from person where name=?", new Object[] { name });
db.close();
}
/**
* 查找所有的记录
* @return
*/
public List<Person> findAll() {
List<Person> res = new ArrayList<Person>();
SQLiteDatabase db = sqlHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from person", null);
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String number = cursor.getString(cursor.getColumnIndex("number"));
Person p = new Person(id, name, number);
res.add(p);
}
cursor.close();
db.close();
return res;
}
}
博主最近学习android,分享一些学习心得。欢迎正在学习android的朋友一起学习探讨
package com.cwj.sqlite825;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class PersonSQLiteOpenHelper extends SQLiteOpenHelper {
public PersonSQLiteOpenHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
// TODO Auto-generated constructor stub
}
//第一次创建数据库时调用的方法
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL("create table person (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
}
}
写一个dao接口实现增删改查的功能,具体如下
package com.cwj.sqlite825.dao;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.cwj.sqlite825.PersonSQLiteOpenHelper;
import com.cwj.sqlite825.domain.Person;
public class PersonDao {
private PersonSQLiteOpenHelper sqlHelper;
public PersonDao(Context context) {
sqlHelper = new PersonSQLiteOpenHelper(context, "cwj.db", null, 1);
}
/**
* 添加一条记录到数据库
*
* @param name
* @param number
*/
public void add(String name, String number) {
SQLiteDatabase db = sqlHelper.getWritableDatabase();
db.execSQL("insert into person (name,number)values(?,?)", new Object[] {
name, number });
db.close();
}
/**
* 查
* @param name
* @return
*/
public String find(String name) {
String res = "";
SQLiteDatabase db = sqlHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select number from person where name=?",
new String[] { name });
if (cursor.moveToNext())
;
{
res = cursor.getString(0);
}
cursor.close();
db.close();
return res;
}
/**
* 修改信息
*
* @param name
*/
public void updateNumberByName(String name, String number) {
SQLiteDatabase db = sqlHelper.getWritableDatabase();
db.execSQL("update person set number=? where name=?", new Object[] {
name, number });
db.close();
}
/**
* 删除数据
*
* @param name
*/
public void deleteByName(String name) {
SQLiteDatabase db = sqlHelper.getWritableDatabase();
db.execSQL("delete from person where name=?", new Object[] { name });
db.close();
}
/**
* 查找所有的记录
* @return
*/
public List<Person> findAll() {
List<Person> res = new ArrayList<Person>();
SQLiteDatabase db = sqlHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from person", null);
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String number = cursor.getString(cursor.getColumnIndex("number"));
Person p = new Person(id, name, number);
res.add(p);
}
cursor.close();
db.close();
return res;
}
}
博主最近学习android,分享一些学习心得。欢迎正在学习android的朋友一起学习探讨
相关文章推荐
- Android CountDownTimer倒计时器的使用
- Android记录14--自定义Comparator,实现List按时间排序
- Android:ListView控件补充例子
- Android—ViewPager: Can't Change Tag of Fragment
- 解决Gradle DSL method not found: ‘android()’
- Android-基本控件(SeekBar 可拖动 滚动条的使用)
- android setCompoundDrawables和setCompoundDrawablesWithIntrinsicBounds区别
- android 学习笔记 创建自己的内容提供器
- Ubuntu平台下Android ADB驱动的安装
- Android-复制创建可操作的图片
- Android Studio 使用NDK编程
- android解析xml格式数据
- Android异步消息处理机制完全解析,带你从源码的角度彻底理解
- android MTK驱动背光唤醒流程
- 离线安装ADT 23.0.4遇到的问题与解决方法
- Android 触摸手势基础 官方文档概览
- AndroidStudio使用GreenDao实战
- 在Android程序中保存全局变量
- android 学习笔记 读取系统联系人
- Android-画廊实现 (Gallery , ImageSwitch)