zoukankan      html  css  js  c++  java
  • Android SQLite Database Tutorial


    表名:

    列(字段):




    联系人实体类:构造方法,setters 、getters方法

    File:   Contact.java

    package com.example.sqlitetest;
    
    public class Contact {
    	
    	int _id;
    	String _name;
    	String _phone_number;
    	
    	//空的构造方法
    	public Contact() {
    		
    	}
    	
    	//构造方法
    	public Contact(int id, String name, String phone_number) {
    		this._id = id;
    		this._name = name;
    		this._phone_number = phone_number;
    	}
    	
    	//构造方法
    	public Contact(String name, String phone_number) {
    		this._name = name;
    		this._phone_number = phone_number;
    	}
    
    	public int getID() {
    		return this._id;
    	}
    
    	public void setID(int id) {
    		this._id = id;
    	}
    
    	public String getName() {
    		return this._name;
    	}
    
    	public void setName(String name) {
    		this._name = name;
    	}
    
    	public String getPhoneNumber() {
    		return this._phone_number;
    	}
    
    	public void setPhoneNumber(String phone_number) {
    		this._phone_number = phone_number;
    	}
    	
    	
    }
    




    数据库的创建,表的创建,增删改查操作:

    DatabaseHandler.java 

    package com.example.sqlitetest;
    
    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.SQLiteDatabase.CursorFactory;
    import android.database.sqlite.SQLiteOpenHelper;
    
    public class DatabaseHandler extends SQLiteOpenHelper {
    
    	//Database Version 数据版本
    	private static final int DATABASE_VERSION = 1;
    	
    	//Database Name 数据库名
    	private static final String DATABASE_NAME = "contactsManager";
    
    	//Contacts table name 表名
    	private static final String TABLE_CONTACTS = "contacts";
    
    	//Contacts Table Columns names 字段名
    	private static final String KEY_ID = "id";
    	private static final String KEY_NAME = "name";
    	private static final String KEY_PH_NUM = "phone_number";
    	
    	public DatabaseHandler(Context context) {
    		super(context, DATABASE_NAME, null, DATABASE_VERSION);
    	}
    
    	// Creating Tables 创建表: CREATE TABLE table_name (column_name column_type);
    	@Override
    	public void onCreate(SQLiteDatabase db) {
    		String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
                    + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
                    + KEY_PH_NUM + " TEXT" + ")";		
    		db.execSQL(CREATE_CONTACTS_TABLE);
    	}
    
    	// Upgrading database
    	@Override
    	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    		// Drop older table if existed 如果表存在,则删除
    		db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);
    		
    		// Create tables again。删除完表后,要再次创建表
    		onCreate(db);
    	}	
    	
    	
    	/*
    	 * CRUD操作。增删改查操作
    	 */
    	
    	//Adding new contact 增加
        void addContact(Contact contact) {
            SQLiteDatabase db = this.getWritableDatabase();
     
            ContentValues values = new ContentValues();
            values.put(KEY_NAME, contact.getName()); // Contact Name
            values.put(KEY_PH_NUM, contact.getPhoneNumber()); // Contact Phone
     
            // Inserting Row
            db.insert(TABLE_CONTACTS, null, values);
            db.close(); // Closing database connection
        }
     
        // Getting single contact 获取单条记录
        Contact getContact(int id) {
            SQLiteDatabase db = this.getReadableDatabase();
     
            Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
                    KEY_NAME, KEY_PH_NUM }, KEY_ID + "=?",
                    new String[] { String.valueOf(id) }, null, null, null, null);
            if (cursor != null)
                cursor.moveToFirst();
     
            Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
                    cursor.getString(1), cursor.getString(2));
            
            return contact;
        }
         
        // Getting All Contacts 获取所有的联系人信息
        public List<Contact> getAllContacts() {
            List<Contact> contactList = new ArrayList<Contact>();
            // Select All Query 查询:SELECT * FROM tableName WHERE criteria
            String selectQuery = "SELECT  * FROM " + TABLE_CONTACTS;
     
            SQLiteDatabase db = this.getWritableDatabase();
            Cursor cursor = db.rawQuery(selectQuery, null);
     
            // looping through all rows and adding to list
            if (cursor.moveToFirst()) {
                do {
                    Contact contact = new Contact();
                    contact.setID(Integer.parseInt(cursor.getString(0)));
                    contact.setName(cursor.getString(1));
                    contact.setPhoneNumber(cursor.getString(2));
                    // Adding contact to list
                    contactList.add(contact);
                } while (cursor.moveToNext());
            }
     
            return contactList;
        }
     
        // Updating single contact
        public int updateContact(Contact contact) {
            SQLiteDatabase db = this.getWritableDatabase();
     
            ContentValues values = new ContentValues();
            values.put(KEY_NAME, contact.getName());
            values.put(KEY_PH_NUM, contact.getPhoneNumber());
     
            // updating row
            return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",
                    new String[] { String.valueOf(contact.getID()) });
        }
     
        // Deleting single contact
        public void deleteContact(Contact contact) {
            SQLiteDatabase db = this.getWritableDatabase();
            db.delete(TABLE_CONTACTS, KEY_ID + " = ?",
                    new String[] { String.valueOf(contact.getID()) });
            db.close();
        }
     
     
        // Getting contacts Count
        public int getContactsCount() {
            String countQuery = "SELECT  * FROM " + TABLE_CONTACTS;
            SQLiteDatabase db = this.getReadableDatabase();
            Cursor cursor = db.rawQuery(countQuery, null);
            cursor.close();
     
            // return count
            return cursor.getCount();
        }
     
    	
    }
    



    Activity:

    package com.example.sqlitetest;
    
    import java.util.List;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.util.Log;
    import android.view.Menu;
    
    public class SQLiteActivity extends Activity {
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_sqlite);
             
            DatabaseHandler db = new DatabaseHandler(this);
             
            /**
             * CRUD Operations 增删改查
             * */
            // Inserting Contacts
            Log.d("Insert: ", "Inserting .."); 
            db.addContact(new Contact("yixiaohan", "9111111111"));        
            db.addContact(new Contact("jiangge", "9122222222"));
            db.addContact(new Contact("xiaokai", "9533333333"));
            db.addContact(new Contact("xiaoweiwei", "9544444444"));
             
            // Reading all contacts
            Log.d("Reading: ", "Reading all contacts.."); 
            List<Contact> contacts = db.getAllContacts();       
             
            for (Contact cn : contacts) {
                String log = "Id: "+cn.getID()+" ,Name: " + cn.getName() + " ,Phone: " + cn.getPhoneNumber();
            Log.d("Name: ", log);// Writing Contacts to log
        }
        }
    
    }
    



    LogCat:


  • 相关阅读:
    java发送邮件..转
    SSHE框架整合(增删改查)
    easyui-conbotree树形下拉框。。。转
    spring和Hibernate整合
    php实现注册
    原生ajax实现登录(一部分代码)
    Apache 与 php的环境搭建
    SSH框架整合(代码加文字解释)
    数据库中树形列表(以easyui的tree为例)
    SVN源代码的版本控制系统使用简介
  • 原文地址:https://www.cnblogs.com/pangblog/p/3327696.html
Copyright © 2011-2022 走看看