創建數據庫可以這樣,但一般不這麼使用
//開發中一般不這樣創建數據庫,一般使用數據庫工具類SqliteOpenHelper
public void createDBUseContext(Context context){
//通過上下文來創建數據庫 這樣創建的數據庫直接在/data/data/包名/databases文件夾下
context.openOrCreateDatabase("cc.db", Context.MODE_PRIVATE, null);
}
public void createDBUseSqliteDatabase(Context context){
//通過SqliteDatabase來創建數據庫 這樣創建的數據庫直接在/data/data/包名下
File file = new File("/data/data/"+context.getPackageName(),"dd.db");
SQLiteDatabase.openOrCreateDatabase(file, null);
}
}
可以使用數據庫工具類SqliteOpenHelper來創建
public class SqliteDatabaseService {
public class MySqliteOpenHelper extends SQLiteOpenHelper {
private static SQLiteOpenHelper mInstance;
private static final String name = "xx.db";
public static SQLiteOpenHelper getInstance(Context context){
if(mInstance == null){
mInstance = new MySqliteOpenHelper(context, name, null, 1);
}
return mInstance;
}
private MySqliteOpenHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}
/**
* 用來創建表、視圖、觸發器、存儲過程
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table fish(_id integer primary key autoincrement," +
"name text)");
}
//數據庫升級
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
數據庫的增刪改查
public class FishService {
private SQLiteOpenHelper mOpenHelper;
public FishService(Context context) {
super();
// TODO Auto-generated constructor stub
mOpenHelper = MySqliteOpenHelper.getInstance(context);
}
//添加
public void add(String name){
//獲取可寫的數據庫
SQLiteDatabase database = mOpenHelper.getWritableDatabase();
if(database.isOpen()){
//插入數據
database.execSQL("insert into fish(name) values(?)", new Object[]{name});
database.close();
}
}
//查詢所有
public List<Fish> queryAll(){
List<Fish> fishs = new ArrayList<Fish>();
SQLiteDatabase database = mOpenHelper.getReadableDatabase();
if(database.isOpen()){
//結果集
Cursor c = database.rawQuery("select * from fish", null);
while(c.moveToNext()){
int _id = c.getInt(0);
String name = c.getString(1);
fishs.add(new Fish(_id, name));
}
//關閉
c.close();
database.close();
}
return fishs;
}
//更新
public void update(Fish fish){
SQLiteDatabase database = mOpenHelper.getWritableDatabase();
if(database.isOpen()){
database.execSQL("update fish set name = ? where _id = ?", new Object[]{fish.name,fish._id});
database.close();
}
}
//刪除
public void delete(int _id){
SQLiteDatabase database = mOpenHelper.getWritableDatabase();
if(database.isOpen()){
database.execSQL("delete from fish where _id = ?", new Object[]{_id});
database.close();
}
}
}
還有一種增刪改查的方法
public class OtherFishService {
private SQLiteOpenHelper mOpenHelper;
public OtherFishService(Context context) {
super();
mOpenHelper = MySqliteOpenHelper.getInstance(context);
}
//添加
public void add(String name){
//獲取可寫的數據庫
SQLiteDatabase database = mOpenHelper.getWritableDatabase();
if(database.isOpen()){
//插入數據
// database.execSQL("insert into fish(name) values(?)", new Object[]{name});
ContentValues values = new ContentValues();
values.put("name", name);
database.insert("fish", "_id", values);
database.close();
}
}
//查詢所有
public List<Fish> queryAll(){
List<Fish> fishs = new ArrayList<Fish>();
SQLiteDatabase database = mOpenHelper.getReadableDatabase();
if(database.isOpen()){
//結果集
// Cursor c = database.rawQuery("select * from fish", null);
Cursor c = database.query(
"fish",
new String[]{"*"},
null,
null,
null,
null,
null);
while(c.moveToNext()){
int _id = c.getInt(0);
String name = c.getString(1);
fishs.add(new Fish(_id, name));
}
//關閉
c.close();
database.close();
}
return fishs;
}
//更新
public void update(Fish fish){
SQLiteDatabase database = mOpenHelper.getWritableDatabase();
if(database.isOpen()){
// database.execSQL("update fish set name = ? where _id = ?", new Object[]{fish.name,fish._id});
ContentValues values = new ContentValues();
values.put("name", fish.name);
database.update("fish",
values,
" _id = ?",
new String[]{fish._id+""});
database.close();
}
}
//刪除
public void delete(int _id){
SQLiteDatabase database = mOpenHelper.getWritableDatabase();
if(database.isOpen()){
// database.execSQL("delete from fish where _id = ?", new Object[]{_id});
database.delete("fish",
" _id = ?",
new String[]{_id+""});
database.close();
}
}
}
數據類集
//創建此對象集合是爲了給數據庫查詢,接收返回的對象
public class Fish {
public int _id;
public String name;
public Fish() {
super();
// TODO Auto-generated constructor stub
}
public Fish(int _id, String name) {
super();
this._id = _id;
this.name = name;
}
@Override
public String toString() {
return "Fish [_id=" + _id + ", name=" + name + "]";
}
}
測試類
public class FishServiceTest extends AndroidTestCase {
public void testAdd() throws Exception{
FishService fs = new FishService(getContext());
for(int i = 0;i< 10;i++){
fs.add("張三"+i);
}
}
public void testQueryAll() throws Exception{
FishService fs = new FishService(getContext());
List<Fish> list = fs.queryAll();
for(Fish f:list){
Log.i("i", f.toString());
}
}
public void testUpdate() throws Exception{
FishService fs = new FishService(getContext());
fs.update(new Fish(1,"李四"));
List<Fish> list = fs.queryAll();
for(Fish f:list){
Log.i("i", f.toString());
}
}
public void testDelete() throws Exception{
FishService fs = new FishService(getContext());
fs.delete(1);
List<Fish> list = fs.queryAll();
for(Fish f:list){
Log.i("i", f.toString());
}
}
}
public class OtherFishServiceTest extends AndroidTestCase {
public void testAdd() throws Exception{
OtherFishService fs = new OtherFishService(getContext());
for(int i = 0;i< 10;i++){
fs.add("張三"+i);
}
}
public void testQueryAll() throws Exception{
OtherFishService fs = new OtherFishService(getContext());
List<Fish> list = fs.queryAll();
for(Fish f:list){
Log.i("i", f.toString());
}
}
public void testUpdate() throws Exception{
OtherFishService fs = new OtherFishService(getContext());
fs.update(new Fish(11,"李四"));
List<Fish> list = fs.queryAll();
for(Fish f:list){
Log.i("i", f.toString());
}
}
public void testDelete() throws Exception{
OtherFishService fs = new OtherFishService(getContext());
fs.delete(11);
List<Fish> list = fs.queryAll();
for(Fish f:list){
Log.i("i", f.toString());
}
}
}