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有興趣了解的可以點擊這里有更加詳細的教程
智能推薦
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....
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壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...