之前我们使用的数据库都是在代码里面创建的。下面介绍一下如果使用外部已有的sql数据库。

先用SQLite管理工具,sqliteadmin 具体操作很简单,在这里我就不详细介绍的了,但有一个地方时候很值得注意的,就是用sqliteadmin创建数据库的时候,数据库保存的路径不能是中文路径,中文路径会出现下面的错误提示:

我在sqliteadmin 创建好数据库StuDB,里面的表如下:

 将创建好的数据库在DDMS中点击导入到data/data/程序的包名/ 

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> 

效果图: