Both Android and iOS databases are implemented using SQLite.
1. Introduction to SQLite database:
Lightweight: SQLite database is a lightweight database suitable for CURDs with a small amount of data;
File nature: SQLite database supports most SQL syntax and allows the use of SQL statements to operate the database. Its essence is a file and does not require installation and startup.
Data Read and Write: SQLite database opening is just a file read and write stream.
2. Simple database statement knowledge
On the Android platform, an embedded relational database is integrated - SQLite. SQLite3 supports NULL, INTEGER, REAL (floating point number), TEXT (string text) and BLOB (binary object) data types. In fact, sqlite3 also accepts data types such as varchar(n), char(n), decimal(p,s), etc., but it will be converted into the corresponding five data types during operation or saving.
The biggest feature of SQLite is that you can save various types of data into any field without caring about what the data type declared by the field is.
Today I will use a simple column to illustrate to implement SQLite.
Example code:
import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; import ; public class MainActivity extends Activity { private static final String TAG = "JGPS/MainActivity"; private TextView mAdd_white = null; private ListView mWhiteListView = null; private Context mContext = null; private int mPosition; private DBHelper mDBHelper = null; private WhiteListAdapter mAdapter = null; private ArrayList<Item> mWhiteListItem = new ArrayList<Item>(); @Override protected void onCreate(Bundle savedInstanceState) { ("JGPS/Start", "onCreate"); (savedInstanceState); setContentView(.relative_main); = new DBHelper(this); = this; = new ArrayList<Item>(); = (ListView)findViewById(.list_view); initData(); (new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> paramAdapterView, View paramView, int paramInt, long paramLong) { ("JGPS/MainActivity", ""+paramInt); ((Item)(paramInt)); } }); if (this.mAdd_white == null) return; mAdd_white.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { (); } }); ("JGPS/end", "onCreate"); } private void initData() { = (); if (() != 3) { for (int i = 1; i < 4; i++) { ("JGPS/MainActivity", "initData,"); (""); addItemToList(localItem1); updateSetting(i,""); } = (); } Iterator localIterator = (); while (()) { Item localItem2 = (Item) (); ("JGPS/MainActivity", "initData,,name = " + () + ",number=" + ()); } = new WhiteListAdapter(this, ); (mAdapter); } private void updateSetting(int id, String phoneNum) { switch (id) { case 1: putSting("phone_num1",phoneNum); break; case 2: putSting("phone_num2",phoneNum); break; case 3: putSting("phone_num3",phoneNum); break; default: ("JGPS/MainActivity", "Wrong relative number id"); } } private void putSting(String paramString1, String paramString2) { localEditor = getSharedPreferences("sos_config", 0).edit(); (paramString1, paramString2); (); } protected void updateWhiteList(Item paramItem) { final Item item = paramItem; ("JGPS/MainActivity", "updateWhiteList------" + ()); final Dialog localDialog = new Dialog(this, ); (); Window localWindow = (); (.dialog_editor); Button localButton1 = (Button) (.btn_ok); Button localButton2 = (Button) (.btn_cancel); final EditText phone = (EditText)(); final EditText name = (EditText)(); (()); (()); ((TextView)()).setText(.edit_white); (new OnClickListener() { @Override public void onClick(View paramView) { if (().toString().trim().length() == 0) { (mContext, .toast_tel, 2000).show(); return; } if (().toString().trim().length() == 0) { (mContext, .name_null, 2000).show(); return; } ((), ().toString(), ().toString()); int id = (()); updateSetting(id, ().toString()); (mContext, .edit_success, 2000).show(); (); } }); (new OnClickListener() { @Override public void onClick(View paramView) { (); } }); } protected void updateContactInDB(String paramString1, String paramString2, String paramString3) { Item localItem = new Item(); (paramString1); (paramString2); (paramString3); updateItemList(localItem); } private void updateItemList(Item paramItem) { Item localItem2; Iterator localIterator1 = (); while (()) { localItem2 = (Item) (); if (().equals(())) { (()); (()); (paramItem); } } ("JGPS/MainActivity", "updateItemInList ---------"); = new WhiteListAdapter(this, ); (mAdapter); } private void addContactList() { final Dialog dialog = new Dialog(this, ); (); Window window = (); (.dialog_editor); Button btn1 = (Button)(.btn_ok); Button btn2 = (Button)(.btn_cancel); final EditText phone = (EditText)(); final EditText name = (EditText)(); (new OnClickListener() { @Override public void onClick(View arg0) { if (().toString().trim().length() == 0) { (mContext, .toast_tel, 2000).show(); return; } if (().toString().trim().length() == 0) { (mContext, .name_null, 2000).show(); return; } if (()>3) { String str = ().getString(.full1)+ " " + 3 + " " + ().getString(.full2); (mContext, str, 2000).show(); (); return; } (().toString(),().toString()); (); } }); (new OnClickListener() { @Override public void onClick(View arg0) { (); } }); } protected void deleteContactFromDB(String paramString) { updateContactInDB(paramString, "", ""); ("JGPS/MainActivity", "===addItemToList = "+paramString); int id = (paramString); updateSetting(id, paramString); (, .delete_success, 2000).show(); } @Override protected void onStart() { ("JGPS/MainActivity", "onStart()"); (); } protected void startContactIntent(int paramInt) { ("JGPS/MainActivity", "onClick " + paramInt); = paramInt; Intent localIntent = new Intent(""); ("/phone_v2"); startActivityForResult(localIntent, 100); } protected void addContactToDB(String paramString1, String paramString2) { Iterator localIterator = (); while (()) { if(((Item)()).getNumber().equals(paramString2)){ (mContext, , 2000).show(); return; } } Item localItem = new Item(); (paramString1); (paramString2); addItemToList(localItem); (mContext, , 2000).show(); } private void addItemToList(Item localItem) { ("JGPS/MainActivity", "addItemToList,name = " + () + ",number=" + ()); (localItem); = (); = new WhiteListAdapter(this, ); (mAdapter); } public void startActivityForResult(Intent paramIntent, int paramInt) { (paramIntent, paramInt); } private class WhiteListAdapter extends BaseAdapter{ private Context context; private LayoutInflater mInflater; private ArrayList<Item> listItem; public WhiteListAdapter(Context context1, ArrayList<Item> whiteListItem) { = context1; = whiteListItem; = (context); } public int getCount() { if (( !=null) && (() > 0)) { return 3; } return 0; } public Object getItem(int paramInt) { if (( != null) && (() > 0)) return (paramInt); return null; } public long getItemId(int paramInt) { return 0L; } @Override public View getView(int paramInt, View paramView, ViewGroup paramViewGroup) { ("JGPS/MainActivity", "getView,position=" + paramInt + ",name=" + ((Item)(paramInt)).getName() + ",num=" + ((Item)(paramInt)).getNumber()); if (paramView == null) { final ViewHolder localViewHolder = new ViewHolder(); paramView = (.relative_list_item, null); = (ImageView)(.imageView_call); = (ImageView)(.imageView_delete); = (ImageView)(.recipients_picker); localViewHolder.txtView_name = (TextView)(.txtView_name); localViewHolder.txtView_tel = (TextView)(.txtView_number); (localViewHolder); = paramInt; (localViewHolder); if (((paramInt)== null)|| (((Item)(paramInt)).getNumber() == null) || (((Item)(paramInt)).getNumber().equals(""))) { (); (); String str1 = (.family_string); String str2 = str1 + (paramInt + 1) + ":"; localViewHolder.txtView_name.setText(str2); localViewHolder.txtView_tel.setText(.click_to_add); }else { (); (); localViewHolder.txtView_name.setText(((Item)(paramInt)).getName()); localViewHolder.txtView_tel.setText(((Item)(paramInt)).getNumber()); } (new OnClickListener() { @Override public void onClick(View paramView) { localViewHolder = ()(); ("JGPS/MainActivity", "getView,mPosition=" + ); (); } }); if ((!(((Item)(paramInt)).getName().equals(""))) || (!(((Item)(paramInt)).getNumber().equals("")))) { (); }else { (); } (new OnClickListener() { @Override public void onClick(View paramView) { Intent localIntent = new Intent("", ("tel:" + ((Item)()).getNumber())); (localIntent); } }); (new OnClickListener() { @Override public void onClick(View paramView) { if(() != .imageView_delete) return; final String str = ((Item)()).getId(); ("JGPS/MainActivity", "delete item onClick,strId=" + str + ",position=" + ); final Dialog localDialog = new Dialog(, ); (); Window localWindow = (); (.dialog_delete); ((TextView)(.txtView_delete)).setText(().getString(.delete_one) + "'" + ((Item)()).getName() + "'" + ().getString(.delete_two)); Button localButton1 = (Button) (.btn_ok); Button localButton2 = (Button) (.btn_cancel); (new OnClickListener() { @Override public void onClick(View paramView) { (str); (); } }); (new OnClickListener() { @Override public void onClick(View paramView) { (); } }); } }); }else { } return paramView; } public class ViewHolder{ public ImageView ivCall; public ImageView ivDelete; public ImageView ivSelect; public int position; public TextView txtView_name; public TextView txtView_tel; } } } import ; import ; import ; import ; import ; import ; import ; public class DBHelper extends SQLiteOpenHelper { public static final String TABLE_RELATIVES_CONTENT = "RelativesContent"; public static final int VERSION = 1; //Versionpublic static final String dbName = "SosDB"; //The name of the databasepublic static Context mContext = null; public SQLiteDatabase db = null; public DBHelper(Context paramContext) { super(paramContext, "SosDB", null, 1); mContext = paramContext; } // Create database table@Override public void onCreate(SQLiteDatabase paramSQLiteDatabase) { ("create table RelativesContent(id integer primary key autoincrement,name text , number text)"); closeDatabase(); } private void closeDatabase() { if ( == null) return; (); } @Override public void onUpgrade(SQLiteDatabase paramSQLiteDatabase, int paramInt1, int paramInt2) { onCreate(paramSQLiteDatabase); } //Query methodpublic ArrayList<Item> getRelativesList() { String idf = null; String namef = null; String numf = null; ArrayList localArrayList = new ArrayList(); openDatabase(); Cursor localCursor = ("RelativesContent", null, null, null, null, null, null); if(localCursor == null) return localArrayList; while (()) { Item localItem = new Item(); idf = (("id")); namef = (("name")); numf = (("number")); (idf); ("JGPS/MainActivity", "db".equals(namef))) { (""); }else { (namef); } if ((numf == null) || ("".equals(numf))) { (""); }else { (numf); } (localItem); } return localArrayList; } //Write dataprivate void openDatabase() { = (); } //Add datapublic boolean addRelativesItem(Item localItem) { openDatabase(); ContentValues localContentValues = new ContentValues(); ("name", ()); ("number", ()); long l = ("RelativesContent", null, localContentValues); closeDatabase(); return (1<=0L); } //Update datapublic boolean updateRelativesItem(Item paramItem) { openDatabase(); ContentValues localContentValues = new ContentValues(); ("name", ()); ("number", ()); SQLiteDatabase localSQLiteDatabase = ; String[] arrayOfString = new String[1]; arrayOfString[0] = (); long l = ("RelativesContent", localContentValues, "id=?", arrayOfString); closeDatabase(); return (1 <= 0L); } } import ; public class Item implements Serializable{ private String _id; private String name; private String number; public Item() { // TODO Auto-generated constructor stub } public void Item(String paramString1, String paramString2, String paramString3) { this._id = paramString1; = paramString2; = paramString3; } public String getId() { return _id; } public void setId(String paramString) { this._id = paramString; } public String getName() { return name; } public void setName(String paramString) { = paramString; } public String getNumber() { return number; } public void setNumber(String paramString) { = paramString; } }
This is the basic data program.
XML
relative_main
<LinearLayout android:orientation="vertical" android:background="@color/background_color" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:andro> <RelativeLayout android:background="@drawable/title_bar" android:layout_width="fill_parent" android:layout_height="50.0sp"> <TextView android:textSize="@dimen/title_size" android:textStyle="bold" android:textColor="@color/title_color" android:gravity="center" android:layout_gravity="center" android:layout_width="wrap_content" android:layout_height="50.0sp" android:text="@string/relative_name" android:layout_centerInParent="true" /> </RelativeLayout> <RelativeLayout android: android:layout_width="fill_parent" android:layout_height="wrap_content"> <ListView android: android:scrollbars="none" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollingCache="true" android:cacheColorHint="#00000000" android:divider="@null" android:fastScrollEnabled="false" /> </RelativeLayout> </LinearLayout> dialog_editor <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andro android:gravity="center" android:orientation="vertical" android: android:layout_width="300.0dip" android:layout_height="wrap_content"> <TextView android:textSize="20.0sp" android:textColor="#ffffffff" android:gravity="center" android: android:background="@drawable/popup_topbg" android:layout_width="fill_parent" android:layout_height="60.0dip" android:text="@string/add_white" /> <LinearLayout android:orientation="vertical" android:background="@drawable/simple_dialog_list_item_bg" android:paddingLeft="5.0dip" android:paddingTop="5.0dip" android:paddingRight="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content"> <LinearLayout android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:layout_marginTop="6.0dip" android:layout_marginRight="6.0dip" android:layout_marginBottom="2.0dip"> <TextView android:textSize="16.0sp" android:textColor="#ff000000" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/name" /> <EditText android:gravity="left|center" android: android:background="@drawable/text_input" android:layout_width="210.0dip" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:hint="@string/name_hint" android:singleLine="true" /> </LinearLayout> <LinearLayout android:layout_gravity="center" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:layout_marginRight="6.0dip"> <TextView android:textSize="16.0sp" android:textColor="#ff000000" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/address" /> <EditText android:gravity="left|center" android: android:background="@drawable/text_input" android:layout_width="210.0dip" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:hint="@string/address_hint" android:singleLine="true" android:inputType="phone" /> </LinearLayout> <include layout="@layout/divider" /> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="54.0dip"> <Button android:textSize="20.0sp" android: android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/ok" android:layout_weight="5.0" style="@style/dialog_item" /> <View android:background="#ffbcc2c5" android:layout_width="2.0px" android:layout_height="fill_parent" /> <Button android:textSize="20.0sp" android: android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/cancel" android:layout_weight="5.0" style="@style/dialog_item" /> </LinearLayout> </LinearLayout> </LinearLayout>
relative_list_item
<LinearLayout xmlns:andro android:gravity="center_vertical" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="40.0dip" style="@style/list_item_background"> <LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android: android:paddingLeft="5.0dip" android:paddingRight="5.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0"> <TextView android:textSize="@dimen/list_font_size_0" android:textStyle="bold" android:textColor="@color/list_item_text" android:ellipsize="end" android:gravity="center" android: android:paddingBottom="3.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxWidth="80.0dip" android:singleLine="true" /> <TextView android:textSize="@dimen/list_font_size_1" android:textStyle="bold" android:textColor="@color/list_item_text" android:ellipsize="end" android:gravity="center" android: android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10.0dip" android:singleLine="true" /> </LinearLayout> <ImageView android:layout_gravity="center_vertical" android: android:background="@drawable/btn_dial_action" android:paddingLeft="8.0dip" android:paddingTop="8.0dip" android:paddingRight="8.0dip" android:paddingBottom="8.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/call_phone" />" <ImageView android:layout_gravity="center_vertical" android: android:background="@drawable/add_contact_selector" android:layout_width="65.0dip" android:layout_height="65.0dip" android:layout_marginLeft="2.0dip" android:layout_marginRight="2.0dip" android:scaleType="fitXY" /> <View android: android:background="#2b2b2b2b" android:layout_width="2.0dip" android:layout_height="40.0dip" /> <ImageView android:layout_gravity="right|center" android: android:paddingLeft="8.0dip" android:paddingTop="8.0dip" android:paddingRight="8.0dip" android:paddingBottom="8.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/del_cross" /> </LinearLayout>
dialog_delete
<LinearLayout xmlns:andro android:gravity="center" android:orientation="vertical" android: android:layout_width="300.0dip" android:layout_height="wrap_content"> <TextView android:textSize="20.0sp" android:textColor="#ffffffff" android:gravity="center" android:background="@drawable/popup_topbg" android:layout_width="fill_parent" android:layout_height="60.0dip" android:text="@string/tips" /> <LinearLayout android:orientation="vertical" android:background="@drawable/simple_dialog_list_item_bg" android:paddingLeft="5.0dip" android:paddingTop="12.0dip" android:paddingRight="5.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:textSize="20.0sp" android:textColor="#ff000000" android: android:paddingBottom="12.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:layout_marginRight="6.0dip" /> <include layout="@layout/divider" /> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="54.0dip"> <Button android:textSize="20.0sp" android: android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/dialog_yes" android:layout_weight="5.0" style="@style/dialog_item" /> <View android:background="#ffbcc2c5" android:layout_width="2.0px" android:layout_height="fill_parent" /> <Button android:textSize="20.0sp" android: android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/dialog_no" android:layout_weight="5.0" style="@style/dialog_item" /> </LinearLayout> </LinearLayout> </LinearLayout>
This is a simple demo. I will not explain the details of the database in detail here. For those who are already familiar with the database, you can check the instructions on the Android official website.
Thank you for reading, I hope it can help you. Thank you for your support for this site!