歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android開發教程:使用已有的SQL數據庫

之前我們使用的數據庫都是在代碼裡面創建的。下面介紹一下如果使用外部已有的sql數據庫。

先用SQLite管理工具,sqliteadmin 具體操作很簡單,在這裡我就不詳細介紹的了,但有一個地方時候很值得注意的,就是用sqliteadmin創建數據庫的時候,數據庫保存的路徑不能是中文路徑,中文路徑會出現下面的錯誤提示:

650) this.width=650;">

昨天 12:13 上傳下載附件 (14.6 KB)  

我在sqliteadmin 創建好數據庫StuDB,裡面的表如下:

650) this.width=650;">

 將創建好的數據庫在DDMS中點擊650) this.width=650;">導入到data/data/程序的包名/ 

650) this.width=650;">

SQLiteTestActivity.java

  1. package com.lingdududu.test;  
  2.  
  3. import Android.app.Activity;  
  4. import android.database.Cursor;  
  5. import android.database.sqlite.SQLiteDatabase;  
  6. import android.os.Bundle;  
  7. import android.view.View;  
  8. import android.view.View.OnClickListener;  
  9. import android.widget.Button;  
  10. import android.widget.EditText;  
  11. import android.widget.Toast;  
  12.  
  13. public class SQLiteTestActivity extends Activity {  
  14.     /** Called when the activity is first created. */ 
  15.     private EditText studentText;  
  16.     private EditText teacherText;  
  17.     private Button queryBtn;  
  18.     SQLiteDatabase stuDb;  
  19.       
  20.     @Override 
  21.     public void onCreate(Bundle savedInstanceState) {  
  22.         super.onCreate(savedInstanceState);  
  23.         setContentView(R.layout.main);  
  24.                
  25.         studentText = (EditText)findViewById(R.id.stu_name);  
  26.         teacherText = (EditText)findViewById(R.id.teacher_name);  
  27.         queryBtn = (Button)findViewById(R.id.query);  
  28.                
  29.                 
  30.         queryBtn.setOnClickListener(new queryListener());         
  31.     }  
  32.     class queryListener implements OnClickListener{  
  33.  
  34.         @Override 
  35.         public void onClick(View v) {  
  36.             //調用查詢方法  
  37.             query(); 
  38.             stuDb.close();        
  39.         }         
  40.     }  
  41.     //查詢方法  
  42.     private void  query() {  
  43.         //打開或者創建數據庫  
  44.         stuDb = SQLiteDatabase.openOrCreateDatabase("data/data/com.lingdududu.test/StuDB.s3db", null);  
  45.         try {    
  46.             String string =studentText.getText().toString();   
  47.             String sql = "Select sname from Student where snumber="+string;  
  48.             Cursor cursor = stuDb.rawQuery(sql,null);  
  49.             cursor.moveToFirst();             
  50.             teacherText.setText(cursor.getString(cursor.getColumnIndex("sname")));  
  51.         } catch (Exception e) {  
  52.             Toast.makeText(this, "請檢查輸入的學生學號是否正確", Toast.LENGTH_LONG).show();  
  53.         }     
  54.     }      

main.xml

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" 
  4.     android:layout_width="fill_parent" 
  5.     android:layout_height="fill_parent" 
  6.     > 
  7. <TextView    
  8.     android:layout_width="fill_parent"   
  9.     android:layout_height="wrap_content"   
  10.     android:text="@string/input_name" 
  11.     /> 
  12. <EditText   
  13.     android:id="@+id/stu_name" 
  14.     android:layout_width="fill_parent"   
  15.     android:layout_height="wrap_content"   
  16.     /> 
  17. <Button   
  18.     android:id="@+id/query" 
  19.     android:layout_width="fill_parent"   
  20.     android:layout_height="wrap_content"   
  21.     android:text="開始查詢" 
  22.     /> 
  23. <TextView       
  24.     android:layout_width="fill_parent"   
  25.     android:layout_height="wrap_content"   
  26.     android:text="@string/teacher_name" 
  27.     />   
  28. <EditText   
  29.     android:id="@+id/teacher_name" 
  30.     android:layout_width="fill_parent"   
  31.     android:layout_height="wrap_content" 
  32.     android:editable="false"   
  33.     /> 
  34. </LinearLayout> 

strings.xml

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <resources> 
  3.     <string name="hello">Hello World, SQLiteTestActivity!</string> 
  4.     <string name="app_name">SQLiteTest</string> 
  5.     <string name="input_name">請輸入學生學號</string> 
  6.     <string name="teacher_name">該學生的姓名</string> 
  7. </resources> 

效果圖:

650) this.width=650;" height=197>

Copyright © Linux教程網 All Rights Reserved