Android Sqlite简单增删查改

1.DBManager.java 数据库的初始化,数据库的增删查改方法实现

2.Entity.java 实体类

3.MainActivity.java 显示界面的类

4.MyBaseAdapter 适配器封装


/**
 * 1.实现增,删,查全部,改(根据id修改),游标获取方法
 * 
 * @author Justice 2014 10 15
 * 
 */
public class DBManager extends SQLiteOpenHelper {
	private static final String DATABASE_NAME = "shop_address.db";// 数据库名字
	private static final int VERSION = 1;// 数据库版本
	private static final String TABLE = "t_shop_address";// 数据库表名
	private static final String ID = "_id";
	private static final String NAME = "name";
	private static final String ADDRESS = "address";
	private SQLiteDatabase db;
	private DBManager dbManager;//1.创建数据库管理全局变量
	public DBManager(Context context) {//1.1构造函数初始化,数据库表名,数据库版本
		super(context, DATABASE_NAME, null, VERSION);
		Log.i("DBHelper", "构造函数执行");
	}
	public void onCreate(SQLiteDatabase db) {//1.2 创建数据库表
		String sql = "create table t_shop_address(_id integer primary key autoincrement ,name text,address text,ischecked boolean)";
		db.execSQL(sql);
		Log.i("DBHelper", "onCreate执行");
	}
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {//1.3 创建数据库表
		db.execSQL("drop table if exists t_shop_address");
		onCreate(db);
		Log.i("DBHelper", "onUpgrade执行");
	}
	public int add(Context context, ContentValues values) {// 增加
		dbManager = new DBManager(context);
		db = dbManager.getWritableDatabase();
		long addCount = db.insert(TABLE, null, values);
		db.close();
		Log.i("DBManager", "add增加了" + addCount);
		return (int) addCount;
	}
	public int delete(Context context, int id) {// 根据id删除
		dbManager = new DBManager(context);
		db = dbManager.getWritableDatabase();
		int deleteCount = db.delete(TABLE, ID + "=?", new String[] { id + "" });// 1.表名2.根据条件参数3.条件值
		db.close();
		Log.i("DBManager", "delete删除了" + deleteCount);
		return deleteCount;

	}
	public List<Entity> findAll(Context context) {// 查询所有
		List<Entity> data = null;
		dbManager = new DBManager(context);
		db = dbManager.getWritableDatabase();
		Cursor cursor = db.query(TABLE, null, null, null, null, null, null);
		if (cursor.getColumnCount() > 0) {// 当有数据时
			data = new ArrayList<Entity>();
			while (cursor.moveToNext()) {
				Entity entity = new Entity();
				entity.setId(cursor.getInt(cursor.getColumnIndex(ID)));
				entity.setName(cursor.getString(cursor.getColumnIndex(NAME)));
				entity.setAddress(cursor.getString(cursor.getColumnIndex(ADDRESS)));
				data.add(entity);
			}
		}
		db.close();
		Log.i("DBManager", "findAll查询所有");
		return data;
	}
	public List<Entity> findAllByName(Context context, String name) {// 查询所有根据名字
		List<Entity> data = null;
		dbManager = new DBManager(context);
		db = dbManager.getWritableDatabase();
		Cursor cursor = db.query(TABLE, null, NAME + " like '%" + name + "%'", null, null, null, null);
		if (cursor.getColumnCount() > 0) {// 当有数据时
			data = new ArrayList<Entity>();
			while (cursor.moveToNext()) {
				Entity entity = new Entity();
				entity.setId(cursor.getInt(cursor.getColumnIndex(ID)));
				entity.setName(cursor.getString(cursor.getColumnIndex(NAME)));
				entity.setAddress(cursor.getString(cursor.getColumnIndex(ADDRESS)));
				data.add(entity);
			}
		}
		db.close();
		Log.i("DBManager", "findAllByName查询所有" + "");
		return data;
	}
	public List<Entity> findAllByID(Context context, int id) {// 查询所有根据名字
		List<Entity> data = null;
		dbManager = new DBManager(context);
		db = dbManager.getWritableDatabase();
		Cursor cursor = db.query(TABLE, null, ID + "=?", new String[] { id + "" }, null, null, null);
		if (cursor.getColumnCount() > 0) {// 当有数据时
			data = new ArrayList<Entity>();
			while (cursor.moveToNext()) {
				Entity entity = new Entity();
				entity.setId(cursor.getInt(cursor.getColumnIndex(ID)));
				entity.setName(cursor.getString(cursor.getColumnIndex(NAME)));
				entity.setAddress(cursor.getString(cursor.getColumnIndex(ADDRESS)));
				data.add(entity);
			}
		}
		db.close();
		Log.i("DBManager", "findAllByName查询所有" + "");
		return data;
	}
	public int update() {
		return 0;
	}
	public Cursor findCursor(Context context) {// 游标
		dbManager = new DBManager(context);
		db = dbManager.getWritableDatabase();
		Cursor cursor = db.query(TABLE, null, null, null, null, null, null);
		Log.i("DBManager", "Cursor游标");
		return cursor;
	}
}

public class Entity {
	private int id;
	private String name;
	private String address;
	@Override
	public String toString() {
		return "Entity [id=" + id + ", name=" + name + ", address=" + address + "]";
	}
	public Entity(String name, String address) {
		this.name = name;
		this.address = address;
	}
	public int getId() {
		return id;
	}
	public Entity() {
		super();
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
}

public class MainActivity extends Activity implements OnClickListener {
	private Context context;// 上下文
	private static final String NAME = "name";// 字段名
	private static final String ID = "_id";
	private static final String ADDRESS = "address";
	private EditText name_edt;
	private EditText address_edt;
	private EditText find_edt;
	private Button add_btn;// 增删查改
	private Button delete_btn;
	private Button find_btn;
	private Button update_btn;
	private DBManager dbManager;// 数据库管理类
	private ListView listview;// listview
	private List<Entity> findList;// 数据集合
	private MyBaseAdapter adapter;// 适配器
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);// 设置吧显示标题栏--需要在创建视图之前设置
		setContentView(R.layout.activity_main);
		context = this;// 上下文赋值
		dbManager = new DBManager(context);// 1.创建数据库管理类
		InitView();// 1.1初始化View
		ListViewInit();// 1.2初始化数据显示
		listview.setOnCreateContextMenuListener(this);// 1.3设置上下文监听
																	 // registerForContextMenu(listview);或者这个也行
	}
	private void InitView() {// 1.1初始化View
		name_edt = (EditText) this.findViewById(R.id.receiver);
		address_edt = (EditText) this.findViewById(R.id.address);
		find_edt = (EditText) this.findViewById(R.id.find);
		add_btn = (Button) this.findViewById(R.id.add_btn);
		delete_btn = (Button) this.findViewById(R.id.delete_btn);
		find_btn = (Button) this.findViewById(R.id.find_btn);
		update_btn = (Button) this.findViewById(R.id.update_btn);
		add_btn.setOnClickListener(this);
		delete_btn.setOnClickListener(this);
		find_btn.setOnClickListener(this);
		update_btn.setOnClickListener(this);
		listview = (ListView) this.findViewById(R.id.listview);
	}
	private void ListViewInit() {// 1.2初始化数据
		findList = dbManager.findAll(context);
		adapter = new MyBaseAdapter(context, findList) {
			public View getView(int position, View convertView, ViewGroup parent) {
				View view = View.inflate(context, R.layout.item_listview, null);
				TextView name_txt = (TextView) view.findViewById(R.id.name_txt);
				TextView address_txt = (TextView) view.findViewById(R.id.address_txt);
				TextView id_txt = (TextView) view.findViewById(R.id.id_txt);
				Entity entity = findList.get(position);
				id_txt.setText(entity.getId() + "");
				name_txt.setText(entity.getName());
				address_txt.setText(entity.getAddress());
				return view;
			}
		};
		listview.setAdapter(adapter);
	}

	public boolean onContextItemSelected(MenuItem item) {// 1.3上下文菜单选项
		switch (item.getItemId()) {
		case 0:
			AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
			Entity entity = findList.get(info.position);
			dbManager.delete(context, entity.getId());
			ListViewInit();
			break;
		case 1:
			Toast.makeText(context, "修改", 0).show();
			break;
		}

		return super.onContextItemSelected(item);
	}

	public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {// 1.3
																													 // 上下文菜单
		super.onCreateContextMenu(menu, v, menuInfo);
		AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
		Entity entity = findList.get(info.position);
		menu.add(Menu.NONE, 0, 1, "删除");
		menu.setHeaderIcon(R.drawable.ic_launcher);
		menu.setHeaderTitle(entity.getName());
		menu.add(Menu.NONE, 1, 2, "修改");
	}

	public void onClick(View v) {// 1.4按钮点击事件
		switch (v.getId()) {
		case R.id.add_btn:
			ContentValues values = new ContentValues();
			String name = name_edt.getText().toString().trim();// 获取输入框里面的信息增加数据库
			String address = address_edt.getText().toString().trim();
			values.put(NAME, name);
			values.put(ADDRESS, address);
			dbManager.add(context, values);// 增加一条
			Toast.makeText(context, "保存成功", 0).show();
			break;
		case R.id.delete_btn:
			String id = find_edt.getText().toString().trim();
			if (!id.equals("")) {
				dbManager.delete(context, Integer.parseInt(id));// 根据输入框输入Id删除数据库
			}
			ListViewInit();
			Toast.makeText(context, "请输入要删除的ID", 0).show();
		case R.id.find_btn:
			String name2 = find_edt.getText().toString().trim();
			dbManager.findAllByName(context, name2);
			break;
		}

	}

}


public abstract class MyBaseAdapter<T, Q> extends BaseAdapter {

	public Context context;
	public List<T> list;//
	public Q view; //GridView,CustomListView


	public MyBaseAdapter(Context context, List<T> list, Q view) {
		this.context = context;
		this.list = list;
		this.view = view;
	}

	public MyBaseAdapter(Context context, List<T> list) {
		this.context = context;
		this.list = list;
		
	}

	@Override
	public int getCount() {
		return list.size();
	}

	@Override
	public Object getItem(int position) {
		return list.get(position);
	}

	@Override
	public long getItemId(int position) {
		return position;
	}
}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值