Android SQLite数据库操作.docx

上传人:b****5 文档编号:3426532 上传时间:2022-11-23 格式:DOCX 页数:23 大小:22.17KB
下载 相关 举报
Android SQLite数据库操作.docx_第1页
第1页 / 共23页
Android SQLite数据库操作.docx_第2页
第2页 / 共23页
Android SQLite数据库操作.docx_第3页
第3页 / 共23页
Android SQLite数据库操作.docx_第4页
第4页 / 共23页
Android SQLite数据库操作.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

Android SQLite数据库操作.docx

《Android SQLite数据库操作.docx》由会员分享,可在线阅读,更多相关《Android SQLite数据库操作.docx(23页珍藏版)》请在冰豆网上搜索。

Android SQLite数据库操作.docx

AndroidSQLite数据库操作

AndroidSQLite数据库操作

packagecom.example.sqlitedemo.db;

 

importandroid.content.Context;

importandroid.database.sqlite.SQLiteDatabase;

importandroid.database.sqlite.SQLiteOpenHelper;

importandroid.util.Log;

 

//数据库帮助类 用于数据库的创建和管理

//用于创建链接数据库

 

publicclassPersonSQLiteOpenHelperextendsSQLiteOpenHelper{

         privatestaticfinalStringTGA="PersonSQLiteOpenHelper";

 

         //数据库的构造方法

         //context上下文Activity

         //name 数据库名称

         //factory 游标工程默认值给空

         //version 数据库版本号不能小于1

         publicPersonSQLiteOpenHelper(Contextcontext){

                   super(context,"wkk.db",null,1);

 

         }

 

         //数据库第一次创建时回调此方法

         //初始化一些表

         publicvoidonCreate(SQLiteDatabasedb){// 连接到数据库

                   /**

                    *SQLite的数据类型:

Typelessness(无类型), 可以保存任何类型的数据到你所想要保存的任何表的任何列中.

                    * 但它又支持常见的类型比如:

NULL(空),VARCHAR(char),TEXT(文本),INTEGER(int),BLOB,

                    *CLOB...等. 唯一的例外:

integerprimarykey 此字段只能存储64位整数

                    */

 

                   //操作数据库

                   //createtableperson(_idintegerprimarykey,namevarchar(20)/*长度不起作用

                   //定义20 存100位也可以*/,ageinteger)

                   Stringsql="createtableperson(_idintegerprimarykey,namevarchar(20),ageinteger)";

                   db.execSQL(sql);

                   //取得对象之后可以直接用下面的方法对数据库执行操作

                   //db.insert(table,nullColumnHack,values)

                   //insert() 增加数据

                   //delete() 删除数据

                   //update() 修改数据

                   //query() 查询数据

                   //也可以这样写

                   //db.execSQL("createtableperson(_idintegerprimarykeyautoincremnet,namevarchar(20),ageinteger");

 

         }

 

         //数据库的版本号更新时回调此方法

         //更新数据库的内容(删除,添加,修改表)

         publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){//传入旧版本号 新报本号

                   if(oldVersion==1&&newVersion==2){//如果 旧版本号为1且新版本号为2时 执行的方法

                            Log.i(TGA,"数据库更新");

                            db.execSQL("altertablepersonaddbalanceinteger");//person表中添加一列 列名为 balance(余额)

                   }elseif(oldVersion==2&&newVersion==3){

                           

                   }elseif(oldVersion==3&&newVersion==4){

                           

                   }

         }

 

}

 

 

 

 

package com.example.sqlitedemo.entities;

 

 

//用于给数据库的各个属性赋值

public classPerson{

   private int id;

   private String name;

   private int age;

   public int getId(){

      return id;

   }

   public void setId(int id){

      this.id =id;

   }

   public StringgetName(){

      return name;

   }

   public void setName(Stringname){

      this.name =name;

   }

   public int getAge(){

      return age;

   }

   public void setAge(int age){

      this.age =age;

   }

   public Person(){

      super();

      // TODO Auto-generatedconstructorstub

   }

   public Person(int id,Stringname, int age){

      super();

      this.id =id;

      this.name =name;

      this.age =age;

   }

   @Override

   public StringtoString(){

      return "Person[id="+ id + ",name="+ name+ ",age="+ age+ "]";

   }

  

}

 

 

 

 

packagecom.example.sqlitedemo.dao;

 

importjava.util.ArrayList;

importjava.util.List;

 

importcom.example.sqlitedemo.db.PersonSQLiteOpenHelper;

importcom.example.sqlitedemo.entities.Person;

 

importandroid.content.Context;

importandroid.database.Cursor;

importandroid.database.sqlite.SQLiteDatabase;

 

//用于执行数据库的增删改查操作

publicclassPersonDao{

         privatePersonSQLiteOpenHelpermOpenHelper;// 创建一个 数据库的帮助类的对象

 

         publicPersonDao(Contextcontext){// 构造方法当创建的这类的对象时需要传入一个上下文对象

                   mOpenHelper=newPersonSQLiteOpenHelper(context);//new一个 当创建此类对象时 会初始化

                                                                                                                                            //PersonSQliteOpenHelper类的对象

         }

 

         //添加到person表一条数据增

         publicvoidinsert(Personperson){

                   SQLiteDatabasedb=mOpenHelper.getWritableDatabase();// 取出 得到

                                                                                                                                                     //SQLiteDatabase对象进行操作

                   //SQLiteDatabasedb1=mOpenHelper.getReadableDatabase();//只读的对象

                   //SQLiteDatabasedb2=mOpenHeLper.getWritableDatabase();//可写的对象

                   if(db.isOpen()){// 如果数据库打开执行添加的操作

                            //执行添加到数据库的操作

                            //db.execSQL("insertintoperson(name,age)values('ff',19);");

                            db.execSQL("insertintoperson(name,age)values(?

?

);",

                                               newObject[]{person.getName(),person.getAge()});//?

占位符

                                                                                                                                                                        //在后面的Object数组中赋给对应的值

                            db.close();//数据库关闭

                   }

         }

 

         publicvoiddelete(intid){// 删除

                   SQLiteDatabasedb=mOpenHelper.getWritableDatabase();// 获得可写的数据库对象

                   if(db.isOpen()){// 如果数据库打开执行添加的操作

                            db.execSQL("deletefrompersonwhere_id=?

;",

                                               newInteger[]{id});// 根据id删除相应的数据

                            db.close();//数据库关闭

                   }

         }

 

         publicvoiddetele(Integer..._ids)// 获得一个不确定长度的Integer型数组 (Integer[]_ids)

         {

                   if(_ids.length>0){

                            StringBuffersb=newStringBuffer();

                            for(inti=0;i<_ids.length;i++){

                                     sb.append('?

').append(',');//将 char 参数的字符串表示形式追加到此序列。

                            }

                            sb.deleteCharAt(sb.length()-1);// 移除此序列指定位置的char

                            SQLiteDatabasedb=mOpenHelper.getWritableDatabase();// 将最后个位置的,去掉

                            db.execSQL("deletefrompersonwhere_idin("+sb+")",

                                               (Object[])_ids);// 将sb中的?

替换为_ids中的具体数字

                   }

         }

 

         publicvoidupdate(intid,Stringname){// 改 修改数据 根据id修改数据

                   SQLiteDatabasedb=mOpenHelper.getWritableDatabase();

                   if(db.isOpen()){// 如果数据库打开执行添加的操作

                            db.execSQL("updatepersonsetname=?

where_id=?

;",

                                               newObject[]{name,id});

                            db.close();//数据库关闭

                  }

         }

 

         publicListqueryAll(){// 查 查询所有

                   SQLiteDatabasedb=mOpenHelper.getReadableDatabase();// 获得一个只读的数据库对象

                   if(db.isOpen()){

                            //db.execSQL("select*fromperson;");//此方法没有返回值

                            Cursorcursor=db.rawQuery("select*fromperson;",null);

                            if(cursor!

=null&&cursor.getCount()>0){//cursor!

=null 是判断cursor这个对象是否为空cursor.getCount()>0判断cursor值是否为空

                                     ListpersonList=newArrayList();

                                     intid;

                                     Stringname;

                                     intage;

                                     while(cursor.moveToNext()){// 如果移动到最后一位返回false

                                               id=cursor.getInt(0);// 取第0列的数据 _id

                                               name=cursor.getString

(1);

                                               age=cursor.getInt

(2);

                                               personList.add(newPerson(id,name,age));// 将数据添加到ArrayList集合中

                                     }

                                     db.close();

                                     returnpersonList;// 返回ArrayList集合

                            }

                            db.close();

                   }

                   returnnull;

         }

 

         /**

          * 获取学生信息

          *

          *@paramstart 起始位置

          *@paramcount 学生数量

          *@return

          */

         publicListgetScrollData(intstart,intcount){

                   Liststudents=newArrayList();

                   SQLiteDatabasedb=mOpenHelper.getWritableDatabase();

                   Cursorcursor=db.rawQuery("select*frompersonlimit?

?

",

                                     newString[]{String.valueOf(start),String.valueOf(count)});//String.valueOf(start)

                                                                                                                                                                                           //将int型start转化成String型

                   while(cursor.moveToNext())// 游标下移返回false时结束查询

                   {//取得信息赋值到ArrayList集合中

                            students.add(newPerson(

                                               cursor.getInt(cursor.getColumnIndex("_id")),cursor

                                                                 .getString(cursor.getColumnIndex("name")),cursor

                                                                 .getShort(cursor.getColumnIndex("age"))));

                   }/*cursor.getColumnIndex("sid") 返回sid的序列号 */

                   returnstudents;

         }

 

         publicPersonqueryItem(intid){// 根据id查询单条

                   SQLiteDatabasedb=mOpenHelper.getReadableDatabase();// 获得一个只读的数据库对象

                   if(db.isOpen()){// 判断数据库是否打开

                            Cursorcursor=db.rawQuery("select*frompe

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1