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数据库
19 11
|
2天前
|
SQL 监控 关系型数据库
MySQL数据库中如何检查一条SQL语句是否被回滚
检查MySQL中的SQL语句是否被回滚需要综合使用日志分析、事务状态监控和事务控制语句。理解和应用这些工具和命令,可以有效地管理和验证数据库事务的执行情况,确保数据的一致性和系统的稳定性。此外,熟悉事务的ACID属性和正确设置事务隔离级别对于预防数据问题和解决事务冲突同样重要。
10 2
|
15天前
|
Android开发
Android学习 —— 测试init.rc中的条件触发的处理顺序
Android学习 —— 测试init.rc中的条件触发的处理顺序
|
10天前
|
SQL 分布式计算 大数据
大数据开发SQL代码编码原则和规范
这段SQL编码原则强调代码的功能完整性、清晰度、执行效率及可读性,通过统一关键词大小写、缩进量以及禁止使用模糊操作如select *等手段提升代码质量。此外,SQL编码规范还详细规定了代码头部信息、字段与子句排列、运算符前后间隔、CASE语句编写、查询嵌套、表别名定义以及SQL注释的具体要求,确保代码的一致性和维护性。
13 0
|
14天前
|
SQL 安全 数据库
基于SQL Server事务日志的数据库恢复技术及实战代码详解
基于事务日志的数据库恢复技术是SQL Server中一个非常强大的功能,它能够帮助数据库管理员在数据丢失或损坏的情况下,有效地恢复数据。通过定期备份数据库和事务日志,并在需要时按照正确的步骤恢复,可以最大限度地减少数据丢失的风险。需要注意的是,恢复数据是一个需要谨慎操作的过程,建议在执行恢复操作之前,详细了解相关的操作步骤和注意事项,以确保数据的安全和完整。
29 0
|
17天前
|
前端开发 C# 设计模式
“深度剖析WPF开发中的设计模式应用:以MVVM为核心,手把手教你重构代码结构,实现软件工程的最佳实践与高效协作”
【8月更文挑战第31天】设计模式是在软件工程中解决常见问题的成熟方案。在WPF开发中,合理应用如MVC、MVVM及工厂模式等能显著提升代码质量和可维护性。本文通过具体案例,详细解析了这些模式的实际应用,特别是MVVM模式如何通过分离UI逻辑与业务逻辑,实现视图与模型的松耦合,从而优化代码结构并提高开发效率。通过示例代码展示了从模型定义、视图模型管理到视图展示的全过程,帮助读者更好地理解并应用这些模式。
31 0
|
17天前
|
SQL 数据处理 数据库
|
17天前
|
SQL 存储 调度
|
17天前
|
SQL 安全 数据库
|
17天前
|
Java 数据库连接 数据库
告别繁琐 SQL!Hibernate 入门指南带你轻松玩转 ORM,解锁高效数据库操作新姿势
【8月更文挑战第31天】Hibernate 是一款流行的 Java 持久层框架,简化了对象关系映射(ORM)过程,使开发者能以面向对象的方式进行数据持久化操作而无需直接编写 SQL 语句。本文提供 Hibernate 入门指南,介绍核心概念及示例代码,涵盖依赖引入、配置文件设置、实体类定义、工具类构建及基本 CRUD 操作。通过学习,你将掌握使用 Hibernate 简化数据持久化的技巧,为实际项目应用打下基础。
35 0