• Android——另外一种增删查改的方式(ContentProvider常用)


    以下介绍另外一种增删查改的方式

    package com.njupt.sqllist;
    
    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 PersonDao {
    
    	DBOpenHelper helper;
    
    	public PersonDao(Context context) {
    		helper = new DBOpenHelper(context);
    	}
    
    	public void insert(Person p) {
    		SQLiteDatabase db = helper.getWritableDatabase();
    		
    		ContentValues values = new ContentValues();
    		values.put("name", p.getName());
    		values.put("balance", p.getBalance());
    		long row = db.insert("person", null, values);
    		System.out.println("在第"+row+"插入");
    		db.close();
    	}
    
    	public void delete(int id) {
    		SQLiteDatabase db = helper.getWritableDatabase();
    		
    		int rows = db.delete("person", "id = ? ", new String[]{ id + ""});
    		
    		System.out.println("删除了"+rows+"行");
    		db.close();
    	}
    
    	public void update(Person p) {
    		SQLiteDatabase db = helper.getWritableDatabase();
    		ContentValues values = new ContentValues();
    		values.put("name", p.getName());
    		values.put("balance", p.getBalance());
    		int rows = db.update("person", values,"id = ?",new String[]{p.getId() + ""});
    		
    		System.out.println("更新了"+rows+"行");
    		db.close();
    	}
    
    	public Person query(int id) {
    		SQLiteDatabase db = helper.getReadableDatabase();
    		
    		
    		Cursor c = db.query("person", new String[]{"name,balance"}, "id = ? ", new String[]{id + ""}, null, null, null);
    		Person p = null;
    		if (c.moveToNext()) {
    			String name = c.getString(c.getColumnIndex("name"));
    			int balance = c.getInt(1);
    
    			p = new Person(id, name, balance);
    		}
    
    		System.out.println("这是一种另一种方式进行查询");
    		return p;
    	}
    
    	public List<Person> queryAll() {
    		SQLiteDatabase db = helper.getReadableDatabase();
    		
    		Cursor c = db.query("person", null, null, null, null, null, null);
    		
    		List<Person> persons = new ArrayList<Person>();
    
    		while (c.moveToNext()) {
    			Person p = new Person(c.getInt(0), c.getString(1), c.getInt(2));
    
    			persons.add(p);
    		}
    
    		System.out.println("这时再用另外一种方式查询所有");
    		return persons;
    	}
    
    	public void remit(int from, int to, int count) {
    		SQLiteDatabase db = helper.getWritableDatabase();
    		try {
    			db.beginTransaction();
    
    			db.execSQL("update person set balance = balance - ? where id = ?",
    					new Object[] { count, from });
    			System.out.println(1 / 0);
    			db.execSQL("update person set balance = balance + ? where id = ?",
    					new Object[] { count, to });
    
    			db.setTransactionSuccessful();
    		} finally {
    
    			db.endTransaction();
    			db.close();
    		}
    	}
    
    	public int queryCount() {
    		SQLiteDatabase db = helper.getReadableDatabase();
    
    		Cursor c = db.query("person", new String[]{"count(*)"}, null, null,null, null, null);
    		c.moveToNext();
    
    		int count = c.getInt(0);
    
    		System.out.println("这时再用另外一种方式查询总数");
    		return count;
    	}
    
    	public List<Person> queryPage(int pageNum, int pageSize) {
    		SQLiteDatabase db = helper.getReadableDatabase();
    
    		Cursor c = db.query("person",null, null, null,null,null,null, (pageNum - 1) * pageSize + " , " + pageSize);
    		List<Person> persons = new ArrayList<Person>();
    
    		while (c.moveToNext()) {
    			Person p = new Person(c.getInt(0), c.getString(1), c.getInt(2));
    
    			persons.add(p);
    		}
    
    		System.out.println("这时再用另外一种方式在分页");
    		return persons;
    	}
    
    }
    


  • 相关阅读:
    【转载】警情通报为啥一定是"蓝底白字"?
    我的英语词汇本
    【转载】随便说说字符集和编码
    JavaScript入门笔记
    JavaScript代码规范及其他注意事项
    编程的部分基础知识
    vc++ 6.0相关
    vue 定位
    mpvue 搭建命令
    uni-app 漫长学习之路
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3155407.html
Copyright © 2020-2023  润新知