Android学习笔记10:SQLite的简单学习

[Android开发视频教学].01_16_SQLite使用方法

学习使用SQLiteOpenHelper,SQLDataBase,ContentValues

感觉SQLiteOpenHelper不好用,有许多操作感觉很繁琐,不过还是看懂了,并且做了实现

注:生成数据库操作只能生成一次,没有找到删除数据库的方法,这里写的代码如果执行是会报错的,所以没有将此事件绑定到监听器上


布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="false"
        android:layout_centerVertical="false"
        android:text="@string/hello_world"
        tools:context=".Activity13" />

    <Button
        android:id="@+id/createDB"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView1"
        android:text="@string/createDB" />

    <Button
        android:id="@+id/upgradeDB"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/createDB"
        android:text="@string/upgradeDB" />

    <Button
        android:id="@+id/deleteDB"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/upgradeDB"
        android:text="@string/deleteDB" />

    <Button
        android:id="@+id/insert"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/deleteDB"
        android:text="@string/insert" />

    <Button
        android:id="@+id/update"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/insert"
        android:text="@string/update" />

    <Button
        android:id="@+id/query"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/update"
        android:text="@string/query" />
    
    <Button
        android:id="@+id/delete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/query"
        android:text="@string/delete" />

</RelativeLayout>

国际化

<resources>

    <string name="app_name">SQLite操作</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_activity13">SQLite操作</string>
    
	<string name="createDB">创建数据库</string>
	<string name="upgradeDB">升级数据库</string>
	<string name="deleteDB">删除数据库</string>
	<string name="insert">添加数据</string>
	<string name="update">更新数据</string>
	<string name="query">查询数据</string>
	<string name="delete">删除数据</string>
	
</resources>

Main

package fengda.android13;

import java.io.File;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Activity13 extends Activity {

	private Button createDB;
	private Button upgradeDB;
	private Button deleteDB;
	private Button insert;
	private Button update;
	private Button query;
	private Button delete;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_activity13);
        
        createDB = (Button) findViewById(R.id.createDB);
        createDB.setOnClickListener(new CreateDBClickListenen());
        
        upgradeDB = (Button) findViewById(R.id.upgradeDB);
        upgradeDB.setOnClickListener(new UpgradeDBClickListener());
        
        deleteDB = (Button) findViewById(R.id.deleteDB);
        //deleteDB.setOnClickListener( new DeleteDBClickListener());
        
        insert = (Button) findViewById(R.id.insert);
        insert.setOnClickListener(new InsertClickListener());
        
        update = (Button) findViewById(R.id.update);
        update.setOnClickListener(new UpdateClickListener());
        
        query = (Button) findViewById(R.id.query);
        query.setOnClickListener(new QueryClickListener());
        
        delete = (Button) findViewById(R.id.delete);
        delete.setOnClickListener(new DeleteClickListener());
        
    }
    
    //创建数据库
    class CreateDBClickListenen implements OnClickListener{

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			MyDBHelper myDBHelper = new MyDBHelper(Activity13.this,"android13");
			myDBHelper.getReadableDatabase();
		}
    	
    }
    
    //更新数据库版本
    class UpgradeDBClickListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			MyDBHelper myDBHelper = new MyDBHelper(Activity13.this,"android13",2);
			myDBHelper.getReadableDatabase();
		}
    	
    }
    
    //删除数据库
    class DeleteDBClickListener implements OnClickListener {

		@SuppressLint("NewApi")
		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			MyDBHelper myDBHelper = new MyDBHelper(Activity13.this,"android13");
			SQLiteDatabase db = myDBHelper.getWritableDatabase();
			db.deleteDatabase(new File("android13"));
		}
    	
    }
    
    //添加一条数据信息
    class InsertClickListener implements OnClickListener {

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			MyDBHelper myDBHelper = new MyDBHelper(Activity13.this,"android13");
			SQLiteDatabase db = myDBHelper.getWritableDatabase();
			ContentValues values = new ContentValues();
			values.put("id", 1);
			values.put("name", "牛牛");
			db.insert("person", null, values);
		}
    	
    }
    
    //更新数据
    class UpdateClickListener implements OnClickListener {

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			MyDBHelper myDBHelper = new MyDBHelper(Activity13.this,"android13");
			SQLiteDatabase db = myDBHelper.getReadableDatabase();
			
			ContentValues values = new ContentValues();
			values.put("name", "niuniu");
			db.update("person", values, "id=?", new String[]{"1"});
			
		}
    	
    }
    
    //查询数据 
    class QueryClickListener implements OnClickListener {

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			MyDBHelper myDBHelper = new MyDBHelper(Activity13.this,"android13");
			SQLiteDatabase db = myDBHelper.getReadableDatabase();
			Cursor cursor = db.query("person", new String[]{"id","name"}, "id=?", new String[]{"1"} , null, null, null);
					
			while(cursor!=null && cursor.moveToNext()){
				
				int id = cursor.getInt(cursor.getColumnIndex("id"));
				String name = cursor.getString(cursor.getColumnIndex("name"));
				
				System.out.println("id="+id+", name="+name);
			}
		}
    	
    }
    
    //删除数据
    class DeleteClickListener implements OnClickListener {

		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			MyDBHelper myDBHelper = new MyDBHelper(Activity13.this,"android13");
			SQLiteDatabase db = myDBHelper.getWritableDatabase();
			db.delete("person", "id=?", new String[]{"1"});
		}
    	
    }
    
}


继承的实现的SQLiteOpenHelper


package fengda.android13;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class MyDBHelper extends SQLiteOpenHelper {

	public static final int VERSION=1;
	
	public MyDBHelper(Context context, String name, CursorFactory factory,
			int version) {
		super(context, name, factory, version);
		// TODO Auto-generated constructor stub
	}
	
	public MyDBHelper(Context context,String name,int version){
		this(context,name,null,version);
	}
	
	public MyDBHelper(Context context,String name){
		this(context,name,VERSION);
	}
	
	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		System.out.println("创建一个数据库");
		db.execSQL("create table person(id int, name varchar(20))");
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub
		System.out.println("升级数据库");
	}

}

截图:



Android调试起来不方便,下一讲正好讲调试操作,哈哈。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值