Demo_Sql数据库-增删改查_141018

这个主要是可以作为一个demo使用;

因此,我就把操作直接加到了界面上,然后,在logcat中观察现象


sqlite数据库为db类型,本文最后提供 打开db数据的安装破解包,外加本文demo代码


文件功能介绍:

SampleActivity.java : 对应的布局文件activity_main 可以实际操作

SQLiteOpenHelperYline.java 提供创建数据库,数据库表,更新数据库的功能

PersonDomain.java 提供数据

DataBaseOperateNoTool.java 使用原始的方法,进行增删改查

DataBaseOperateInTool.java 使用包装好的方法,进行增删改查

不多说,上代码

 // SampleActivity.java

package com.yline.sqlite.Sample;

import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.yline.sqlite.R;
import com.yline.sqlite.database.DataBaseOperateInTool;
import com.yline.sqlite.database.DataBaseOperateNoTool;
import com.yline.sqlite.database.PersonDomain;
import com.yline.sqlite.database.SQLiteOpenHelperYline;

public class SampleACtivity extends Activity implements OnClickListener{
	private Button btn_add;
	private Button btn_delete;
	private Button btn_find;
	private Button btn_update;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		CreateDB();
		
		btn_add = (Button) findViewById(R.id.btn_add);
		btn_delete = (Button) findViewById(R.id.btn_delete);
		btn_find = (Button) findViewById(R.id.btn_find);
		btn_update = (Button) findViewById(R.id.btn_update);
		
		btn_add.setOnClickListener(this);
		btn_delete.setOnClickListener(this);
		btn_find.setOnClickListener(this);
		btn_update.setOnClickListener(this);
	}

	@Override
	public void onClick(View v) {
		System.out.println("***************************************************************");
		switch (v.getId()) {
		case R.id.btn_add:
			add("name123","number123");
			break;
		case R.id.btn_delete:
			delete("name123");
			break;
		case R.id.btn_update:
			update(1,"123456","123123123");
			break;
		case R.id.btn_find:
			find(3);
			break;
		}
		findAll();
	}
	
	/**
	 * 创建一个数据库
	 */
	private void CreateDB(){
		SQLiteOpenHelperYline helper = new SQLiteOpenHelperYline(this);
		helper.getWritableDatabase();
	}
	
	/**
	 * 在表中,添加 一条信息
	 * @param name 姓名
	 * @param number 号码
	 */
	private void add(String name,String number){
		DataBaseOperateNoTool ylineTable = new DataBaseOperateNoTool(this);
		ylineTable.addDBItem(name,number);
	}
	
	private void addInTool(String name,String number){
		DataBaseOperateInTool ylineTable = new DataBaseOperateInTool(this);
		ylineTable.addDBItem(name,number);
	}
	
	/**
	 * 删除 姓名为name的 信息
	 * @param name
	 */
	private void delete(String name){
		DataBaseOperateNoTool ylineTable = new DataBaseOperateNoTool(this);
		ylineTable.deleteDBItem(name);
	}
	
	private void deleteInTool(String name){
		DataBaseOperateInTool ylineTable = new DataBaseOperateInTool(this);
		ylineTable.deleteDBItem(name);
	}
	
	/**
	 * 更新数据
	 * @param id 待更新的编号
	 * @param name 新的姓名
	 * @param number 新的号码
	 */
	private void update(int id,String name,String number){
		DataBaseOperateNoTool ylineTable = new DataBaseOperateNoTool(this);
		ylineTable.updateDBItem(id,name,number);
	}
	
	private void updateInTool(int id,String name,String number){
		DataBaseOperateInTool ylineTable = new DataBaseOperateInTool(this);
		ylineTable.updateDBItem(id,name,number);
	}
	
	/**
	 * 查询信息
	 * @param id 待查询信息的编号
	 */
	private void find(int id){
		DataBaseOperateNoTool ylineTable = new DataBaseOperateNoTool(this);
		ylineTable.findDBItem(id);
	}
	
	private void findInTool(int id){
		DataBaseOperateInTool ylineTable = new DataBaseOperateInTool(this);
		ylineTable.findDBItem(id);
	}
	
	/**
	 * 遍历列表
	 */
	private void findAll(){
		DataBaseOperateNoTool ylineTable = new DataBaseOperateNoTool(this);
		List<PersonDomain> persons = ylineTable.findAll();
		for(PersonDomain m : persons){
			System.out.println(m);
		}
	}
	
	private void findAllInTool(){
		DataBaseOperateInTool ylineTable = new DataBaseOperateInTool(this);
		List<PersonDomain> persons = ylineTable.findAll();
		for(PersonDomain m : persons){
			System.out.println(m);
		}
	}
}
  // activity.xml

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

    <EditText
        android:id="@+id/et_name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:hint="请输入姓名"
        android:singleLine="true" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/et_number"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/et_name"
        android:hint="请输入号码"
        android:singleLine="true" />

    <Button
        android:id="@+id/btn_add"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/et_number"
        android:text="add" />

    <Button
        android:id="@+id/btn_delete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/btn_add"
        android:layout_alignBottom="@+id/btn_add"
        android:layout_toRightOf="@+id/btn_add"
        android:text="delete" />

    <Button
        android:id="@+id/btn_update"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/btn_delete"
        android:layout_alignBottom="@+id/btn_delete"
        android:layout_toRightOf="@+id/btn_delete"
        android:text="updata" />

    <Button
        android:id="@+id/btn_find"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/btn_update"
        android:layout_alignBottom="@+id/btn_update"
        android:layout_toRightOf="@+id/btn_update"
        android:text="find" />

</RelativeLayout>

  // SQLiteOpenHelperYline.java

package com.yline.sqlite.database;

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

/**
 * function : 创建数据库 工具
 * @author yline
 */
public class SQLiteOpenHelperYline extends SQLiteOpenHelper{
	private static final String TAG = "SQLiteOpenHelperYline";   //本类名
	private static final String SQLite_NAME = "ylineSQLite.db";  //数据库名称
	private static final String TABLE_NAME = "yline";   // 数据库 表名
	private static final String TABLE_COLUMN_KEY = "id";  //数据库 第零列名称
	private static final String TABLE_COLUMN_ONE = "name";   // 数据库 第一列名称
	private static final String TABLE_COLUMN_TWO = "number";  // 数据库 第二列名称
	private static final int VERSION = 1;
	
	/**
	 * function : 创建一个 自命名 的数据库
	 * @param context 上下文
	 * @param name 数据库名称
	 * @param factory , 创建一个cursor(游标); null for the default
	 * @param version , 版本 >=1
	 */
	public SQLiteOpenHelperYline(Context context) {
		super(context, SQLite_NAME, null, VERSION);
	}
	
	/**
	 * 原始语句 :create table yline (id integer primary key autoincrement,name varchar(20),number varchar(20))
	 * 数据库被创建后,调用此方法创建一个 SQL表
	 * @param db 被创建的数据库表
	 */
	@Override
	public void onCreate(SQLiteDatabase db) {
		//初始化数据库的表结构  varchar(20)中的20是给程序员看的,没有实际作用
		String sql = "create table " + TABLE_NAME 
				+ " (" + TABLE_COLUMN_KEY + " integer primary key autoincrement," 
				+ TABLE_COLUMN_ONE + " varchar(20) ,"
				+ TABLE_COLUMN_TWO + " varchar(20) "
				+ ")";
		db.execSQL(sql);
	}

	/**
	 * 当数据库的版本号发生变化的时候,调用
	 */
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVresion) {
		//修改数据库的表结构
		Log.i(TAG,"数据库的版本更新");
		db.execSQL("alter table version add account varchar(20)");
	}
}
  // DataBaseOperateNoTool.java

package com.yline.sqlite.database;

import java.util.ArrayList;
import java.util.List;

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

public class DataBaseOperateNoTool {
	private static final String TABLE_NAME = "yline";   // 数据库 表名
	private static final String TABLE_COLUMN_KEY = "id";  //数据库 第零列名称
	private static final String TABLE_COLUMN_ONE = "name";   // 数据库 第一列名称
	private static final String TABLE_COLUMN_TWO = "number";  // 数据库 第二列名称
	private SQLiteOpenHelperYline dbHelper;
	
	/**
	 * 初始化 构建数据库 的方法
	 * @param context 包含环境的信息
	 */
	public DataBaseOperateNoTool(Context context) {
		dbHelper = new SQLiteOpenHelperYline(context);
	}
	
	/**
	 * 原始语句 : insert into ylineone (name,number) values ('zhangsan','123')
	 * 添加 一条 数据到 数据表 中
	 * @param name 姓名
	 * @param number 号码
	 */
	public void addDBItem(String name,String number) {
		SQLiteDatabase db = dbHelper.getWritableDatabase();
		String sql = "insert into " + TABLE_NAME 
				+ " (" + TABLE_COLUMN_ONE + "," + TABLE_COLUMN_TWO + ") "
				+ " values (?,?)";
		db.execSQL(sql, new Object[]{name,number});
		db.close();
	}

	/**
	 * 原始语句 :delete from ylineone where id = 9 and name = 'zhangsan'
	 * 依据所给的条件,删除一条数据
	 * @param name 姓名
	 */
	public void deleteDBItem(String name){
		SQLiteDatabase db = dbHelper.getWritableDatabase();
		String sql = "delete from " + TABLE_NAME 
				+ " where " + TABLE_COLUMN_ONE + " = ? ";
		db.execSQL(sql,new Object[]{name});
		db.close();
	}
	
	/**
	 * 原始语句 :update ylineone set number = '12345465',name = "z421" where id = 10
	 * 依据 id ,更新一条数据
	 * @param id 编号,
	 * @param name 姓名
	 * @param number 号码
	 */
	public void updateDBItem(int id,String name,String number){
		SQLiteDatabase db = dbHelper.getWritableDatabase();
		String sql = "update " + TABLE_NAME 
				+ " set " + TABLE_COLUMN_ONE + " = ?," + TABLE_COLUMN_TWO + " = ? " 
				+ " where " + TABLE_COLUMN_KEY + " = ? ";
		db.execSQL(sql,new Object[]{name, number, id});
		db.close();
	}

	/**
	 * 原始语句 :select * from yline where id = 10
	 * 依据 id,查询所有的信息,并返回
	 * @param id 编号
	 * @return 一个personDomain数据组
	 */
	public PersonDomain findDBItem(Integer id){
		SQLiteDatabase db = dbHelper.getReadableDatabase();
		String sql = " select * from " + TABLE_NAME 
				+ " where " + TABLE_COLUMN_KEY + " = ? ";

		Cursor cursor = db.rawQuery(sql, new String[]{ id.toString() });
		PersonDomain result = null;
		if(cursor.moveToNext()){
			result = new PersonDomain();
			result.setId(cursor.getInt(cursor.getColumnIndex(TABLE_COLUMN_KEY)));
			result.setName(cursor.getString(cursor.getColumnIndex(TABLE_COLUMN_ONE)));
			result.setNumber(cursor.getString(cursor.getColumnIndex(TABLE_COLUMN_TWO)));
		}
		cursor.close();
		db.close();
		return result;
	}
	
	/**
	 * 原始语句 :select * from yline
	 * @return 含有PersonDomain 的 list表
	 */
	public List<PersonDomain> findAll(){
		SQLiteDatabase db = dbHelper.getReadableDatabase();
		String sql = " select * from " + TABLE_NAME;
		
		Cursor cursor = db.rawQuery(sql, null);
		List<PersonDomain> list = new ArrayList<PersonDomain>();
		PersonDomain result = null;
		while(cursor.moveToNext()){
			result = new PersonDomain();
			result.setId(cursor.getInt(cursor.getColumnIndex(TABLE_COLUMN_KEY)));
			result.setName(cursor.getString(cursor.getColumnIndex(TABLE_COLUMN_ONE)));
			result.setNumber(cursor.getString(cursor.getColumnIndex(TABLE_COLUMN_TWO)));
			list.add(result);
		}
		cursor.close();
		db.close();
		return list;
	}
	
	/**
	 * 查询 数据库表 的数据行数
	 * @return 行数
	 */
	public long getCount(){
		SQLiteDatabase db = dbHelper.getReadableDatabase();
		String sql = "select count(*) from " + TABLE_NAME;
		Cursor cursor = db.rawQuery(sql, null);
		cursor.moveToFirst();
		long result = cursor.getLong(0);
		
		return result;
	}
}
  // SQLiteOpenHelperYline.java

package com.yline.sqlite.database;

import java.util.ArrayList;
import java.util.List;

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

public class DataBaseOperateInTool {
	private SQLiteOpenHelperYline dbHelper;
	private static final String TABLE_NAME = "yline";   // 数据库 表名
	private static final String TABLE_COLUMN_KEY = "id";  //数据库 第零列名称
	private static final String TABLE_COLUMN_ONE = "name";   // 数据库 第一列名称
	private static final String TABLE_COLUMN_TWO = "number";  // 数据库 第二列名称
	
	/**
	 * 初始化 构建数据库 的方法
	 * @param context 包含环境的信息
	 */
	public DataBaseOperateInTool(Context context) {
		dbHelper = new SQLiteOpenHelperYline(context);
	}
	
	/**
	 * 原始语句 : insert into ylineone (name,number) values ('zhangsan','123')
	 * 添加 一条 数据到 数据表 中
	 * @param name 姓名
	 * @param number 号码
	 */
	public void addDBItem(String name,String number){
		SQLiteDatabase db = dbHelper.getWritableDatabase();
		
		ContentValues values = new ContentValues();
		values.put(TABLE_COLUMN_ONE, name);
		values.put(TABLE_COLUMN_TWO, number);
		db.insert(TABLE_NAME, null, values);
		
		db.close();
	}
	
	/**
	 * 原始语句 :delete from ylineone where id = 9 and name = 'zhangsan'
	 * 依据所给的条件,删除一条数据
	 * @param name 姓名
	 */
	public void deleteDBItem(String name) {
		SQLiteDatabase db = dbHelper.getWritableDatabase();
		
		db.delete(TABLE_NAME, TABLE_COLUMN_ONE + "=?", new String[]{name});
		
		db.close();
	}
	
	/**
	 * 原始语句 :update ylineone set number = '12345465',name = "z421" where id = 10
	 * 依据 id ,更新一条数据
	 * @param id 编号,
	 * @param name 姓名
	 * @param number 号码
	 */
	public void updateDBItem(int id,String name,String number){
		SQLiteDatabase db = dbHelper.getWritableDatabase();
		
		ContentValues values = new ContentValues();
		values.put(TABLE_COLUMN_ONE, name);
		values.put(TABLE_COLUMN_TWO, number);
		db.update(TABLE_NAME, values, TABLE_COLUMN_KEY + "=?", new String[]{ id + "" });
		
		db.close();
	}
	
	/**
	 * 原始语句 :select * from yline where id = 10
	 * 依据 id,查询所有的信息,并返回
	 * @param id 编号
	 * @return 一个personDomain数据组
	 */
	public PersonDomain findDBItem(Integer id){
		SQLiteDatabase db = dbHelper.getReadableDatabase();
		
		Cursor cursor = db.query(TABLE_NAME, null, TABLE_COLUMN_KEY+"=?", new String[]{id.toString()}, null, null, null);
		
		PersonDomain result = null;
		if(cursor.moveToNext()){
			result = new PersonDomain();
			result.setId(cursor.getInt(cursor.getColumnIndex(TABLE_COLUMN_KEY)));
			result.setName(cursor.getString(cursor.getColumnIndex(TABLE_COLUMN_ONE)));
			result.setNumber(cursor.getString(cursor.getColumnIndex(TABLE_COLUMN_TWO)));
		}
		cursor.close();
		db.close();
		
		return result;
	}

	/**
	 * 原始语句 :select * from yline
	 * @return 含有PersonDomain 的 list表
	 */
	public List<PersonDomain> findAll(){
		SQLiteDatabase db = dbHelper.getReadableDatabase();
		
		Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null);
		List<PersonDomain> list = new ArrayList<PersonDomain>();
		PersonDomain result = null;
		while(cursor.moveToNext()){
			result = new PersonDomain();
			result.setId(cursor.getInt(cursor.getColumnIndex(TABLE_COLUMN_KEY)));
			result.setName(cursor.getString(cursor.getColumnIndex(TABLE_COLUMN_ONE)));
			result.setNumber(cursor.getString(cursor.getColumnIndex(TABLE_COLUMN_TWO)));
			list.add(result);
		}
		
		cursor.close();
		db.close();
		return list;
	}
	
	/**
	 * 查询 数据库表 的数据行数
	 * @return 行数
	 */
	public long getCount(){
		SQLiteDatabase db = dbHelper.getReadableDatabase();
		
	//	db.query(TABLE_NAME, new String[]{"count(*)"}, null, null, null, null, null);
		
		String sql = "select count(*) from " + TABLE_NAME;
		Cursor cursor = db.rawQuery(sql, null);
		cursor.moveToFirst();
		long result = cursor.getLong(0);
		
		return result;
	}
}

打开sqlite数据库的安装破解包下载链接:

百度网盘:http://pan.baidu.com/s/1nt7KQsp

CSDN : http://download.csdn.net/detail/u014803950/8042559

本文代码下载链接:

http://pan.baidu.com/s/1gdy3B5D



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值