private void showInfo() { int userNums = DBUtil.getUserNums(getApplicationContext()); info.setText(Integer.toString(userNums)); }
class RunWrongThread extends Thread {
@Override public void run() { DBOpenHelper dbHelper = new DBOpenHelper(getApplicationContext());
for (int i = 0; i < 100; i++) { User user = new User(); user.setName("name" + i); user.setAge(i); user.setEmail("email" + i);
dbHelper.insert(user); }
dbHelper.close(); }
}
class RunRightThread extends Thread {
@Override public void run() { for (int i = 0; i < 100; i++) { User user = new User(); user.setName("name" + i); user.setAge(i); user.setEmail("email" + i);
public DBOpenHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); }
@Override public void onCreate(SQLiteDatabase db) { db.execSQL(T_USER_SQL); }
@Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void insert(User user) { if (user == null) { return; }
final ContentValues values = new ContentValues(); values.put(T_USER_COLUMN_NAME, user.getName()); values.put(T_USER_COLUMN_AGE, user.getAge()); values.put(T_USER_COLUMN_EMAIL, user.getEmail());
final SQLiteDatabase db = getWritableDatabase(); db.insert(T_USER, null, values); }
public int getUserNums() { final SQLiteDatabase db = getReadableDatabase(); final Cursor cursor = db.query(T_USER, null, null, null, null, null, null);
if (cursor == null) { return 0; }
int count = cursor.getCount(); cursor.close();
return count; } }
package org.jerry;
import android.content.Context;
public class DBUtil { private static DBOpenHelper dbHelper;
private static void ensureDBHelperExist(Context context) { if (dbHelper == null) { dbHelper = new DBOpenHelper(context); } }
/** * 插入user * @param context 务必使用ApplicationContext,直接使用activity/service的context可能导致内存泄露 * @param user */ public synchronized static void insertUser(Context context, User user) { ensureDBHelperExist(context); dbHelper.insert(user); }
/** * @param context 务必使用ApplicationContext,直接使用activity/service的context可能导致内存泄露 * @return */ public synchronized static int getUserNums(Context context) { ensureDBHelperExist(context); return dbHelper.getUserNums(); }
public synchronized static void close() { if (dbHelper != null) { dbHelper.close(); dbHelper = null; } } }