`
jk138
  • 浏览: 153833 次
  • 性别: Icon_minigender_1
  • 来自: 茂名
社区版块
存档分类
最新评论

数据存储之SQLite

阅读更多

dbHelper.java

package com.terry;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.util.Log;

public class dbHelper extends SQLiteOpenHelper {

	private final static String DATABASE_NAME="sec_db";
	private final static int DATABASE_VERSION=1;
	private final static String TABLE_NAME="sec_pwd";
	public final static String FIELD_ID="_id"; 
	public final static String FIELD_TITLE="sec_Title";
	
	
	public dbHelper(Context context)
	{   
		/**
		 * 通过构造函数来创建数据库,如果进入此函数,不存在此数据库则创建,如果存在此数据库则打开连接,
		 * 只要进入此方法就可以用打开的连接获得getWritableDatabase()或getReadableDatabase()这两个方法。
		 */
		super(context, DATABASE_NAME,null, DATABASE_VERSION);
		
	}
	
	
	 /**
	  * 一个数据库中可以包含多个表,每一条数据都存在指定的表中,要创建可以通过 execSQL 方法来执行一条 SQL 语句。
	  */
	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		//创建了表名为“sec_pwd” 的数据表,表内存在一个 integer 类型的主键和一个 text 类型的字段,并执行创建该表。
		String sql="Create table "+TABLE_NAME+"("+FIELD_ID+" integer primary key autoincrement,"
		+FIELD_TITLE+" text );";
		db.execSQL(sql);
		
		 
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub
		String sql=" DROP TABLE IF EXISTS "+TABLE_NAME;
		db.execSQL(sql);
		onCreate(db);
	}
    
	/**
	 * 查询数据
	 * @return
	 */
	public Cursor select()
	{
		SQLiteDatabase db=this.getReadableDatabase();
		Cursor cursor=db.query(TABLE_NAME, null, null, null, null, null,  " _id desc");
	   
		return cursor;
	}
	/**
	 * 添加数据
	 * @param Title
	 * @return
	 */
	public long insert(String Title)
	{   
		/**
		 * 封装了一个使用SQLite 的 insert 方法,向表中添加数据,但是insert 方法要求把数据都打包到 ContentValues 中,
		 *  ContentValue 其实可就是一个 HashTable,Key值是字段名称,Value 值是字段的值。
		 * 通过 ContentValues 的put 方法就可以把数据库放到 ContentValue 对象中,然后插入到表中去。
		 */
		SQLiteDatabase db=this.getWritableDatabase();
		ContentValues cv=new ContentValues(); 
		cv.put(FIELD_TITLE, Title);
		long row=db.insert(TABLE_NAME, null, cv);
		return row;
	}
	/**
	 * 删除数据
	 * @param id
	 */
	public void delete(int id)
	{
		SQLiteDatabase db=this.getWritableDatabase();
		String where=FIELD_ID+"=?";
		String[] whereValue={Integer.toString(id)};
		db.delete(TABLE_NAME, where, whereValue);
	}
	
	/**
	 * 修改数据
	 * @param id
	 * @param Title
	 */
	public void update(int id,String Title)
	{
		SQLiteDatabase db=this.getWritableDatabase();
		String where=FIELD_ID+"=?";
		String[] whereValue={Integer.toString(id)};
		ContentValues cv=new ContentValues(); 
		cv.put(FIELD_TITLE, Title);
		db.update(TABLE_NAME, cv, where, whereValue);
	}
	
	
	
	
}

  这里用到了Menu做功能按钮,实例代码如下:

 package com.terry;

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteCursor;
import android.os.Bundle; 
import android.view.Menu;  
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;


public class testDbActivity extends Activity {
	
	private dbHelper db;
	private Cursor myCursor;
	private ListView myListView;
	private EditText myEditText;
	private int _id;
	protected final static int MENU_ADD=Menu.FIRST;
	protected final static int MENU_EDIT=Menu.FIRST+1;
	protected final static int MENU_DELETE=Menu.FIRST+2;
	
	   @Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// TODO Auto-generated method stub
		   super.onCreateOptionsMenu(menu);
		menu.add(Menu.NONE, MENU_ADD, 0, R.string.ADD);
		menu.add(Menu.NONE, MENU_EDIT, 0,R.string.EDIT);
		menu.add(Menu.NONE, MENU_DELETE, 0,R.string.DELETE);
		 return true;
	}
	
	   @Override
	public boolean onOptionsItemSelected(MenuItem item) {
		// TODO Auto-generated method stub
		
		super.onOptionsItemSelected(item); 
		switch (item.getItemId()) {
		case MENU_ADD:
			operation("add");
			break;
		case MENU_EDIT:
			operation("edit");
			break;
		case MENU_DELETE:
			operation("delete");
			break;
		default:
			break;
		}
		return true;
	}
	   
	   
	   
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        myEditText=(EditText)findViewById(R.id.EditText1);
        myListView=(ListView)findViewById(R.id.ListView1);
        db=new dbHelper(testDbActivity.this);
        myCursor=db.select();
        SimpleCursorAdapter adpater=new SimpleCursorAdapter(this
        		, R.layout.test, myCursor,
        		new String[]{dbHelper.FIELD_TITLE},
        		new int[]{R.id.topTextView});
        myListView.setAdapter(adpater);
        
        myListView.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				// TODO Auto-generated method stub
				myCursor.moveToPosition(arg2);
				_id=myCursor.getInt(0);
				myEditText.setText(myCursor.getString(1));
			}
		});
        
        
        myListView.setOnItemSelectedListener(new OnItemSelectedListener() {

			@Override
			public void onItemSelected(AdapterView<?> arg0, View arg1,
					int arg2, long arg3) {
				// TODO Auto-generated method stub
				SQLiteCursor sc=(SQLiteCursor)arg0.getSelectedItem();
				_id=sc.getInt(0);
				myEditText.setText(sc.getString(1));
			}

			@Override
			public void onNothingSelected(AdapterView<?> arg0) {
				// TODO Auto-generated method stub
				
			}
		});
    }
    private void operation(String cmd)
    {
    	if(myEditText.getText().toString().equals(""))
    	return;
    	if(cmd=="add")
    		db.insert( myEditText.getText().toString());
    	if(cmd=="edit")
    		db.update(_id,  myEditText.getText().toString());
    	if(cmd=="delete")
    		db.delete(_id);
    	myCursor.requery();
    	myListView.invalidateViews();
    	myEditText.setText("");
    	_id=0;
    	
    }
    
   
    
    
    
    
    
    
    
}

 

 

  • 大小: 17.6 KB
分享到:
评论

相关推荐

    Android本地数据存储之SQLite

    在Android应用开发中,SQLite是一个重要的本地数据存储方式。SQLite是一个轻量级的、开源的、自包含的关系型数据库系统,它不需要单独的服务器进程,也不需要特定的权限管理。SQLite数据库可以被嵌入到各种应用程序...

    Android本地数据存储之SQLite增删改查

    在Android应用开发中,本地数据存储是至关重要的,SQLite数据库作为一种轻量级的数据库系统,被广泛用于存储和管理应用程序中的结构化数据。本篇文章将深入探讨如何在Android中使用SQLite进行基本的增删改查操作,以...

    Android数据存储SQLite.docx

    Android 数据存储 SQLite Android 数据存储是 Android 应用程序中的一个重要组件,它负责存储和管理应用程序中的数据。在 Android 中,有多种数据存储方式,包括 SharedPreferences、内部文件存储、SD 卡存储和 ...

    sqlite数据库 大数据量处理demo

    SQLite是一款轻量级的、开源的、自包含的SQL数据库引擎,它被广泛应用于移动设备、嵌入式系统以及各种应用程序中,以处理和存储数据。在这个“sqlite数据库大数据量处理demo”中,我们将深入探讨如何在SQLite数据库...

    android 存储 SQLite 数据存储 看完秒回SQLite

    在Android开发中,SQLite是一个非常重要的数据存储工具。SQLite是一个轻量级的、关系型的数据库,它嵌入到Android系统中,为应用程序提供本地数据存储功能。SQLite数据库的优势在于其小巧、快速、稳定,无需单独的...

    Android数据存储(sqlitehelper)

    本文将详细讲解Android数据存储以及SQLiteHelper的使用。 SQLite是Android系统内置的关系型数据库,它轻量级、高效且易于使用。在Android中,SQLite数据库主要用于存储结构化的数据,如用户信息、应用配置等。...

    Android手机App程序中SQLite数据存储应用.pdf

    "Android 手机 App 程序中 SQLite 数据存储应用" Android 手机 App 程序中 SQLite 数据存储应用是 Android 手机 App 程序开发中的一个重要组成部分。随着 IT 行业的高速发展,移动通信技术的更新速度日新月异。...

    Android数据存储之SQLite使用

    在Android中创建的SQLite数据库存储在:/data/data/&lt;包名&gt;/databases/目录下。 主要特点: -轻量级 -独立性,没有不依赖,无需安装 -跨平台,支持众多操作系统 -支持高达2TB大小的数据库 -每个数据库以单个文件的...

    Android数据库sqlite存储

    在Android开发中,SQLite是一个重要的组成部分,它是轻量级的数据库系统,被广泛用于本地数据存储。SQLite数据库在Android应用中扮演着至关重要的角色,它允许开发者创建、修改和管理数据库,无需用户干预,提供了...

    将postgres数据导入到sqlite

    本文将详细讲解如何将PostgreSQL(简称postgres)数据库中的数据导入到SQLite数据库,这是一个常见的需求,特别是在需要轻量级、本地化存储或者跨平台应用时。我们将探讨整个过程,包括自动创建SQLite表以及全库和...

    Android数据存储(SQLite)

    SQLite是一个轻量级的、嵌入式的关系数据库,它被广泛应用于Android系统中,为开发者提供了高效且灵活的数据存储解决方案。本节将深入探讨Android如何利用SQLite进行数据存储,并分享一些关键知识点。 首先,我们...

    SQL Server数据导入SQLite工具

    当我们需要在两者之间进行数据迁移时,就需要借助特定的工具来完成,比如"SQL Server数据导入SQLite工具"。 这个工具的主要功能是将SQL Server数据库转换为SQLite数据库,这对于开发者和数据管理人员来说非常实用。...

    易语言组合框使用Sqlite数据库添加数据

    在易语言中使用Sqlite,可以方便地处理和存储数据,为程序提供数据支持。 首先,我们需要在易语言中引入Sqlite的相关库。这通常通过导入外部动态链接库(.dll)或使用易语言提供的SQLite组件来完成。一旦引入,我们...

    Android数据存储SQLite - 事务操作

    Android数据存储SQLite - 事务操作

    Android之SQlite存储

    在Android应用开发中,SQLite是一个重要的本地数据存储解决方案。SQLite是一个轻量级的数据库系统,它内嵌在Android操作系统中,允许开发者以结构化方式存储和管理数据。本篇文章将深入探讨Android中的SQLite数据库...

    ListVIew存储和表现sqlite数据

    在Android应用中,SQLite数据库常被用来持久化数据,存储结构化的信息。当需要将SQLite数据库中的数据展示在ListView上时,通常会涉及以下几个关键知识点: 1. **SQLite数据库操作**: - **创建数据库**:使用...

    iOS基础——数据操作之Sqlite3、FMDB

    在iOS开发中,数据存储是不可或缺的一部分,而SQLite3和FMDB则是常用的数据持久化解决方案。SQLite3是一个轻量级的、嵌入式的关系型数据库,而FMDB是Objective-C的SQLite3封装库,它提供了更简洁易用的API来操作...

    sqlite数据类型详细介绍+javaJDBC连接sqlite小例子

    通过这些概念,你可以开始编写自己的SQLite数据库应用,实现数据的存储和查询。在实际开发中,还可以利用PreparedStatement进行参数化查询,提高代码安全性和效率。同时,了解事务处理、索引创建等高级特性,能...

    android数据操作,sqlite

    在Android系统中,SQLite是一个内置的关系型数据库管理系统,用于存储应用程序的数据。SQLite支持SQL标准,具有轻量级、高效、可靠的特点,使得它成为移动应用数据管理的理想选择。本主题将深入探讨如何在Android中...

Global site tag (gtag.js) - Google Analytics