SQL数据库简单语句

leader让我给他写一个简单的数据库类demo

之前也没有写过相关的文档,为了以后使用方便,总结一下:

public class DataBaseHelper extends SQLiteOpenHelper {

	private static final String DATABASE_NAME = "demo.db";// 数据库名
	private static final int DATABASE_VERSION = 1;// 数据版本号
	private SQLiteDatabase mSqLiteDatabase;
	private static final String TABLE_NAME = "table_name";// 表名
	public static final String ID = "id";
	public static final String NAME = "name";
	public static final String AGE = "age";
	public static final String GENDER = "gender";

	public DataBaseHelper(Context context) {
		super(context, DATABASE_NAME, null, DATABASE_VERSION);
		mSqLiteDatabase = getWritableDatabase();
	}

	@Override
	public SQLiteDatabase getWritableDatabase() {
		// TODO Auto-generated method stub
		if (mSqLiteDatabase == null) {
			mSqLiteDatabase = super.getWritableDatabase();
		}
		return mSqLiteDatabase;
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		mSqLiteDatabase = db;
		initDB();
	}

	  /**
     * 创建数据库表
     */
    private void initDB() {
        mSqLiteDatabase.execSQL("CREATE TABLE " + TABLE_NAME + "(" +
                ID + " INTEGER PRIMARY KEY," +
                NAME + " VARCHAR," +
                AGE + " INTEGER," +
                GENDER + " VARCHAR" +
                ");");
    }

	/**
	 * 插入数据库
	 * 
	 * @param list
	 */
	public void insert(List<PeopleInfo> list) {
		if (list == null || list.size() < 1) {
			return;
		}
		int length = list.size();
		for (int i = 0; i < length; i++) {
			insert(list.get(i));
		}
	}

	/**
	 * 插入数据库
	 * 
	 * @param peopleInfo
	 */
	private void insert(PeopleInfo peopleInfo) {
		// TODO Auto-generated method stub
		ContentValues values = new ContentValues();
		values.put(ID, peopleInfo.getID());
		values.put(NAME, peopleInfo.getName());
		values.put(AGE, peopleInfo.getAge());
		values.put(GENDER, peopleInfo.getGender());
		mSqLiteDatabase.insert(TABLE_NAME, null, values);
	}

	/**
	 * 删除数据库表
	 */
	public void dropTable() {
		String sql = "DROP TABLE IF EXISTS " + TABLE_NAME;
		mSqLiteDatabase.execSQL(sql);
	}

	/**
	 * 删除表中对应列
	 * 
	 * @param name
	 */
	public void deleteItem(int id) {
		String sql = "DELETE FROM " + TABLE_NAME + " WHERE " + ID + "=" + id;
		mSqLiteDatabase.execSQL(sql);
	}

	/**
	 * 删除表数据不删除表
	 */
	public void deleteTable() {
		String sql = "DELETE FROM " + TABLE_NAME;
		mSqLiteDatabase.execSQL(sql);
	}

	/**
	 * 更新数据库表数据
	 * 
	 * @param peopleInfo
	 */
	public void update(PeopleInfo peopleInfo) {

		ContentValues values = new ContentValues();
		values.put(NAME, peopleInfo.getName());
		values.put(AGE, peopleInfo.getAge());
		values.put(GENDER, peopleInfo.getGender());
		mSqLiteDatabase.update(TABLE_NAME, values, "id=?",
				new String[] { String.valueOf(peopleInfo.getID()) });
	}

	private Cursor getAll() {
		String sql = "SELECT * FROM " + TABLE_NAME;
		return mSqLiteDatabase.rawQuery(sql, null);
	}

	/**
	 * 获取表中所有数据
	 * 
	 * @return
	 */
	public List<PeopleInfo> getDBAllData() {
		List<PeopleInfo> list = new ArrayList<PeopleInfo>();
		Cursor mCursor = getAll();
		int idIndex = mCursor.getColumnIndexOrThrow(ID);
		int nameIndex = mCursor.getColumnIndexOrThrow(NAME);
		int ageIndex = mCursor.getColumnIndexOrThrow(AGE);
		int genderIndex = mCursor.getColumnIndexOrThrow(GENDER);

		while (mCursor.moveToNext()) {
			PeopleInfo info = new PeopleInfo();
			info.setID(mCursor.getInt(idIndex));
			info.setName(mCursor.getString(nameIndex));
			info.setAge(mCursor.getInt(ageIndex));
			info.setGender(mCursor.getString(genderIndex));
			list.add(info);
		}
		mCursor.close();
		return list;
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub
		mSqLiteDatabase = db;
		if (oldVersion != newVersion) {
			dropTable();
		}
		onCreate(db);
	}

}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值