android数据库SQlite的使用

                            android数据库SQlite的使用

       Android的数据库Sqlite是一种很小又非常流行的嵌入式数据库,它支持 SQL 语言,并且占用资源低,只利用很小的内存却有不错的性能。另外它还是开源的,任何人都可以使用它,它能够支持Windows/Linux/Unix等等主流的操作系统。一些开源项目如:Mozilla, PHP, Python都使用了 SQLite.

下面的代码实现了sqlite数据库的链接和使用,一般的增删改查都可以通过调用下面类的方法实现。

链接sqlite数据库:(DbHelper)

package com.example.databasetest;

 

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteDatabase.CursorFactory;

import android.database.sqlite.SQLiteOpenHelper;

 

public class MysqlliteDbHelper extends SQLiteOpenHelper{

   private static MysqlliteDbHelper instance=null;

   public static MysqlliteDbHelper getinstance(Context context, String name)

   {

      if(instance==null)//这样做是为了只有一个MysqlliteDbHelper

      {

        instance=new MysqlliteDbHelper(context, name);

      }

      return instance;

   }

   public MysqlliteDbHelper(Context context, String name,

        CursorFactory factory, int version) {

      super(context, name, factory, version);

   }

   public MysqlliteDbHelper(Context context, String name) {

      super(context, name, null, 1);

   }

   @Override

   public void onCreate(SQLiteDatabase db) {

      StringBuffer sb=new StringBuffer();

      sb.append("create table contactperson(id integer primary key autoincrement,name varchar(20),phone varchar(20),address varchar(30))");

      db.execSQL(sb.toString()); //创建数据库

   }

 

   @Override

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

     

   }

 

}

 

下面的代码是对sqlite数据库进行操作:(Dao

package com.example.databasetest;

 

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;

 

public class MycontectpersonDao {

   private MysqlliteDbHelper helper=null;

   private String person_TABLENAME="contactperson";

   private String person_ID="id";

   private String person_NAME="name";

   private String person_PHONE="phone";

   private String person_ADDRESS="address";//个人定义的字段名

   public MycontectpersonDao(Context context) {

      helper=MysqlliteDbHelper.getinstance(context, "person.db");

   }

   public int insert(Contectperson person)//增

   {

      SQLiteDatabase sqd=helper.getWritableDatabase();//要写,所以用了getWritableDatabase();

      ContentValues cv=new ContentValues();

      cv.put(person_NAME,person.name);

      cv.put(person_PHONE,person.phone);

      cv.put(person_ADDRESS, person.address);

      long resault=sqd.insert(person_TABLENAME, null, cv);

      sqd.close();

      return (int)resault;

   }

   public int delete(int id)//删

   {

      SQLiteDatabase sqd=helper.getWritableDatabase();

      long resault=sqd.delete(person_TABLENAME, person_ID+"=?", new String[]{id+""});

      sqd.close();

      return (int)resault;

   }

   public int update(Contectperson person)//改

   {

      SQLiteDatabase sqd=helper.getWritableDatabase();

      ContentValues cv=new ContentValues();

      cv.put(person_NAME,person.name);

      cv.put(person_PHONE,person.phone);

      cv.put(person_ADDRESS, person.address);

      int resault=sqd.update(person_TABLENAME, cv, person_ID+"=?",new String[]{person.id+""} );

      sqd.close();

      return resault;

   }

   public Contectperson findPersonbyid(int id)//查 一个

   {

      SQLiteDatabase sqd=helper.getReadableDatabase();//查找,所以用可读的

      Cursor cursor=sqd.query(person_TABLENAME, null, person_ID+"=?",new String[]{id+""}, null, null, null);//还要用Cursor

      Contectperson person=null;

      while(cursor.moveToNext())

      {

        int person_id=cursor.getInt(cursor.getColumnIndex(person_ID));

        String person_name=cursor.getString(cursor.getColumnIndex(person_NAME));

        String person_phone=cursor.getString(cursor.getColumnIndex(person_PHONE));

        String person_address=cursor.getString(cursor.getColumnIndex(person_ADDRESS));

        person=new Contectperson(person_id, person_name, person_phone, person_address);

      }

      cursor.close();

      sqd.close();

      return person;

   }

   public List<Contectperson> findAllperson() //查 多个

   {

      List<Contectperson> persons=new ArrayList<Contectperson>();

      SQLiteDatabase sqd=helper.getReadableDatabase();

      Cursor cursor=sqd.query(person_TABLENAME, null, null, null, null, null, null);

      while(cursor.moveToNext())

      {

        int person_id=cursor.getInt(cursor.getColumnIndex(person_ID));

        String person_name=cursor.getString(cursor.getColumnIndex(person_NAME));

        String person_phone=cursor.getString(cursor.getColumnIndex(person_PHONE));

        String person_address=cursor.getString(cursor.getColumnIndex(person_ADDRESS));

        Contectperson person=new Contectperson(person_id, person_name, person_phone, person_address);

        persons.add(person);

      }

      cursor.close();

      sqd.close();

      return persons;

   }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值