cmd 창 에서 android 의 sqlite 3 데이터베이스 테이블 을 조회 하 는 절차

6118 단어 android
본 고 는 주로 안 드 로 이 드 프로그램 이 sqlite 3 의 데이터베이스 에 있 는 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 를 통 해 실현 하 는 동시에 EmployeDao 에서 db 대상 을 가 져 와 sqlite 3 의 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. sqlite 3 를 조작 하 는 dao 류 - EmployeeDao 를 만 듭 니 다. 이 종 류 는 주로 sqlite 3 에서 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. 안 드 로 이 드 의 준 it 테스트 클래스 를 만 듭 니 다:
 
 
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. 두 번 째 단계: 위 에 쓰 인 프로그램 을 실행 하고 sqlite 3 데이터 베 이 스 를 조작 합 니 다.
2.1 EmployeeDaoJunit 를 실행 합 니 다. 실행 하기 전에 sqlite 3. exe 를 실행 하고 실행 한 후에 EmployeeDaoJunit 를 실행 합 니 다. Junit 가 녹색 을 실행 할 때 쓰기 가 정확 하 다 는 것 을 증명 합 니 다. 이때 실행 중 "cmd" - > adb shell - - > ls - > cd data - - > cd data - > (eclipse 에서 DDMS Pespective 를 열 고 "File Explorer" 를 클릭 합 니 다.보기, data --- > data --- > 당신 의 프로젝트 이름 패키지 경로, 예 를 들 어 나 는 com. example. datastorege) --- > databases - -- > 당신 의 데이터베이스 이름, 나의 데이터 베 이 스 는 testDb. db --- > sqlite 3 testDb. db --- > selectid, emName, sex from employee; --- >작업 한 employee 표 의 결 과 를 표시 합 니 다.
 
작업 의 절 차 는 위 에서 설명 한 것 입 니 다. 궁금 하거나 잘못된 점 이 있 으 면 메 시 지 를 남 겨 주세요!감사합니다!

좋은 웹페이지 즐겨찾기