本文主要是写了一个android程序对sqlite3中数据库的employee表的插入、删除的操作,然后在cmd窗口中用sql命令查询employee表的操作过程.

1、第一步:首先把程序写好.

1.1、创建一个MainActivity类,代码如下:

package com.example.datastorege.action;

import com.example.datastorege.R;
import com.example.datastorege.R.layout;
import com.example.datastorege.R.menu;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} }

1.2、创建一个SQLiteOpenHelperImpl类,这个类是继承SQLiteOpenHelper类的,SQLiteOpenHelperImpl主要作用把创建的DB、DB的版本号通过SQLiteOpenHelper来实现,同时好在EmployeeDao获取db对象,以便操作sqlite3中的employee表.中代码如下:

package com.example.datastorege.dao;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log; public class SQLiteOpenHelperImpl extends SQLiteOpenHelper{ private static final String TAG="EmployeeDaoJunit";
private static final int DB_VERSION=1;
private static final String DB_NAME="testDb.db";
private static final String SQL_TABLE_NAME="create table employee(id INTEGER PRIMARY KEY,empName varchar(30),sex int);"; public SQLiteOpenHelperImpl(Context context) {
super(context, DB_NAME, null, DB_VERSION);
} @Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(SQL_TABLE_NAME);
Log.i(TAG, "execSQL successful");
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }

1.3、创建操作sqlite3的dao类---EmployeeDao,这个类主要是操作sqlite3中testDb.db数据库名,代码如下:

package com.example.datastorege.dao;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase; import com.example.datastorege.model.Employee; public class EmployeeDao { private SQLiteOpenHelperImpl helper;
private SQLiteDatabase db; public EmployeeDao(Context context){
helper=new SQLiteOpenHelperImpl(context);
} public void insert(Employee emp){
db=helper.getWritableDatabase();
db.execSQL("insert into employee values(?,?,?)", new Object[]{emp.getId(),emp.getEmpName(),emp.getSex()});
} public void update(Employee emp){
db=helper.getWritableDatabase();
db.execSQL("update employee set empName=?,sex=? where id=?",new Object[]{emp.getEmpName(),emp.getSex(),emp.getId()});
} public void delete(int id){
db=helper.getWritableDatabase();
db.execSQL("delete from employee where id=?", new Object[]{id});
} public Employee queryBeanById(int id){
Employee emp=null;
db=helper.getWritableDatabase();
Cursor cursor=db.rawQuery("",new String[]{});
if(cursor.moveToNext()){
emp=new Employee();
emp.setEmpName(cursor.getString(cursor.getColumnIndex("empName")));
emp.setSex(cursor.getInt(cursor.getColumnIndex("sex")));
return emp;
}
return null;
} }

1.4、创建一个实体bean.

package com.example.datastorege.model;

public class Employee {

	private int id;
private String empName;
private int sex; public Employee(){}; public Employee(int id,String empName,int sex){
this.id=id;
this.empName=empName;
this.sex=sex;
} public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
} @Override
public String toString() {
return this.id+"--"+this.empName+"--"+this.sex;
} }

1.5、创建一个android的junit测试类:

package com.example.datastorege;

import com.example.datastorege.dao.EmployeeDao;
import com.example.datastorege.model.Employee; import android.test.AndroidTestCase;
import android.util.Log; public class EmployeeDaoJunit extends AndroidTestCase{ private static final String TAG="EmployeeDaoJunit"; public void add(){
EmployeeDao employeeDao=new EmployeeDao(this.getContext());
employeeDao.insert(new Employee(2,"tangfq",1));
Log.i(TAG, "EmployeeDao--->insert");
} public void delete(){
EmployeeDao employeeDao=new EmployeeDao(this.getContext());
employeeDao.delete(1);
Log.i(TAG, "EmployeeDao--->delete");
} }

以上就是要写的程序.查询和修改在测试类添加就行了.操作和新增、删除类似.

2、第二步:运行上面写的程序及操作sqlite3数据库.

2.1、运行EmployeeDaoJunit ,在运行它之前,要先运行sqlite3.exe,运行起后才执行EmployeeDaoJunit ,当junit运行绿色时,则证明写正确了.此时,在运行中输入"cmd"--->adb shell---->ls---->cd data---->cd data--->(在eclipse中打开DDMS Pespective,点击"File Explorer"查看,data--->data--->你的项目名包路径,如我的是com.example.datastorege)--->databases--->你的数据库名,我的数据库名为testDb.db--->sqlite3 testDb.db--->select id,empName,sex from employee;---->显示操作的employee表的结果.

操作的步骤是上面所描述的,如果有什么疑问或错误之处,敬请留言!谢谢了!

在cmd窗口中查询android的sqlite3数据库表之步骤的更多相关文章

  1. sqlite3 数据库表查看步骤

    sqlite3 数据库表查看步骤 1 sqlite3 local.db2 .mode column3 .headers on4 .tables5 select * from tablename6 ;( ...

  2. 【adb命令】在cmd窗口中使用adb install命令安装 中文名字apk报错的解决办法

    1.在cmd窗口中使用adb install命令安装中文名字apk报错,安装英文名字apk就正常,详细报错如下图: 2.查看adb版本号:adb version 3.怀疑是adb版本的原因,尝试换个最 ...

  3. 在CMD窗口中使用javac和java命令进行编译和执行带有包名的具有继承关系的类

    一.背景 最近在使用记事本编写带有包名并且有继承关系的java代码并运行时发现出现了很多错误,经过努力一一被解决,今天我们来看一下会遇见哪些问题,并给出解决办法. 二.测试过程 1.父类代码 pack ...

  4. cmd 窗口中运行 Java 程序

    1.CMD 命令提示符(Command Processor)(CMD) CMD命令:开始->运行->键入 cmd(在命令行里可以看到系统版本.文件系统版本) 2.对文件夹操作的部分命令 启 ...

  5. Python之uiautomation模块-获取CMD窗口中所打印的文字信息

    当我们想以自动化的方式操作软件,以提高办公或测试效率时,有许多成熟的工具,比如针对Web端应用的Selenium.针对移动端应用的Appium.那么,PC端(Windows)桌面应用,又改如何处理呢? ...

  6. MySQL将表a中查询的数据插入到表b中

    MySQL将表a中查询的数据插入到表b中 假设表b存在 insert into b select * from a; 假设表b不存在 create table b as select * from a ...

  7. SQL语句的使用,SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO - 向数据库表中插入数据

    SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). SQL (结构化查询语言)是用于执行查询的语法. 但是 SQL 语言也包含用于更新. ...

  8. 【Android】Android连接SQLite3数据库的操作

    在前面使用SQLite3的时候,并没有留意到有SQLiteOpenHelper这个类,所以只好在Activity里面去创建和维护数据库跟数据表的创建. 但是,现在有了SQLiteOpenHelper这 ...

  9. Oracle sqlldr 在DOS窗口导入多列数据到数据库表

    sqlldr 用法详见:https://www.cnblogs.com/rootq/archive/2009/03/01/1401061.html 测试内容: 1.创建数据库表: create tab ...

随机推荐

  1. Poj 2232 Moo Volume(排序)

    题目链接:http://poj.org/problem?id=2231 思路分析:先排序,再推导计算公式. 代码如下: #include <iostream> #include <a ...

  2. UVA 11754 - Code Feat(数论)

    UVA 11754 - Code Feat 题目链接 题意:给定一个c个x, y1,y2,y3..yk形式,前s小的答案满足s % x在集合y1, y2, y3 ... yk中 思路:LRJ大白例题, ...

  3. DevExpress ASP.NET 使用经验谈(3)-XPO对象的使用(使用指定数据连接)

    首先,我们贴出上一节Users类XPO对象的保存代码,直接建立的XPO Session会话,因为没有与我们所期望的数据层建立绑定, 所以程序自动创建了一个Access数据库,作为默认数据库操作对象来使 ...

  4. 解决 win10 预览版开始菜单打不开的问题

    除了该文章[http://jingyan.baidu.com/article/64d05a025d2668de55f73b9e.html]里面说的解决方法之外,我只加上一点 . 打开本机防火墙,或者调 ...

  5. WPF qq界面(转)

    原文:http://blog.csdn.net/u013981858/article/details/49130885 刚开始学WPF,自己写了个小东西,说实话写的并不好,好多东西不懂只是用现在懂的东 ...

  6. 【Linux命令】数据库mysql配置命令

    # 检查MySQL服务器系统进程 ~ ps -aux|grep mysql mysql 1103 0.0 0.3 492648 51780 ? Ssl 14:04 0:21 /usr/sbin/mys ...

  7. 条款20:宁以pass-by-reference-to-const替换pass-by-value

    本条款的要点: 1.尽量以pass-by-reference-to-const替换pass-by-value.前者更高效且可以避免切割问题. 2.这条规则并不适用于内建类型及STL中的迭代器和函数对象 ...

  8. [LeetCode]题解(python):009-Palindrome Number

    题目来源: https://leetcode.com/problems/palindrome-number/ 题意分析: 这题是要判断一个int是否一个回文数,要求不能申请额外的空间. 题目思路: 这 ...

  9. 监测scroll

    $(window).scroll(function() { var scrollValue = $(this).scrollTop(); var h=200+scrollValue; $('.yui3 ...

  10. net core 静态文件

    asp.net core 之静态文件目录的操作   文章前言 之前写了一篇关于模拟登录的文章,自我感觉内容不太丰富,今天的这篇文章,希望在内容上能丰富些.本人缺少写文章的经验,技术上也是新手,但我会努 ...