`
liangoogle
  • 浏览: 278484 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android 数据库操作

 
阅读更多

Databasehelper代码  收藏代码
  1. public class DatabaseHelper extends SQLiteOpenHelper {  
  2.   
  3.     private final static String NAME="sharp.db" ;  
  4.     //Factory:代表记录集游标工厂,是专门用来生成记录集游标,记录集游标是对查询结果进行迭代的,后面我们会继续介绍。  
  5.     public DatabaseHelper(Context context, String name, CursorFactory factory,  
  6.             int version) {  
  7.         super(context, name, factory, version);  
  8.         // TODO Auto-generated constructor stub  
  9.     }  
  10.     public DatabaseHelper(Context context){  
  11.         super(context, NAME, null, 1 );  
  12.     }  
  13.   
  14.     /**  
  15.      * 用户第一次使用软件时调用,实现数据库的操作crud  
  16.      */  
  17.     @Override  
  18.     public void onCreate(SQLiteDatabase db) {  
  19.         // TODO Auto-generated method stub  
  20.         Log.i("save"  "create" );  
  21.         db.execSQL("create table person(personid integer primary key autoincrement,name varcahr(20),age integer)");  
  22.     }  
  23.   
  24.     @Override  
  25.     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  
  26.         // TODO Auto-generated method stub  
  27.         db.execSQL("drop table if exists person" );  
  28.         onCreate(db);  
  29.     }  
  30.     /**  
  31.      * 根据版本号进行更新  
  32.      * @param db  
  33.      * @param mNewVersion  
  34.      */  
  35.     public void checkVersionCreate(SQLiteDatabase db,int mNewVersion){  
  36.         int version = db.getVersion();  
  37.         if (version != mNewVersion) {  
  38.         db.beginTransaction();  
  39.         try {  
  40.         if (version == 0 ) {  
  41.         onCreate(db);  
  42.         }else{  
  43.         onUpgrade(db, version,mNewVersion);  
  44.         }  
  45.         db.setVersion(mNewVersion); //设置为新的版本号  
  46.         db.setTransactionSuccessful();  
  47.         }  
  48.         finally{  
  49.         db.endTransaction();  
  50.         }  
  51.         }  
  52.     }  
  53.     /**  
  54.      * 数据库名不空,获得数据库实例  
  55.      * @param mDatabase  
  56.      * @param mContext  
  57.      * @param mName  
  58.      * @param mFactory  
  59.      * @return  
  60.      */  
  61.     public SQLiteDatabase getDatabase(SQLiteDatabase mDatabase,Context mContext,String mName,CursorFactory mFactory){  
  62.             if (mDatabase != null && mDatabase.isOpen() && !mDatabase.isReadOnly()) {  
  63.                 return mDatabase; // The database is already open for business  
  64.                 }  
  65.             if (mName == null) {  
  66.                 mDatabase = SQLiteDatabase.create(null);  
  67.                 } else {  
  68.                     mDatabase = mContext.openOrCreateDatabase(mName, 0 , mFactory);  
  69.                 }  
  70.             return mDatabase;  
  71.         }  
  72. }  

 

DbService:

Java代码  收藏代码
  1. public   class  DbService {  
  2.     private  DatabaseHelper databaseHelper;  
  3.     private  Context context;  
  4.     public  DbService(Context context){  
  5.         this .context=context;  
  6.         databaseHelper=new  DatabaseHelper( this .context);  
  7.     }  
  8.     //保存   
  9.     public   void  save(Person person){  
  10.         SQLiteDatabase db = databaseHelper.getWritableDatabase();  
  11.         db.execSQL("insert into person(name, age) values(?,?)" , new  Object[]{person.getName(), person.getAge()});  
  12.         }  
  13.     //更新   
  14.     public   void  update(Person person){  
  15.         SQLiteDatabase db = databaseHelper.getWritableDatabase();  
  16.         db.execSQL("update person set name=?,age=? where personid=?" ,  
  17.         new  Object[]{person.getName(), person.getAge(),  
  18.         person.getId()});  
  19.         }  
  20.     //根据id查找   
  21.     public  Person find(Integer id){  
  22.         SQLiteDatabase db = databaseHelper.getReadableDatabase();  
  23.         Cursor cursor = db.rawQuery("select personid,name,age from person where personid=?" new  String[]{String.valueOf(id)});  
  24.         if (cursor.moveToNext()){  //迭代记录集   
  25.         Person person = new  Person(); //实例化person   
  26.         person.setId(cursor.getInt(cursor.getColumnIndex("personid" )));  
  27.         person.setName(cursor.getString(1 ));  
  28.         person.setAge(cursor.getInt(2 ));  //将查到的字段,放入person,   
  29.         return  person;  
  30.         }  
  31.         cursor.close();//游标关闭   
  32.         return   null ;  
  33.         }  
  34.     //删除   
  35.     public   void  delete(Integer id){  
  36.         SQLiteDatabase db=databaseHelper.getWritableDatabase();  
  37.         db.execSQL("delete from person where id=?" , new  Object[]{id});  
  38.     }  
  39.     //   
  40.     public  List<Person> getScrollData( int  firstResult,  int  maxResult){  
  41.         List<Person> persons = new  ArrayList<Person>();  
  42.         SQLiteDatabase db = databaseHelper.getReadableDatabase();  
  43.         Cursor cursor = db.rawQuery("select personid,name,age from person limit ?,?" ,  
  44.         new  String[]{String.valueOf(firstResult),String.valueOf(maxResult)}); //firstResult开始索引   
  45.         while (cursor.moveToNext()){  //maxResult每页获取的记录数   
  46.         Person person = new  Person();  
  47.         person.setId(cursor.getInt(cursor.getColumnIndex("personid" )));  
  48.         person.setName(cursor.getString(1 ));  
  49.         person.setAge(cursor.getInt(2 ));  
  50.         persons.add(person);  
  51.         }  
  52.         cursor.close();  
  53.         return  persons;  
  54.         }  
  55.     //   
  56.     public   long  getCount(){  
  57.         SQLiteDatabase db = databaseHelper.getReadableDatabase();  
  58.         Cursor cursor = db.rawQuery("select count(*) from person"  null );  
  59.         //没有占位符参数的话,直接用null   
  60.         cursor.moveToFirst();  
  61.         long  count = cursor.getLong( 0 );  
  62.         cursor.close();  
  63.         return  count;  
  64.         }  
  65.     //   
  66.     public   void  close(){  
  67.         databaseHelper.close();  
  68.         }  
  69. }         

 

Person:

Java代码  收藏代码
  1. public   class  Person {  
  2.     private  Integer id;  
  3.     private  String name;  
  4.     private  Integer age;  
  5.     public  Person(){}  
  6.     public  Person(String name,Integer age){  
  7.         this .name=name;  
  8.         this .age=age;  
  9.     }  
  10.     public  Integer getId() {  
  11.         return  id;  
  12.     }  
  13.     public   void  setId(Integer id) {  
  14.         this .id = id;  
  15.     }  
  16.     public  String getName() {  
  17.         return  name;  
  18.     }  
  19.     public   void  setName(String name) {  
  20.         this .name = name;  
  21.     }  
  22.     public  Integer getAge() {  
  23.         return  age;  
  24.     }  
  25.     public   void  setAge(Integer age) {  
  26.         this .age = age;  
  27.     }  
  28.     @Override   
  29.     public  String toString() {  
  30.     return   "Person [age="  + age +  ", id="  + id +  ", name="  + name +  "]" ;  
  31.     }  
  32. }  

 

PersonServiceTest:

Java代码  收藏代码
  1. public   class  PersonServiceTest  extends  AndroidTestCase{  
  2.     public   void  testSave()  throws  Throwable{  //测试保存方法   
  3.         DbService personService = new  DbService( this .getContext());  
  4.         //传入上下文   
  5.         Person person = new  Person( "Tom"  21 );  
  6.         personService.save(person);  
  7.         }  
  8. }  

 

一个activity:

 

Java代码  收藏代码
  1. public   class  SqlLiteActivity  extends  Activity {  
  2.     /** Called when the activity is first created. */   
  3.     private   final   static  String TAG= "PersonActivity" ;  
  4.     private  ListView listView;  
  5.     private  DbService personService;  
  6.     @Override   
  7.     public   void  onCreate(Bundle savedInstanceState) {  
  8.         super .onCreate(savedInstanceState);  
  9.         setContentView(R.layout.main);  
  10.         listView = (ListView)findViewById(R.id.personList);  
  11.         personService = new  DbService( this );  
  12.         save(personService);  
  13.         List<Person> persons = personService.getScrollData(0  3 ); //前十条数据   
  14.         List<HashMap<String, String>> data = new   
  15.         ArrayList<HashMap<String,String>>();  
  16.         HashMap<String, String>title = new  HashMap<String, String>();  
  17.         title.put("personid" , "编号" );  
  18.         title.put("name"  "姓名" );  
  19.         title.put("age"  "年龄" );  
  20.         data.add(title); //标题   
  21.         for (Person person : persons){  
  22.             HashMap<String, String> map = new  HashMap<String, String>();  
  23.             map.put("personid" , String.valueOf(person.getId()));  
  24.             map.put("name" , person.getName());  
  25.             map.put("age" , String.valueOf(person.getAge()));  
  26.             data.add(map); //显示各个数据   
  27.         }   
  28.         SimpleAdapter adapter = new  SimpleAdapter(SqlLiteActivity. this ,  
  29.                 data, R.layout.personitem, new  String[]{ "personid"  "name" , "age"},  
  30.                 new   int []{R.id.personid, R.id.name, R.id.age});  
  31.         listView.setAdapter(adapter);  
  32.     }  
  33.       
  34.     //   
  35.     public   void  save(DbService service){  
  36.         for ( int  i= 0 ;i< 5 ;i++){  
  37.         Person person=new  Person();  
  38.         person.setName("d" );  
  39.         person.setAge(12 );  
  40.         service.save(person);  
  41.         }  
  42.     }  
  43. }  

 main.xml<?xml version="1.0" encoding="utf-8"?>

Java代码  收藏代码
  1. <LinearLayout  
  2. xmlns:android="http://schemas.android.com/apk/res/android"   
  3. android:orientation="vertical"   
  4. android:layout_width="fill_parent"   
  5. android:layout_height="fill_parent"   
  6. >  
  7. <ListView  
  8. android:id="@+id/personList"   
  9. android:layout_width="fill_parent"   
  10. android:layout_height="wrap_content"   
  11. ></ListView>  
  12. </LinearLayout>  

 personitem.xml<?xml version="1.0" encoding="utf-8"?>

Java代码  收藏代码
  1. <RelativeLayout  
  2.     xmlns:android="http://schemas.android.com/apk/res/android"   
  3.     android:layout_width="fill_parent"   
  4.     android:layout_height="wrap_content" >  
  5.     <TextView  
  6.         android:layout_width="60px"   
  7.         android:layout_height="wrap_content"   
  8.         android:id="@+id/personid"   
  9.     />  
  10.       
  11.     <TextView  
  12.        android:layout_width="160px"   
  13.        android:layout_height="wrap_content"   
  14.        android:layout_toRightOf="@id/personid"   
  15.        android:layout_alignTop="@id/personid"   
  16.        android:gravity="center_horizontal"   
  17.        android:id="@+id/name"   
  18.       />  
  19.       
  20.     <TextView  
  21.     android:layout_width="wrap_content"   
  22.     android:layout_height="wrap_content"   
  23.     android:layout_toRightOf="@id/name"   
  24.     android:layout_alignTop="@id/name"   
  25.     android:id="@+id/age"   
  26.     />  
  27.        
  28. </RelativeLayout>  
 

分享到:
评论

相关推荐

    android数据库操作demo

    本"android数据库操作demo"主要展示了如何在Android应用中进行SQLite数据库的基本操作,包括增、删、改、查四大功能。下面我们将详细探讨这些知识点。 首先,要创建一个SQLite数据库,我们需要创建一个`...

    android数据库操作封装

    "android数据库操作封装"主要是为了提高代码的可读性、可维护性和复用性,通过创建自定义的数据访问对象(DAO)层和数据库帮助类来实现。 1. 数据库Helper类: 在Android中,我们通常会创建一个继承自`...

    Android 数据库操作

    在这个"Android 数据库操作"主题中,我们将深入探讨如何在Android应用中使用SQLite3进行数据库的创建、查询、插入、更新和删除等操作。 首先,让我们了解Android中的SQLite数据库的基本概念。每个Android应用都有一...

    Android 数据库操作 以及命令行上操作sqlite

    本文将深入探讨Android中的SQLite数据库操作以及如何在命令行上操作SQLite。 首先,让我们了解Android如何与SQLite交互。在Android中,我们通常通过SQLiteOpenHelper类来创建、升级和访问数据库。这个类提供了方法...

    android数据库操作实例

    总结来说,这个"android数据库操作实例"涵盖了Android应用中使用SQLite数据库的基础知识,包括创建数据库、定义表结构、插入、查询、更新和删除数据等操作。通过学习这个实例,开发者可以更好地理解如何在Android...

    你想要Android数据库操作精华(安全、并发、单例等)

    本Demo——"你想要的Android数据库操作精华(安全、并发、单例等)",旨在深入探讨如何在Android Studio环境下进行高效且安全的数据库操作,包括使用数据库框架、数据库加密、并发控制以及单例模式的应用。...

    android数据库操作Demo

    本示例"android数据库操作Demo"提供了一个基础的教程,涵盖了数据库的基本操作,包括添加数据(增)、删除数据(删)、查询数据(查)和更新数据(改)。我们将深入探讨这些核心概念。 首先,Android使用SQLite作为...

    android 数据库操作demo

    在这个"android 数据库操作demo"中,我们将深入探讨如何在Android环境下使用SQLite进行数据库操作,包括创建数据库、创建表、插入数据、查询数据、更新数据以及删除数据等核心概念。 1. **创建数据库**: 在...

    android数据库操作

    `Cursor`是Android数据库操作中的一个关键接口,它就像一个指针,可以遍历查询结果。常见的`Cursor`方法包括: - `moveToPosition(position)`移动指针到指定的记录。 - `getColumnIndex(columnName)`获取指定列的...

    Android数据库完美框架和示例

    在Android开发中,数据库是应用数据持久化的重要方式。Android提供了SQLite数据库系统...在`DemoDateBase`压缩包中,应该包含了这个框架的实现代码,你可以下载并参考其中的细节,进一步学习和实践Android数据库操作。

    android 数据库操作代码生成器(version 0.1)-32位

    在Android开发中,数据库操作是不可或缺的一部分,尤其是在处理大量数据存储和检索时。"android 数据库操作代码生成器(version 0.1)-32位" 是一个专为提高开发效率而设计的工具,它能够自动生成数据库操作的相关代码...

    android 数据库操作封装类 继承可用

    在Android开发中,数据库操作是常见的任务之一,用于存储和检索应用程序的数据。为了简化这一过程,开发者通常会创建一个数据库帮助类(DataBaseHelper)来封装SQLite数据库的操作。在这个场景下,我们有一个名为`...

    Android数据库操作命令

    Android数据库sqlite操作命令指导,同时可以快速调试定位问题点,并获取有用信息。

    android 数据库操作小插件

    android sqlite 操作工具包

    Android 数据库操作 greendao-2.0.0.jar

    Android 数据库操作 greendao-2.0.0.jar

    Android数据库操作实例代码

    本实例代码主要关注如何在Android中进行数据库操作,这涉及到SQLite数据库,它是Android系统内置的关系型数据库管理系统。SQLite轻量级、易于使用且功能强大,非常适合移动设备。 首先,我们需要创建一个SQLite...

    Android简单数据库操作增删改查项目实现

    在SQLiteDemo1项目中,你将看到这些概念如何实际应用于一个简单的应用程序,让你能够更好地理解和实践Android数据库操作。通过这个项目,你可以加深对Android数据持久化机制的理解,为今后更复杂的数据库应用场景...

Global site tag (gtag.js) - Google Analytics