Android开发学习:使用已有的sql数据库

简介:

之前我们使用的数据库都是在代码里面创建的。下面介绍一下如果使用外部已有的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> 

效果图:



本文转自 lingdududu 51CTO博客,原文链接: 

http://blog.51cto.com/liangruijun/728272

相关文章
|
7天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
42 10
|
24天前
|
SQL 存储 BI
【软件设计师备考 专题 】数据库语言(SQL)
【软件设计师备考 专题 】数据库语言(SQL)
89 0
|
7天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
61 6
|
3天前
|
SQL 数据库
数据库SQL语言实战(二)
数据库SQL语言实战(二)
|
6天前
|
SQL 监控 数据库
数据库管理与电脑监控软件:SQL代码优化与实践
本文探讨了如何优化数据库管理和使用电脑监控软件以提升效率。通过SQL代码优化,如使用索引和调整查询语句,能有效提高数据库性能。同时,合理设计数据库结构,如数据表划分和规范化,也能增强管理效率。此外,利用Python脚本自动化收集系统性能数据,并实时提交至网站,可实现对电脑监控的实时性和有效性。这些方法能提升信息系统稳定性和可靠性,满足用户需求。
27 0
|
7天前
|
SQL 存储 数据挖掘
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
服务器数据恢复环境: 一台安装windows server操作系统的服务器。一组由8块硬盘组建的RAID5,划分LUN供这台服务器使用。 在windows服务器内装有SqlServer数据库。存储空间LUN划分了两个逻辑分区。 服务器故障&初检: 由于未知原因,Sql Server数据库文件丢失,丢失数据涉及到3个库,表的数量有3000左右。数据库文件丢失原因还没有查清楚,也不能确定数据存储位置。 数据库文件丢失后服务器仍处于开机状态,所幸没有大量数据写入。 将raid5中所有磁盘编号后取出,经过硬件工程师检测,没有发现明显的硬件故障。以只读方式将所有磁盘进行扇区级的全盘镜像,镜像完成后将所
数据库数据恢复—RAID5上层Sql Server数据库数据恢复案例
|
14天前
|
数据库 SQL 索引
什么是数据库 SQL Execution Plan
什么是数据库 SQL Execution Plan
10 0
|
2月前
|
SQL 关系型数据库 MySQL
MySQL技能完整学习列表3、SQL语言基础——1、SQL(Structured Query Language)简介——2、基本SQL语句:SELECT、INSERT、UPDATE、DELETE
MySQL技能完整学习列表3、SQL语言基础——1、SQL(Structured Query Language)简介——2、基本SQL语句:SELECT、INSERT、UPDATE、DELETE
49 0
|
2月前
|
SQL 安全 关系型数据库
MySQL技能完整学习列表3、SQL语言基础——3、SQL运算符和函数
MySQL技能完整学习列表3、SQL语言基础——3、SQL运算符和函数
35 0
|
10月前
|
SQL 关系型数据库 MySQL
15天学习MySQL计划-SQL语言学习(基础篇)-第二天
15天学习MySQL计划-SQL语言学习(基础篇)-第二天
129 1