在Android中类似于java开发时的连接数据库的操作

这几天一直在敲代码敲代码敲代码,都有些糊涂了,时间都去哪了?什么都没有干就悄悄的溜走了!

好了,放上我的代码,留下自己的足迹,以后慢慢研究完善!

刚刚接触Android,如果您看到了不对的地方,请联系我,我好继续修正更改,知之为知之,不知为不知,是知也!

package com.example.bean;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
/**
 * 
 * @author Dragon
 *SQLite数据库的操作
 */
public class UserDataManager {

	private static final String TAG = "UserDataManager";
	private static final String DB_NAME = "user_data";
	private static final String TABLE_NAME = "users";
	public static final String ID = "_id";

	public static final String USER_NAME = "user_name";
	public static final String USER_PWD = "user_pwd";
	public static final String SILENT = "silent";
	public static final String VIBRATE = "vibrate";

	private static final int DB_VERSION = 2;
	private Context mContext = null;

	/*create table users (_id integer primary key, user_name varchar, user_pwd varchar);  测试没有错误*/
	private static final String DB_CREATE = "CREATE TABLE " + TABLE_NAME + " ("
			+ ID + " integer primary key," + USER_NAME + " varchar,"
			+ USER_PWD + " varchar" + ");";

	private SQLiteDatabase mSQLiteDatabase = null;
	private DataBaseManagementHelper mDatabaseHelper = null;

	//SQLiteOpenHelper是一个辅助类 用来打开或者创建数据库
	private static class DataBaseManagementHelper extends SQLiteOpenHelper {

		DataBaseManagementHelper(Context context) {
			super(context, DB_NAME, null, DB_VERSION);
		}

		@Override
		public void onCreate(SQLiteDatabase db) {
			Log.i(TAG,"db.getVersion()="+db.getVersion());
			db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME + ";");
			db.execSQL(DB_CREATE);
			Log.i(TAG, "db.execSQL(DB_CREATE)");
			Log.e(TAG, DB_CREATE);
		}

		@Override
		public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
			Log.i(TAG, "DataBaseManagementHelper onUpgrade");
			onCreate(db);
		}
	}

	
	public UserDataManager(Context context) {
		mContext = context;
		Log.i(TAG, "UserDataManager construction!");
	}

	//打开数据库
	
	public void openDataBase(){
		
		mDatabaseHelper = new DataBaseManagementHelper(mContext);
		mSQLiteDatabase = mDatabaseHelper.getWritableDatabase();
	}

	//关闭数据库
	public void closeDataBase() throws SQLException {

		mDatabaseHelper.close();
	}

	//向数据库注入用户信息
	public long insertUserData(UserData userData) {
		
		String userName=userData.getUserName();
		String userPwd=userData.getUserPwd();

		ContentValues values = new ContentValues();
		values.put(USER_NAME, userName);
		values.put(USER_PWD, userPwd);
		return mSQLiteDatabase.insert(TABLE_NAME, ID, values);
	}

	//修改用户信息
	public boolean updateUserData(UserData userData) {

		int id = userData.getUserId();
		String userName = userData.getUserName();
		String userPwd = userData.getUserPwd();

		ContentValues values = new ContentValues();
		values.put(USER_NAME, userName);
		values.put(USER_PWD, userPwd);
		return mSQLiteDatabase.update(TABLE_NAME, values, ID + "=" + id, null) > 0;
	}

	//以集合形式输出用户信息
	public Cursor fetchUserData(int id) throws SQLException {

		Cursor mCursor = mSQLiteDatabase.query(false, TABLE_NAME, null, ID
				+ "=" + id, null, null, null, null, null);

		if (mCursor != null) {
			mCursor.moveToFirst();
		}
		return mCursor;
	}

	//读取用户信息
	public Cursor fetchAllUserDatas() {

		return mSQLiteDatabase.query(TABLE_NAME, null, null, null, null, null,
				null);
	}

	//删除用户信息
	public boolean deleteUserData(int id) {

		return mSQLiteDatabase.delete(TABLE_NAME, ID + "=" + id, null) > 0;
	}

	//删除所有用户信息
	public boolean deleteAllUserDatas() {

		return mSQLiteDatabase.delete(TABLE_NAME, null, null) > 0;
	}


	//输出用户信息根据
	public String getStringByColumnName(String columnName, int id) {
		//Cursor   一种数据集合,代表每行的集合
		Cursor mCursor = fetchUserData(id);
		int columnIndex = mCursor.getColumnIndex(columnName);
		String columnValue = mCursor.getString(columnIndex);
		mCursor.close();
		return columnValue;
	}

	//根据ID修改用户信息
	public boolean updateUserDataById(String columnName, int id,
			String columnValue) {
		ContentValues values = new ContentValues();
		values.put(columnName, columnValue);
		return mSQLiteDatabase.update(TABLE_NAME, values, ID + "=" + id, null) > 0;
	}
	
	//根据名字查找用户
	public int findUserByName(String userName){
		Log.i(TAG,"findUserByName , userName="+userName);
		int result=0;
		Cursor mCursor=mSQLiteDatabase.query(TABLE_NAME, null, USER_NAME+"="+userName, null, null, null, null);
		if(mCursor!=null){
			result=mCursor.getCount();
			mCursor.close();
			Log.i(TAG,"findUserByName , result="+result);
		}
		return result;
	}
	
	//根据名字和密码来查找用户
	public int findUserByNameAndPwd(String userName,String pwd){
		Log.i(TAG,"findUserByNameAndPwd");
		int result=0;
		Cursor mCursor=mSQLiteDatabase.query(TABLE_NAME, null, USER_NAME+"="+userName+" and "+USER_PWD+"="+pwd,
				null, null, null, null);
		if(mCursor!=null){
			result=mCursor.getCount();
			mCursor.close();
			Log.i(TAG,"findUserByNameAndPwd , result="+result);
		}
		return result;
	}

}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值