android系统操作数据库的方法

本文提供了一个使用 Android SQLite 进行数据库操作的完整示例,包括创建数据库、增删改查等核心功能。
package com.example.db;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class PersonSQLiteOpenHelper extends SQLiteOpenHelper {

	public PersonSQLiteOpenHelper(Context context) {
		//"personDatabase"参数为数据库名
		super(context, "personDatabase", null, 1);
	}

	//第一次新建数据库时调用的方法
	public void onCreate(SQLiteDatabase db) {
		db.execSQL("create table person(id integer primary key, name varchar(12), number varchar(22))");
	}

	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
	
	}
}


package com.example.db;

import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import com.example.db.dao.PersonDao;
import com.example.db.domain.Person;

public class MainActivity extends Activity implements OnClickListener {
	private Button button;
	private PersonDao dao;
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		button = (Button) findViewById(R.id.button);
		button.setOnClickListener(this);
	}
	public void onClick(View v) {
		dao = new PersonDao(this);
		List<Person> persons = new ArrayList<Person>();
		persons = dao.findAll();
		for (Person person: persons) {
			System.out.println(person.toString());
		}
	}
}


package com.example.db.dao;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import com.example.db.PersonSQLiteOpenHelper;
import com.example.db.domain.Person;

public class PersonDao {
	SQLiteOpenHelper helper;
	public PersonDao(Context context) {
		helper = new PersonSQLiteOpenHelper(context);
	}
	
	//插入一条信息到数据库
	public long add(String name, String number, int id) {
		SQLiteDatabase db = helper.getWritableDatabase();
		ContentValues values = new ContentValues();
		values.put("name", name);
		values.put("number", number);
		values.put("id", id);
		long result = db.insert("person", null, values);
		db.close();
		return result;
	}
	
	//查询一条信息是不是存在	
	public boolean find(String name) {
		SQLiteDatabase db = helper.getReadableDatabase();
		//返回结果集
		Cursor cursor = db.query("person", null, "name=?", new String[]{name}, null, null, null);
		//curosr.moveToNext()查询指向当前的记录是不是存在,存在返回true,不存在返回false;
		boolean result = cursor.moveToNext();
		db.close();
		return result;
	}

	//更新一条信息		
	public int update(String name, String newnumber) {
		SQLiteDatabase db = helper.getWritableDatabase();
		ContentValues values = new ContentValues();
		values.put("number", newnumber);
		//number为返回更新的行数
		int id = db.update("person", values, "name=?", new String[]{name});
		db.close();
		return id;
	}
	
	//删除一条信息
	public int delete(String name) {
		SQLiteDatabase db = helper.getWritableDatabase();
		//number返回删除的行数
		int id = db.delete("person", "name=?", new String[]{name});
		db.close();
		return id;
	}
	
	//反回全部数据查询信息
	public List<Person> findAll() {
		SQLiteDatabase db = helper.getReadableDatabase();
		//查询所有内容返回到cursor结果集
		Cursor cursor = db.query("person", new String[]{"name","id","number"}, null, null, null, null, null);
		List<Person> persons = new ArrayList<Person>();
		//cursor.moveToNext()向下移动一行位置
		while (cursor.moveToNext()) {
			//查询当前的那一行id在的那一列的值出来
			int id = cursor.getInt(cursor.getColumnIndex("id"));
			//查询当前的那一行number在的那一列的值出来
			String name = cursor.getString(cursor.getColumnIndex("name"));
			String number = cursor.getString(cursor.getColumnIndex("number"));
			Person p = new Person(id, name, number);
			persons.add(p);
		}
		return persons;
	}
}



全部代码:

package com.example.db;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class PersonSQLiteOpenHelper extends SQLiteOpenHelper {

	public PersonSQLiteOpenHelper(Context context) {
		super(context, "person", null, 1);
	}

	public void onCreate(SQLiteDatabase db) {
		db.execSQL("create table person(id integer primary key, name varchar(12), number varchar(22))");
	}

	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
	
	}
}


package com.example.db;

import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.example.db.dao.PersonDao;
import com.example.db.domain.Person;

public class MainActivity extends Activity implements OnClickListener {
	private Button button;
	private PersonDao dao;
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		button = (Button) findViewById(R.id.button);
		button.setOnClickListener(this);
	}
	public void onClick(View v) {
		dao = new PersonDao(this);
		List<Person> persons = new ArrayList<Person>();
		persons = dao.findAll();
		for (Person person: persons) {
			System.out.println(person.toString());
		}
	}
}


package com.example.db.dao;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import com.example.db.PersonSQLiteOpenHelper;
import com.example.db.domain.Person;

public class PersonDao {
	SQLiteOpenHelper helper;
	public PersonDao(Context context) {
		helper = new PersonSQLiteOpenHelper(context);
	}
	
	public long add(String name, String number, int id) {
		SQLiteDatabase db = helper.getWritableDatabase();
		ContentValues values = new ContentValues();
		values.put("name", name);
		values.put("number", number);
		values.put("id", id);
		long result = db.insert("person", null, values);
		db.close();
		return result;
	}
	
	public boolean find(String name) {
		SQLiteDatabase db = helper.getReadableDatabase();
		Cursor cursor = db.query("person", null, "name=?", new String[]{name}, null, null, null);
		boolean result = cursor.moveToNext();
		db.close();
		return result;
	}
	
	public int update(String name, String newnumber) {
		SQLiteDatabase db = helper.getWritableDatabase();
		ContentValues values = new ContentValues();
		values.put("number", newnumber);
		int id = db.update("person", values, "name=?", new String[]{name});
		db.close();
		return id;
	}
	
	public int delete(String name) {
		SQLiteDatabase db = helper.getWritableDatabase();
		int id = db.delete("person", "name=?", new String[]{name});
		db.close();
		return id;
	}
	
	public List<Person> findAll() {
		SQLiteDatabase db = helper.getReadableDatabase();
		Cursor cursor = db.query("person", new String[]{"name","id","number"}, null, null, null, null, null);
		List<Person> persons = new ArrayList<Person>();
		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);
			persons.add(p);
		}
		return persons;
	}
}


 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值