Android學習(24)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.本文只用于本人自身學習記錄,如有侵權,請立即通知本人更改或刪除
智能推薦
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 的,允許從多個...
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壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...