加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite学习笔记

发布时间:2020-12-12 23:48:16 所属栏目:百科 来源:网络整理
导读:1:创建一个继承自SQLiteOpenHelper的DB.java package com.example.sqlite;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.S

1:创建一个继承自SQLiteOpenHelper的DB.java

package com.example.sqlite;

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

public class DB extends SQLiteOpenHelper {

	private String sql = "create table person("
			+"id integer primary key autoincrement,"
			+"name text,"
			+"age integer)" ;

	public DB(Context context,String name,CursorFactory factory,int version) {
		super(context,name,factory,version);
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL(sql);
	}

	@Override
	public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) {
		// TODO Auto-generated method stub

	}


}


MainActivity.java

package com.example.sqlite;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends ActionBarActivity {

	private TextView text  ;
	private 	SQLiteDatabase database = null ;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		this.text = (TextView)findViewById(R.id.text) ;
		SQLiteOpenHelper helper = new DB(this,"test.db",null,1) ;
		database = helper.getWritableDatabase() ;
		//开始测试所写函数
		//首先放入五条数据
		for(int i = 0 ;i<5 ;i++) {
			ContentValues values = new ContentValues() ;
			values.put("name","插入数据");
			values.put("age",i+20);
			insert("person",values) ;
		}
		
	delete("delete from person where age>23");    //将大于23岁的都删除
	Cursor cursor = query("select * from person") ;
	//showData(cursor);     //展示数据
	
	ContentValues values = new ContentValues() ;
	values.put("name","测试update方法");
	values.put("age",6666);
	update("person",values,"age=?",new String[]{"21"});  //将全部年龄为21的设置成6666
	showData(cursor);
	cursor.close();
	database.close();
    
		
	}
	/*
	 * @param tableName  表名称
	 * @param values   数据集
	 */
	private void insert(String tableName,ContentValues values) {
		if(database != null) {
			database.insert(tableName,values) ;
			//当然也可以借助database.exeSQL(sql语句执行)
		}else {
			Toast.makeText(this,"尚未实例化数据库对象!!",Toast.LENGTH_LONG).show(); 
		}
	}
	
	/*
	 * 根据SQL语句删除数据
	 */
	private void delete(String sql) {
		if(database != null) {
			database.execSQL(sql);
			//当然也可以借助database.exeSQL(sql语句执行)
		}else {
			Toast.makeText(this,Toast.LENGTH_LONG).show(); 
		}
	}
	
	/*
	 * 查询语句,返回一个Cursor游标
	 */
	private Cursor query(String sql) {
			Cursor cursor = database.rawQuery(sql,null) ;
			return cursor ;		
	}
	
	
	/*
	 * 更改数据
	 */
	
	private void update(String table,ContentValues values,String whereClause,String[] whereArgs) {
		if(database != null) {
			database.update(table,whereClause,whereArgs) ;
			//当然也可以借助database.exeSQL(sql语句执行)
		}else {
			Toast.makeText(this,Toast.LENGTH_LONG).show(); 
		}
	}
	/*
	 * 展示所有数据
	 */
	private void showData(Cursor cursor) {
		while(cursor.moveToNext()) {
			int nameColumn = cursor.getColumnIndex("name") ;
			int ageColumn = cursor.getColumnIndex("age") ;
			String name = cursor.getString(nameColumn) ;
			int age = cursor.getInt(ageColumn) ;
			this.text.append("名字:"+name+"  年龄:"+age+"n");
		}
		this.text.append("所有数据查询完毕!");
	}
	
	
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读