`
lt66ds
  • 浏览: 1875 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

01.Android数据库笔记

 
阅读更多

本人愚钝,想写一个大学课程表,之前在数据库方面各种不懂,近来再仔细观摩例程,竟然有些小小收获,特以学习笔记形式记录,方便日后复习,兼作备份代码之用,程序不合理之处敬请拍砖,


DbHelper 继承 SQLiteOpenHelper
注意:
1.SQLiteDatabase.query的用法之一
public Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy)
当只查询部分行,通过 String[] columns 参数可选择
亦可通过selection,selectionArgs联合SQlite语句筛选
selection中占位符?要与selectionArgs中一一对应;
2.要掌握数据库,还需深入学习
SQLite

3.数据库中键值对插入行,修改行;

package com.example.helper;

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

public class DbHelper extends SQLiteOpenHelper {
	private static final String table="course";
	private static final String DbName= "Mycourse";

	public DbHelper(Context context) {
		super(context,DbName, null, 1);
		// TODO Auto-generated constructor stub
		
	}
	
	public Cursor select(int weekday)
	{
		SQLiteDatabase db=this.getReadableDatabase();
		int value[]={1,2,3,4,5,6,7,8};
		String tochar[] = {"1","2","3","4","5","6","7","8"};
		//for (int i=0;i<8;i++) value[i]+=weekday*8;
		//for (int i=0;i<8;i++) tochar[i]=Integer.toString(value[i]);
		//String[] wherevalue={tochar[0],tochar[1],tochar[2],tochar[3],tochar[4],tochar[5],tochar[6],tochar[7]};
		String[] wherevalue={"12","0"};
		Cursor cursor=db.query("course", null,"_id<? and _id>?",wherevalue, null, null,null);
		return cursor;

	}
	
	public long insert(CourseData data)
	{
		SQLiteDatabase db=this.getReadableDatabase();
		ContentValues cv=new ContentValues();
		cv.put("name",data.getName());
		cv.put("time",data.getTime());
		long rowid=db.insert(table, null, cv);
		return rowid;
		
	}
	
	public void delete(CourseData data,int id)
	{
		SQLiteDatabase db=this.getReadableDatabase();
		String where="_id=?";
		String[] wherevalue={Integer.toString(id)};
		db.delete(table, where, wherevalue);
		
	}
	
	public void upgrade(CourseData data,int id)
	{
		SQLiteDatabase db=this.getReadableDatabase();
		ContentValues cv=new ContentValues();
		String where="_id=?";
		String[] wherevalue={Integer.toString(id)};
		cv.put("name",data.getName());
		cv.put("time",data.getTime());
		db.update(table,cv, where, wherevalue);
		
	}
	
	public void initial()
	{
		SQLiteDatabase db=this.getReadableDatabase();
		CourseData emptydata=new CourseData();
		for(int i=0;i<10;i++) 
			{
		     emptydata.setName(String.valueOf(i));
		     emptydata.setTime(i);
		     insert(emptydata);
			}
	}
	
	
	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		db.execSQL("create table course(_id integer primary key autoincrement,name varchar[20],time integer);");
	}

	@Override
	public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
		// TODO Auto-generated method stub
		
	}

}

 
        Activity类:package com.example.sqlite;

    注意:

    1.ListView 通过invalidateViews重画

    2.抛出异常

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteCursor;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

import com.example.helper.CourseData;
import com.example.helper.DbHelper;

public class MainActivity extends Activity {
	private static final String TAG = "MainActivity";
	private Button bn1;
	private Button bn2;
	private Button bn3;
	private ListView lv;
	private Cursor cursor;
	private SimpleCursorAdapter scAdapter;
	private DbHelper myDbHelper;
	private int _id;
	private EditText et1,et2;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lv=(ListView)findViewById(R.id.lv);
        
        myDbHelper=new DbHelper(this);
        myDbHelper.initial();
        cursor=myDbHelper.select(0);
        bn1=(Button)findViewById(R.id.bn1);
        bn2=(Button)findViewById(R.id.bn2);
        bn3=(Button)findViewById(R.id.bn3);
        et1=(EditText)findViewById(R.id.etname);
        et2=(EditText)findViewById(R.id.ettime);
        
        
        
        scAdapter=new SimpleCursorAdapter
        		(this, R.layout.listview, cursor, new String[]{"name","time"}, new int[]{R.id.CourseName,R.id.CourseTime});
        
        lv.setAdapter(scAdapter);
        Log.i(TAG, "Adapter OK");
        
        lv.setOnItemClickListener(new OnItemClickListener() {

		public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				// TODO Auto-generated method stub
				Log.i(TAG, "CLICK1");
				cursor.moveToPosition(arg2);
				Log.i(TAG, "CLICK2");
				_id=cursor.getInt(0);
				Log.i(TAG, "CLICK3");
				et1.setText(cursor.getString(1));
				Log.i(TAG, "CLICK4");
				et2.setText(String.valueOf(cursor.getInt(2)));
				Log.i(TAG, cursor.getString(0));
			}
		});
        
        lv.setOnItemSelectedListener(new OnItemSelectedListener() {

			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);
				et1.setText(cursor.getString(1));
				et2.setText(String.valueOf(cursor.getInt(2)));
				Log.i(TAG, sc.getString(0));
				
			}

			public void onNothingSelected(AdapterView<?> arg0) {
				// TODO Auto-generated method stub
				
				
			}
		});
        
        bn1.setOnClickListener(new OnClickListener() {
			
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				Log.i(TAG, "BN1 OK");
				String name;
				int time;
			try
			{
			name=et1.getText().toString();
	        time=Integer.parseInt(et2.getText().toString());
			}
			catch (Exception e)
			{
				return;
			}
           
			Log.i(TAG, "ADD?");
			add(name, time);
			Log.i(TAG, "BN1 FINISH");
			}
		});
        
        bn2.setOnClickListener(new OnClickListener() {
        	
        	
			public void onClick(View arg0) {
				Log.i(TAG, "BN2 OK");
				// TODO Auto-generated method stub
				String name;
				int time;
			try
			{
			name=et1.getText().toString();
	        time=Integer.parseInt(et2.getText().toString());
			}
			catch (Exception e)
			{
				return;
			}
            edit(name, time);
            Log.i(TAG, "BN2 FINISH");
			}
		});
        
        bn3.setOnClickListener(new OnClickListener() {
			
			public void onClick(View arg0) {
				Log.i(TAG, "BN3 OK");
				// TODO Auto-generated method stub
				String name;
				int time;
			try
			{
			name=et1.getText().toString();
	        time=Integer.parseInt(et2.getText().toString());
			}
			catch (Exception e)
			{
				return;
			}
			delete(name, time);
			Log.i(TAG, "BN3 FINISH");
			}
		});
    }
    
    
    private void add(String name,int time)
    {
    	if (name=="") return;
    	CourseData data=new CourseData();
    	data.setName(name);
    	data.setTime(time);
    	myDbHelper.insert(data);
    	cursor.requery();
    	lv.invalidateViews();
    	et1.setText("");
    	et2.setText("");
    	_id=0;
    	
    }
    
    private void edit(String name,int time)
    {
    	if (name=="") return;
    	CourseData data=new CourseData();
    	data.setName(name);
    	data.setTime(time);
    	myDbHelper.upgrade(data,_id);
    	cursor.requery();
    	lv.invalidateViews();
    	et1.setText("");
    	et2.setText("");
    	_id=0;
    	
    }
    
    private void delete(String name,int time)
    {
    	if (name=="") return;
    	CourseData data=new CourseData();
    	data.setName(name);
    	data.setTime(time);
    	myDbHelper.delete(data,_id);
    	cursor.requery();
    	lv.invalidateViews();
    	et1.setText("");
    	et2.setText("");
    	_id=0;
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
        
    }

 最终运行效果如下:

 

 

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

相关推荐

    android数据库SQLite学习笔记.pdf

    android数据库SQLite学习笔记.pdf

    Android零基础教程视频链接

    android基础教程,里边包括新版Android开发教程&笔记1--基础入门,Android开发教程&笔记2--基础入门二,Android开发教程&笔记3--环境...文件存取、数据库编程.Android开发教程+笔记13(待续)--应用、permission、资源

    android 数据库SQLite学习笔记.docx

    android 数据库SQLite学习笔记.docx

    Android教程+笔记十二--文件存取、数据库编程.zip

    教程+笔记十二--文件存取、数据库编程.zip教程+笔记十二--文件存取、数据库编程.zip

    android 私人笔记实现(数据库示例)

    android操作数据库例子,实现私人笔记,需用户名密码登陆!源码全适合初学者!能直接运行,书上看到的代码~比较好分享下!

    Android-笔记一款以sqlitedatabase为数据库采用MVP架构的轻便易用的笔记app

    note app demo sqlitedatabase mvp 笔记 一款以sqlitedatabase为数据库,采用MVP架构的轻便易用的笔记app

    android笔记.rar

    android笔记.doc android笔记.pdf 1 系统配置... ..1 1.1 建立SDK开发环境... ...2 1.2 Android源码的编译 ... .6 1.3 编译在G1 上运行的android 2.1(eclair)代码 ... ..9 1.4 编译在G1 上运行的android 2.2(froyo)...

    新版Android开发教程及笔记-完整版.pdf

    新版Android开发教程&笔记--基础入门一.pdf 新版Android开发教程&笔记--基础入门二.pdf ...新版Android开发教程+笔记十二--文件存取、数据库编程.pdf 新版Android开发教程+笔记十三(待续)--应用、permission、资源.pdf

    基于android的个人日记本程序(Sqlite数据库).zip

    本程序基于android实现,基本功能包括记录日记、删除日记、编辑日记、查看日记等功能,数据库采用sqlite,程序界面美观。

    Android开发教程(完整版)

    新版Android开发教程&笔记--基础入门一.pdf 新版Android开发教程&笔记--基础入门二.pdf 新版Android开发教程&笔记三--环境搭建与解析.pdf ...新版Android开发教程+笔记十二--文件存取、数据库编程.pdf

    Android学习笔记-SQLite介绍-以及使用Sqlite-进行数据库的创建-完成数据.pdf

    Android学习笔记-SQLite介绍-以及使用Sqlite-进行数据库的创建-完成数据.pdf

    新版android开发教程 笔记

    不错的笔记 新版Android开发教程&笔记--基础入门一 新版Android开发教程&笔记--基础入门二 ...新版Android开发教程+笔记十二--文件存取、数据库编程 新版Android开发教程+笔记十三(待续)--应用、permission、资源

    android基础教程

    开办新的Android技术交流群:147064080,欢迎大家加入! android基础教程,里边包括 ...新版Android开发教程+笔记12--文件存取、数据库编程.pdf 新版Android开发教程+笔记13(待续)--应用、permission、资源.pdf

    Android开发教程完全版

    新版Android开发教程&笔记--基础入门一.pdf 新版Android开发教程&笔记--基础入门二.pdf ...新版Android开发教程+笔记十二--文件存取、数据库编程.pdf 新版Android开发教程+笔记十三(待续)--应用、permission、资源.pdf

    Android基础教程

    Android基础教程,入门很好的 新版Android开发教程&笔记1--基础入门一 新版Android开发教程&...新版Android开发教程+笔记12--文件存取、数据库编程.pdf 新版Android开发教程+笔记13(待续)--应用、permission、资源.pdf

    新版Android开发教程&笔记--基础入门

    包含内容如下: 新版Android开发教程&笔记--基础入门一 新版Android开发教程&笔记--基础入门二 新版Android开发教程&笔记三--环境搭建与解析 ...新版Android开发教程+笔记十二--文件存取、数据库编程

    android开发资料1

    ├新版Android开发教程+笔记十二--文件存取、数据库编程.pdf ├新版Android开发教程+笔记十--基础UI编程4.pdf ├新版Android开发教程+笔记十三(待续)--应用、permission、资源.pdf ├新版Android开发教程+笔记十一--...

    新版Android开发教程 笔记12--文件存取、数据库编程

    新版Android开发教程 笔记12--文件存取、数据库编程

    新版Android开发资料2

    ├新版Android开发教程+笔记十二--文件存取、数据库编程.pdf ├新版Android开发教程+笔记十--基础UI编程4.pdf ├新版Android开发教程+笔记十三(待续)--应用、permission、资源.pdf ├新版Android开发教程+笔记十一--...

    新版Android开发教程+笔记12--文件存取、数据库编程

    新版Android开发教程+笔记12--文件存取、数据库编程 新版Android开发教程+笔记12--文件存取、数据库编程

Global site tag (gtag.js) - Google Analytics