當前位置:首頁 » 安卓系統 » android資料庫demo

android資料庫demo

發布時間: 2023-05-23 19:33:13

① 跪求android將Excel表格中的數據導入資料庫中的demo

我只能給您思路,DEMO我沒。。。

這個你可以網路下具體過程。

我來告訴你大致思路。

  1. 首先,根據excel表格創建對象。最好欄位都一樣,不然怕你自己整迷糊了。

  2. 讀取excel文件

  3. 寫入資料庫

    資料庫工具:你可以用GreenDAO3.0框架,15分鍾差不多能學會,很簡單方便使用。其他沒有什麼難度點了。

② android 資料庫怎麼監聽數據變化

在android中經常會用到改變資料庫內容後再去使用資料庫更新的內容,很多人會重新去query一遍,但是這樣的問題就是程序會特別占內存,而且有可能會摟關cursor而導致程序內存未釋放等等。其實android內部提供了一種ContentObserver的東西來監聽資料庫內容的變化。

ContentObserver的構造函數需要一個參數Hanlder,因為ContentObserver內部使用了一個實現Runnable介面的內部類NotificationRunnable,來實現資料庫內容的變化。需要使用hanlder去post消息。注冊ContentObserver的方法是:getContentResolver().registerContentObserver(uri, notifyForDescendents, observer).

上面3個參數為:uri----Uri類型,是需要監聽的資料庫的uri.

notifyForDescendents---boolean true的話就會監聽所有與此uri相關的uri。false的話則是直接特殊的uri才會監聽。一般都設置為true.

observer-----ContentObserver 就是需要的contentobserver.

初始化一個ContentObserver對象,重載onChange(boolean ),在這個方法里去操作資料庫的使用,針對變化後的使用。

寫了一個小demo,可以參考下。提示這種監聽方式必須是contentprovider才能使用,因為contentprovider有uri.簡單的那種sqlite資料庫沒有uri是使用不了的。

下面demo操作的是在一個activityA里點擊button跳轉至另外一個activityB,在B中點擊button往資料庫中加數據,加完後關閉B回到A。A的button的文字自動變化設置到資料庫中的字元串。[code]

packagety.com.lto;
02
03importandroid.app.Activity;
04importandroid.content.Intent;
05importandroid.database.ContentObserver;
06importandroid.os.Bundle;
07importandroid.os.Handler;
08importandroid.view.View;
09importandroid.widget.Button;
10
{
12privateButtontestBtn;
13
14@Override
15protectedvoidonCreate(BundlesavedInstanceState){
16super.onCreate(savedInstanceState);
17setContentView(R.layout.listen_data_test);
18getContentResolver().registerContentObserver(DataChangeProvider.CONTENT_URI,
19true,cob);
20
21testBtn=(Button)findViewById(R.id.test_btn);
22testBtn.setOnClickListener(newView.OnClickListener(){
23
24publicvoidonClick(Viewv){
25Intentin=newIntent(ListenDataTest.this,DataChangeTest.class);
26startActivity(in);
27
28}
29});
30
31}
32
33privateContentObservercob=newContentObserver(newHandler()){
34
35@Override
(){
37returnsuper.deliverSelfNotifications();
38}
39
40@Override
41publicvoidonChange(booleanselfChange){
42super.onChange(selfChange);
43testBtn.setText(DataUtils.getChangeName(getApplicationContext()));
44}
45
46};
47
48@Override
49protectedvoidonDestroy(){
50super.onDestroy();
51getContentResolver().unregisterContentObserver(cob);
52}
53
54
55}
[code]01packagety.com.lto;
02
03importandroid.app.Activity;
04importandroid.content.ContentValues;
05importandroid.content.Intent;
06importandroid.database.ContentObservable;
07importandroid.database.ContentObserver;
08importandroid.os.Bundle;
09importandroid.os.Handler;
10importandroid.view.View;
11importandroid.widget.Button;
12
{
14privateButtondataBtn;
15DataSqlitemDataSqlite;
16@Override
17protectedvoidonCreate(BundlesavedInstanceState){
18super.onCreate(savedInstanceState);
19setContentView(R.layout.data_change_test);
20dataBtn=(Button)findViewById(R.id.data_test_btn);
21mDataSqlite=newDataSqlite(this);
22dataBtn.setOnClickListener(newView.OnClickListener(){
23
24publicvoidonClick(Viewv){
25ContentValuescon=newContentValues();
26con.put("name","數據變化了");
27getContentResolver().insert(DataChangeProvider.CONTENT_URI,con);
28finish();
29}
30});
31}
32}
[code]viewsourceprint?
001packagety.com.lto;
002
003
004importandroid.content.ContentProvider;
005importandroid.content.ContentUris;
006importandroid.content.ContentValues;
007importandroid.content.Context;
008importandroid.content.UriMatcher;
009importandroid.database.Cursor;
010importandroid.database.SQLException;
011importandroid.database.sqlite.SQLiteDatabase;
012importandroid.database.sqlite.SQLiteOpenHelper;
013importandroid.database.sqlite.SQLiteQueryBuilder;
014importandroid.database.sqlite.SQLiteDatabase.CursorFactory;
015importandroid.net.Uri;
016importandroid.text.TextUtils;
017
{
;
=1;
_ID=2;
=newUriMatcher(UriMatcher.NO_MATCH);
_URI=Uri.parse("content://ty.com.lto/test");
024
025static{
026sURLMatcher.addURI("ty.com.lto","test",ALARMS);
027sURLMatcher.addURI("ty.com.lto","test/#",ALARMS_ID);
028}
029
{
_DATABASE="test.db";
=1;
033
034publicDatabaseHelper(Contextcontext){
035super(context,TEST_DATABASE,null,VERSION);
036//TODOAuto-generatedconstructorstub
037}
038
039
040@Override
041publicvoidonCreate(SQLiteDatabasedb){
042Stringsql="CREATETABLE"+"test"+"("+
043"_idINTEGERPRIMARYKEY,"+
044"nameTEXT"+
045");";
046db.execSQL(sql);
047}
048
049@Override
050publicvoidonUpgrade(SQLiteDatabasedb,intoldVersion,intnewVersion){
051Stringsql="DROPTABLEIFEXIST"+TEST_DATABASE;
052db.execSQL(sql);
053onCreate(db);
054}
055
056}
057
058publicDataChangeProvider(){
059}
060
061@Override
062publicintdelete(Uriurl,Stringwhere,String[]whereArgs){
063SQLiteDatabasedb=mOpenHelper.getWritableDatabase();
064intcount;
065longrowId=0;
066switch(sURLMatcher.match(url)){
067caseALARMS:
068count=db.delete("test",where,whereArgs);
069break;
070caseALARMS_ID:
071Stringsegment=url.getPathSegments().get(1);
072

③ android開發怎麼存儲數據

Android平台開發過程中,進行數據存儲的方式有五種,一下是這五種數據存儲的總結:

第一種:使用SharedPreferences存儲數據

適用范圍:保存少量的數據,且這些數據的格式非常簡單:字元串型、基本類型的值。比如應用程序的各種配置信息(如是否打開音效、是否使用震動效果、小游戲的玩家積分等),解鎖口 令密碼等

核心原理:保存基於XML文件存儲的key-value鍵值對數據,通常用來存儲一些簡單的配置信息。通過DDMS的File Explorer面板,展開文件瀏覽樹,很明顯SharedPreferences數據總是存儲在/data/data/<package name>/shared_prefs目錄下。SharedPreferences對象本身只能獲取數據而不支持存儲和修改,存儲修改是通過SharedPreferences.edit()獲取的內部介面Editor對象實現。SharedPreferences本身是一 個介面,程序無法直接創建SharedPreferences實例,只能通過Context提供的getSharedPreferences(String name, int mode)方法來獲取SharedPreferences實例,該方法中name表示要操作的xml文件名,第二個參數具體如下:

Context.MODE_PRIVATE: 指定該SharedPreferences數據只能被本應用程序讀、寫。

Context.MODE_WORLD_READABLE:指定該SharedPreferences數據能被其他應用程序讀,但不能寫。

Context.MODE_WORLD_WRITEABLE:指定該SharedPreferences數據能被其他應用程序讀,寫

Editor有如下主要重要方法:

SharedPreferences.Editor clear():清空SharedPreferences里所有數據

SharedPreferences.Editor putXxx(String key , xxx value):向SharedPreferences存入指定key對應的數據,其中xxx 可以是boolean,float,int等各種基本類型據

SharedPreferences.Editor remove():刪除SharedPreferences中指定key對應的數據項

boolean commit():當Editor編輯完成後,使用該方法提交修改

實際案例:運行界面如下

Android sqlite3資料庫管理工具

Android SDK的tools目錄下提供了一個sqlite3.exe工具,這是一個簡單的sqlite資料庫管理工具。開發者可以方便的使用其對sqlite資料庫進行命令行的操作。

程序運行生成的*.db文件一般位於"/data/data/項目名(包括所處包名)/databases/*.db",因此要對資料庫文件進行操作需要先找到資料庫文件:

1、進入shell 命令

adb shell

2、找到資料庫文件

#cd data/data
#ls --列出所有項目
#cd project_name --進入所需項目名
#cd databases
#ls --列出現寸的資料庫文件

3、進入資料庫

#sqlite3 test_db --進入所需資料庫

會出現類似如下字樣:

SQLite version 3.6.22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>

至此,可對資料庫進行sql操作。

4、sqlite常用命令

>.databases --產看當前資料庫
>.tables --查看當前資料庫中的表
>.help --sqlite3幫助
>.schema --各個表的生成語句

以上便是android開發存儲數據的五種方法!

④ android 中的資料庫存在在工程中的哪個目錄下

Android中有內置的資料庫SQLite,其默認存儲位置是在:標題欄中Window->show view->File Exporer->data/data/應用項目的包名,例如:假如有一個操作Android SQLite資料庫的應用包名為com.example.xutilsdemo,那麼其內置的資料庫的存儲位置即為:/data/data/com.example.xutilsdemo/databases/xxx.db

⑤ android 怎麼讀取資料庫中的數據

android讀取資料庫可以使用sqlite一些api進行讀取,實例如下:

java">/**
*查找一條數據
*@paramuid
*/
publicUserfind(Integeruid){
SQLiteDatabasedb=dbOpenHelper.getReadableDatabase();//創建資料庫輔助類
Cursorcursor=db.rawQuery("select*fromuserwhereuid=?",newString[]{uid.toString()});//創建一個游標
if(cursor.moveToFirst()){//循環遍歷查找數組
intuid2=cursor.getInt(cursor.getColumnIndex("uid"));
Stringuname=cursor.getString(cursor.getColumnIndex("uname"));
Stringuaddress=cursor.getString(cursor.getColumnIndex("uaddress"));
Useruser=newUser();
user.setUid(uid2);
user.setUname(uname);
user.setUaddress(uaddress);
returnuser;
}
cursor.close();
returnnull;
}
熱點內容
新的怎麼注冊微信賬號密碼忘了怎麼辦 發布:2025-02-12 15:50:08 瀏覽:658
android代碼搜索 發布:2025-02-12 15:45:36 瀏覽:778
矢量圖演算法 發布:2025-02-12 15:43:53 瀏覽:192
python量化投資入門 發布:2025-02-12 15:34:17 瀏覽:174
蘋果的天氣跟安卓的天氣哪個准 發布:2025-02-12 15:33:37 瀏覽:313
西安分布式存儲咨詢 發布:2025-02-12 15:33:24 瀏覽:179
我的世界伺服器怎麼獲得32k亂碼棒 發布:2025-02-12 15:25:15 瀏覽:545
hadoopftp 發布:2025-02-12 15:22:23 瀏覽:753
ftp怎麼增加 發布:2025-02-12 15:21:08 瀏覽:379
改裝車載中控什麼配置 發布:2025-02-12 15:10:00 瀏覽:861