• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Android學習(24)SQLite_數據庫的使用

    標簽: Android  SQLite

    Android學習(24)SQLite_數據庫的使用

    SQLite數據庫介紹:

    • 輕量級:SQLite是進程內的數據庫引擎,因此不存在數據庫的客戶端和服務器。使用SQLite一般只需要帶上它的一個動態庫,就可以享受它的全部功能。而且動態庫的尺寸也相當小。
    • 獨立性:SQLite數據庫的核心引擎本身不依賴第三方軟件,使用它也不需要“安裝”,所以在使用的時候能夠省去不少麻煩
    • 隔離性:SQLite數據庫中所有的信息都包含在一個文件內,方便管理和維護
    • 跨平臺:SQLite數據庫支持大部分操作系統,除了我們在電腦上使用的操作系統外,很多手機操作系統同樣可以運行。
    • 多語言接口:SQLite數據庫支持很多語言編程接口,比如C\C++,JAVA,Python等。
    • 安全性:SQLite數據庫通過數據庫級上的獨占性和共享鎖來實現獨立事務處理。

    1.新建一個MySql.java類,繼承SQLiteOpenHelper

    MySql.java

    public class MySql extends SQLiteOpenHelper {
    
        //表名
        public static final String TABLE_NAME = "user";
        //ID,固定的格式
        public static final String _ID= "_id";
        //姓名
        public static final String NAME = "name";
        //性別
        public static final String SEX = "sex";
    
        //構造函數
        public MySql(Context context) {
            super(context,"database",null,1 );
        }
    
        @Override
        public void onCreate(SQLiteDatabase db) {
            //創建表
            db.execSQL("CREATE TABLE " + TABLE_NAME + " (" +
                    _ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
                    NAME + " TEXT NOT NULL,"+
                    SEX + " TEXT NOT NULL) ");
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    
        }
    }

    2.在xml文件中添加和顯示數據

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <EditText
            android:id="@+id/etName"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
        <EditText
            android:id="@+id/etSex"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
        <Button
            android:id="@+id/btnOk"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="提交"/>
        <ListView
            android:id="@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
    
        </ListView>
    </LinearLayout>

    3.設置ListView的布局

    call.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    
        <TextView
            android:id="@+id/name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="NAME"/>
        <TextView
            android:id="@+id/sex"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="SEX"/>
    </LinearLayout>

    4.在MainAcitivity.java中使用數據庫

    MainAcitivity.java

    public class MainActivity extends ListActivity implements AdapterView.OnItemLongClickListener,View.OnClickListener{
    
        private EditText name,sex;
        private Button btn;
        //實例化MySql
        private MySql mySql;
        //通過SQLiteDatabase來讀取和寫入數據
        private SQLiteDatabase dbRead,dbWrite;
        //數據庫適配器
        private SimpleCursorAdapter adapter;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            btn = (Button)findViewById(R.id.btnOk);
            name = (EditText)findViewById(R.id.etName);
            sex = (EditText)findViewById(R.id.etSex);
    
            mySql = new MySql(this);
            //按鈕點擊監聽
            btn.setOnClickListener(this);
            //實現數據庫的讀寫
            dbRead = mySql.getReadableDatabase();
            dbWrite = mySql.getWritableDatabase();
            //適配器加載視圖
            adapter = new SimpleCursorAdapter(this,R.layout.call,null,
                    new String[]{MySql.NAME,MySql.SEX},new int[] {R.id.name,R.id.sex});
            //綁定適配器
            setListAdapter(adapter);
            //長按監聽
            getListView().setOnItemLongClickListener(this);
    
            //添加數據
            /*ContentValues cv = new ContentValues();
            cv.put("name", "張三");
            cv.put("sex", "男");
            dbWrite.insert(MySql.TABLE_NAME,null,cv);*/
            select();
        }
    
        //查詢數據庫方法
        public void select() {
            //讀取數據
            Cursor cursor = dbRead.query(MySql.TABLE_NAME,null,null,null,null,null,null);     
            //刷新UI
            adapter.changeCursor(cursor);
        }
        //點擊添加方法
        @Override
        public void onClick(View v) {
            ContentValues cv = new ContentValues();
            cv.put(MySql.NAME, name.getText().toString());
            cv.put(MySql.SEX, sex.getText().toString());
            //添加到數據庫中
            dbWrite.insert(MySql.TABLE_NAME, null,cv);
            //查詢數據
            select();
        }
    
        //長按刪除
        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
            //獲取當前點擊的視圖
            TextView tv = (TextView)view.findViewById(R.id.name);
            //接受當前點擊的視圖的內容
            String name = tv.getText().toString().trim();
            System.out.print(name);
            //從數據庫中刪除數據
            dbWrite.execSQL("delete from user where name = ?",new String[] {name});
            select();
            return true;
        }
    }
    
    
    

    這里寫圖片描述


    聲明:
    1.知識點來源于《網易云課堂》——《Android基礎****》
    2.本文只用于本人自身學習記錄,如有侵權,請立即通知本人更改或刪除

    版權聲明:本文為qq_40740256原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/qq_40740256/article/details/82695018

    智能推薦

    Android SQlite數據庫使用詳解

    目錄 概述 SQLite使用 SQLite數據庫創建 增加數據 刪除數據 更新數據 查詢數據 完整代碼 概述 SQLite 一個非常流行的嵌入式數據庫,它支持 SQL 語言,并且只利用很少的內存就有很好的性能。此外它還是開源的,任何人都可以使用它。 查看模擬器數據庫傳送門:Android Studio查看SQLite數據庫方法大全 SQLite使用 SQLite數據庫創建 Android提供了一個...

    Android SQLite數據庫使用

    SQLite是一種輕量級的數據庫,存取數據非常快,非常適合移動設備的本地化存取數據。(Android系統中已經內置了SQLite數據庫) 數據庫的創建: SQLiteOpenHelper,該類是Android提供給我們的便于管理數據庫的一個抽象類,里面有兩個主要的抽象方法需要我們在繼承時進行重寫。分別是onCreate():數據庫創建時會調用;onUpgrade():數據庫升級時調用。另外還提供數...

    Android學習筆記:數據庫----持久化存儲技術SQLite的基本使用方法

    通過項目實踐,來熟悉利用SQLiteDatabase來操作SQLite的基本用法。 一、SQLite數據庫 1、創建 (1)、SQLite通過SQLiteOpenHelper幫助類來更方便的管理數據庫,SQLiteOpenHelper是一個抽象類,需要被繼承后實現自己的幫助類。 (2)、SQLiteOpenHelper有兩個抽象方法需要重寫:onCreate()和onUpgrade(),即創建和升...

    Android學習:學習使用SQLite數據庫(創建數據庫,升級數據庫,及對數據的CRUD操作)

    一、簡單的介紹SQLite數據庫 1、SQLite 一個非常流行的嵌入式數據庫,它支持 SQL 語言,并且只利用很少的內存就有很好的性能。此外它還是開源的,任何人都可以使用它。許多開源項目((Mozilla, PHP, Python)都使用了 SQLite. 2、SQLite 由以下幾個組件組成:SQL 編譯器、內核、后端以及附件。SQLite 通過利用虛擬機和虛擬數據庫引擎(VDBE),使調試、...

    android下的SQLite數據庫

    一·創建SQLite數據庫 在com.bmcq.db包中,再創建一個class,即跟MainActivity.java 是同一目錄下,我自己取名為personSQLiteHelper.java. 代碼如下: 然后我們把它布置到手機中后,會在DDMS中找到person.db, 然后用SQLite Expert Person打開它,就會出現下面的情況 此時數據庫就以創建成功! *二、sq...

    猜你喜歡

    Android中的SQLite數據庫

    SQLite是一個輕量級、自給自足、無服務器、零配置、關系型、事務性的 SQL 數據庫引擎。下面介紹下SQLite數據庫: 一、SQLite數據庫簡介 1.1 特性 輕量級:包體積小,完全配置時小于 400KiB,省略可選功能配置時可以小于250KiB 自給自足:不需要任何外部的依賴 無服務器:不需要部署服務支持 零配置:即不需要安裝或管理 事務性:支持事務操作,完全兼容 ACID 的,允許從多個...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    精品国产乱码久久久久久蜜桃不卡