打开已有数据库

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

效果图:

### 如何在 PowerDesigner 中逐步打开现有的数据库 要在 PowerDesigner 中打开现有数据库,可以按照以下方法操作: #### 准备工作 确保已经安装并配置好 PowerDesigner 软件,并且具备访问目标数据库所需的权限和连接信息。 #### 连接至现有数据库 通过 PowerDesigner 的物理数据模型 (PDM) 功能模块来加载已有数据库结构。以下是具体的操作指南: 1. **启动 PowerDesigner 并创建新 PDM 文件** 打开 PowerDesigner 后,在主界面选择 `File` -> `New Model...` 来新建一个 Physical Data Model(PDM)[^2]。 2. **设置 ODBC 数据源** 如果尚未定义针对目标数据库的 ODBC 数据源,则需先完成此步骤。进入操作系统中的 ODBC 配置工具(通常位于控制面板),添加一个新的系统DSN或者用户DSN,指定对应的驱动程序以及服务器地址等参数[^3]。 3. **逆向工程导入数据库对象** 在菜单栏依次点击 `Tools` -> `Reverse Engineer…`, 此时会弹出对话框提示输入关于要反向构建的数据源的信息。包括但不限于: - Database Type: 选择合适的数据库管理系统类型; - Connection Parameters: 填写正确的用户名、密码以及其他必要的认证细节以便建立有效的链接; - Options: 可自定义哪些类型的实体应该被提取出来形成最终的设计文档,比如表(Table),视图(View),存储过程(Stored Procedure)等等[^4]。 4. **执行 Reverse Engineering 操作** 完成上述选项设定之后按下 OK 键继续前进到实际抓取阶段。等待一段时间直到整个流程结束,期间可能会显示进度条反映当前状态。成功完成后即可看到所选数据库内的全部元数据映射到了本地项目文件之中[^5]。 ```sql -- Example of a simple query that could be part of the reverse engineered schema. SELECT * FROM information_schema.tables; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值