• <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——SQLite數據庫(簡單操作)

    標簽: Android  GT使用教程  GT Hibernate 數據庫

    本篇文章源碼:https://github.com/1079374315/HibernateDome

    超級簡單的SQLite使用如:(不需要寫任何SQL語句完成以下操作)

    1.創建數據庫  1 行代碼

    2.添加數據 1 行代碼

    3.刪除數據 1 行代碼

    4.修改數據 1 行代碼

    5.查詢數據 1 行代碼

    從創建數據庫到數據庫的增刪查改總共 5 行代碼。

    先看效果圖:

    如果有興趣咋們跟著小編往下操作:

     

    第一步:小編將數據庫復雜的操作封裝好并放在GitHub上所以需要簡單的依賴一下

    項目下app的build.gradle中依賴:

    1. 將以下存儲庫將其添加到根構建中。存儲庫末尾的 詳細依賴篇

    allprojects {
        repositories {
            google()
            jcenter()
            maven { url 'https://jitpack.io' }
        }
    }

    2. 添加依賴關系

    dependencies {
     ....
     //GT基礎功能
     implementation 'com.github.1079374315:GSLS_Tool:v1.1.7'//如果不需要使用全部功能,可以只添加GT基礎依賴。
    }

    添加好依賴后就可以來干貨了

    項目目錄:標紅箭頭的是接下來要添加的

     

    第二步:添加 xml 布局文件,直接復制粘貼 就行。

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#FFFFFF"
        android:padding="5dp">
    
        <TextView
            android:id="@+id/tv_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#F19191"
            android:fontFamily="serif"
            android:padding="5dp"
            android:text="GT Hibernate"
            android:textAllCaps="false"
            android:textColor="#000000"
            android:textSize="25sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:orientation="vertical"
            app:layout_constraintBottom_toTopOf="@+id/l1"
            app:layout_constraintTop_toBottomOf="@+id/tv_title">
    
            <TextView
                android:id="@+id/tv_sql"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="20dp"
                android:gravity="center" />
    
        </ScrollView>
    
        <LinearLayout
            android:id="@+id/l1"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:background="#6426C1D5"
            android:orientation="vertical"
            android:padding="5dp"
            app:layout_constraintBottom_toTopOf="@+id/l2">
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="ID:"
                    android:textSize="20sp" />
    
                <EditText
                    android:id="@+id/et_id"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:hint="請輸入ID"
                    android:inputType="number" />
            </LinearLayout>
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="UserName:"
                    android:textSize="20sp" />
    
                <EditText
                    android:id="@+id/et_userName"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:hint="請輸入用戶名" />
            </LinearLayout>
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="PassWord:"
                    android:textSize="20sp" />
    
                <EditText
                    android:id="@+id/et_passWord"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:hint="請輸入密碼" />
            </LinearLayout>
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="LoginRole:"
                    android:textSize="20sp" />
    
                <EditText
                    android:id="@+id/et_loginRole"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:hint="請輸入登錄角色" />
            </LinearLayout>
    
        </LinearLayout>
    
        <LinearLayout
            android:id="@+id/l2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:padding="5dp"
            app:layout_constraintBottom_toBottomOf="parent">
    
            <Button
                android:id="@+id/btn_save"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="增加" />
    
            <Button
                android:id="@+id/btn_delete"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="刪除" />
    
            <Button
                android:id="@+id/btn_query"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="查詢" />
    
            <Button
                android:id="@+id/btn_update"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="修改" />
    
        </LinearLayout>
    
    </androidx.constraintlayout.widget.ConstraintLayout>

    第三步:創建實體類

    @GT.Hibernate.GT_Entity//標識待Hibernate掃描的持久化類
    public class LoginBean {
    
        @GT.Hibernate.GT_Key(autoincrement = false)//標識主鍵屬性并設置不自增
        private int loginID;//登錄ID
        private String userName;//用戶名稱
        private String passWord;//用戶密碼
        private String loginRole;//角色
    
        public LoginBean() {
            super();
        }
    
        public LoginBean(int loginID, String userName, String passWord, String loginRole) {
            this.loginID = loginID;
            this.userName = userName;
            this.passWord = passWord;
            this.loginRole = loginRole;
        }
    
        public String getLoginRole() {
            return loginRole;
        }
    
        public void setLoginRole(String loginRole) {
            this.loginRole = loginRole;
        }
    
        public int getLoginID() {
            return loginID;
        }
    
        public void setLoginID(int loginID) {
            this.loginID = loginID;
        }
    
        public String getUserName() {
            return userName;
        }
    
        public void setUserName(String userName) {
            this.userName = userName;
        }
    
        public String getPassWord() {
            return passWord;
        }
    
        public void setPassWord(String passWord) {
            this.passWord = passWord;
        }
    
        @Override
        public String toString() {
            return "LoginBean{" +
                    "loginID=" + loginID +
                    ", userName='" + userName + '\'' +
                    ", passWord='" + passWord + '\'' +
                    ", loginRole='" + loginRole + '\'' +
                    '}';
        }
    }

    第四步:寫MainActivity 文件

    @GT.Annotations.GT_Activity(R.layout.activity_main)
    public class MainActivity extends GT.AnnotationActivity {
    
        //實例化 Hibernate 數據庫
        @GT.Hibernate.Build(sqlName = "GT",sqlVersion = 1)//指定數 據庫名稱 與 數據庫版本號
        private GT.Hibernate hibernate;
    
        //獲取組件
        @GT.Annotations.GT_View(R.id.tv_sql)
        private TextView tv_sql;
        @GT.Annotations.GT_View(R.id.et_id)
        private EditText et_id;
        @GT.Annotations.GT_View(R.id.et_userName)
        private EditText et_userName;
        @GT.Annotations.GT_View(R.id.et_passWord)
        private EditText et_passWord;
        @GT.Annotations.GT_View(R.id.et_loginRole)
        private EditText et_loginRole;
    
        @Override
        protected void initView(Bundle savedInstanceState) {
            build(this);//綁定 Activity
            updateSqlData();//更新數據庫數據
        }
    
        @GT.Annotations.GT_Click({R.id.btn_save, R.id.btn_delete, R.id.btn_query, R.id.btn_update})
        public void OnBtnClick(View view) {
            switch (view.getId()) {
                case R.id.btn_save:
                    boolean status = hibernate.save(getLoginBean()).isStatus();//保存數據
                    showToast(status,"保存");//顯示 成功或失敗 吐司
                    break;
                case R.id.btn_delete:
                    status = hibernate.delete(LoginBean.class, getLoginBean().getLoginID()).isStatus();//根據ID刪除數據
                    showToast(status,"刪除");//顯示 成功或失敗 吐司
                    break;
                case R.id.btn_query:
                    updateSqlData();//更新數據庫數據
                    toast("更新數據庫數據");
                    break;
                case R.id.btn_update:
                    LoginBean loginBean = getLoginBean();
                    //根據ID更新數據
                    status = hibernate.update(LoginBean.class, loginBean, new String[]{"loginID"}, new String[]{String.valueOf(loginBean.getLoginID())}).isStatus();
                    showToast(status,"更新");//顯示 成功或失敗 吐司
                    break;
            }
        }
    
        //獲取頁面中輸入數據的 LoginBean
        private LoginBean getLoginBean() {
            //判空
            String key = et_id.getText().toString();
            if ("".equals(key)) {
                key = "0";
            }
            int id = Integer.parseInt(key);
            String userName = et_userName.getText().toString();
            String passWord = et_passWord.getText().toString();
            String loginRole = et_loginRole.getText().toString();
            return new LoginBean(id, userName, passWord, loginRole);
        }
    
        //查詢數據庫數據并顯示
        private void updateSqlData() {
            List<LoginBean> loginBeans = hibernate.queryAll(LoginBean.class);//查詢LoginBean表中所有數據
            String showSql = "當前數據庫中有 " + loginBeans.size() + " 條數據" + "\r\n" + "\r\n";
            for (LoginBean loginBean : loginBeans) {//遍歷顯示
                showSql += loginBean.toString() + "\r\n" + "\r\n";
            }
            tv_sql.setText(showSql);
        }
    
        //顯示成功或失敗
        private void showToast(boolean status, String style){
            if (status) {
                toast(style + "成功!");
                updateSqlData();//更新數據庫數據
            } else {
                toast(style + "失敗!");
            }
        }
    
    }

    簡單的操作,一目了然。

    如果對該封裝的SQLite有興趣了解的可以點擊這里有更加詳細的教程

     

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

    智能推薦

    Android-SQLite-創建簡單數據庫

    1. 前言 SQLite特點: 1. 輕型的開源嵌入式數據庫 2. 可移植性很好,支持現在Windoes,Linux等主流的OS 3. 與多種開發語言結合 2. 步驟 Android通過獲得SQLiteDatabase的對象來進行管理操作數據庫, 1. 創建數據庫 SQLiteDatabase.openOnCreateDatabase("student.db",null) 兩個...

    python+sqlite3 實現簡單操作sqlite數據庫的demo

    sqlite功能簡約,小型,是一個自包含、基于文件的數據庫。它的功能直接被集成在數據庫文件中,應用會直接訪問包含數據的文件(即SQLite數據庫),而不是通過一些端口(port, socket)來交互,只需要在本地創建一個虛擬的sqlite文件即可。 當然,要滿足多用戶同時訪問,或者是網站訪問量比較大是使用MYSQL比較合適。 下面用python+sqlite3實現一個簡單操作sqlite數據庫的...

    iOS——SQLite數據庫操作

    iOS——SQLite數據庫操作 首先介紹一下SQLite數據庫以及為什么要用ta: SQLite是一款輕型的嵌入式數據庫,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。它的處理速度比Mysql、PostgreSQL這兩款著名的數據庫都還快。 數據庫的存儲結構和excel很像,以表(table)為單位 新建數據庫文件 新建一張表(table) 添加多個字...

    python操作sqlite數據庫

    SQLite數據庫是一款輕量級的數據庫,無服務器、零配置、事務性的SQL數據庫引擎。SQLite是世界上最廣泛部署的SQL數據庫引擎,而且SQLite的源代碼不受版權限制,是小型項目和簡單web應用的理想選擇。SQLite數據庫是一個單一的,不依賴于其他模塊與組件的數據庫文件,它允許我們直接訪問存儲文件。而且,SQLite也不需要針對特定的系統進行設置。python的標準庫中已經包含了支持SQLi...

    猜你喜歡

    SQLite數據庫的CRUD操作

    1.新建名為DbHelper的SQLite數據庫打開助手類 2.新建名為MyDAO的數據庫訪問類 3.列表控件ListView使用的布局list_item.xml 4.最后編寫MainActivity 運行效果如下 參考文獻. 實驗代碼:MySQLite....

    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壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

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