zoukankan      html  css  js  c++  java
  • Android Sqlite数据库执行插入查询更新删除的操作对比

    下面是在Android4.0上,利用Sqlite数据库的insert,query,update,delete函数以及execSql,rawQuery函数执行插入,查询,更新,删除操作花费时间的对比结果。

    是在执行相同的动作,记录条数也一样的情况下的对比,多次验证的结果是:

    (1)如果批量执行的记录数在1000条,则Android SqliteDatabase提供的insert,query,update,delete函数和直接写SQL文的execSql,rawQuery的效率差不多,几乎一样。所以使用哪种放到都可以,不会影响到执行效率。

    (2)如果批量执行的记录数在10万条,则会存在差别。在某台手机上SqliteDatabase提供的insert执行插入操作耗时45秒,要比execSql插入35秒慢10秒左右。

    可见在数据库大的情况下,还是有差别的。execSql省去了拼接sql语句的步骤,要比SqliteDatabase提供的insert,query,update,delete等函数效率高。当数据库越大,差别也越大。

    • public class MainActivity extends Activity {  
    •     private static final String TAG = "MainActivity";  
    •       
    •     private DBHelper mDbHelper = null;  
    •     private static TextView mTvInfo;  
    •     private static ProgressDialog mDialog = null;  
    •       
    •     private static Handler mHandler = new Handler() {  
    •         @Override  
    •         public void handleMessage(Message msg) {  
    •             // TODO Auto-generated method stub  
    •             if(mDialog != null) {  
    •                 mDialog.dismiss();  
    •                 mDialog = null;  
    •             }  
    •             if (msg.what == 0) {  
    •                 Bundle b = msg.getData();  
    •                 int seconds = b.getInt("seconds");  
    •                 int ms = b.getInt("ms");  
    •                 StringBuilder builder = new StringBuilder("insert插入1000条记录花费时间:");  
    •                 if (seconds > 0) {  
    •                     builder.append(seconds).append("s ");  
    •                 }  
    •                 builder.append(ms).append("ms");  
    •                 String strLines[] = mTvInfo.getText().toString().split(" ");  
    •                 // 最多显示8条信息  
    •                 for (int i = 0; i < strLines.length; i++) {  
    •                     builder.append(' ').append(strLines[i]);  
    •                     if (i == 6) {  
    •                         break// 加上原来最多7条信息,共显示8条信息  
    •                     }  
    •                 }  
    •                 mTvInfo.setText(builder.toString());  
    •             } else if (msg.what == 1) {  
    •                 Bundle b = msg.getData();  
    •                 int seconds = b.getInt("seconds");  
    •                 int ms = b.getInt("ms");  
    •                 StringBuilder builder = new StringBuilder("execSql插入1000条记录花费时间:");  
    •                 if (seconds > 0) {  
    •                     builder.append(seconds).append("s ");  
    •                 }  
    •                 builder.append(ms).append("ms");  
    •                   
    •                 String strLines[] = mTvInfo.getText().toString().split(" ");  
    •                 // 最多显示8条信息  
    •                 for (int i = 0; i < strLines.length; i++) {  
    •                     builder.append(' ').append(strLines[i]);  
    •                     if (i == 6) {  
    •                         break// 加上原来最多7条信息,共显示8条信息  
    •                     }  
    •                 }  
    •                 mTvInfo.setText(builder.toString());  
    •             } else if (msg.what == 10) {  
    •                 Bundle b = msg.getData();  
    •                 int count = b.getInt("count");  
    •                 int seconds = b.getInt("seconds");  
    •                 int ms = b.getInt("ms");  
    •                 StringBuilder builder = new StringBuilder("query查询");  
    •                 builder.append(count).append("条记录花费时间:");  
    •                 if (seconds > 0) {  
    •                     builder.append(seconds).append("s ");  
    •                 }  
    •                 builder.append(ms).append("ms");  
    •                   
    •                 String strLines[] = mTvInfo.getText().toString().split(" ");  
    •                 // 最多显示8条信息  
    •                 for (int i = 0; i < strLines.length; i++) {  
    •                     builder.append(' ').append(strLines[i]);  
    •                     if (i == 6) {  
    •                         break// 加上原来最多7条信息,共显示8条信息  
    •                     }  
    •                 }  
    •                 mTvInfo.setText(builder.toString());  
    •             } else if (msg.what == 11) {  
    •                 Bundle b = msg.getData();  
    •                 int count = b.getInt("count");  
    •                 int seconds = b.getInt("seconds");  
    •                 int ms = b.getInt("ms");  
    •                 StringBuilder builder = new StringBuilder("rawQuery查询");  
    •                 builder.append(count).append("条记录花费时间:");  
    •                 if (seconds > 0) {  
    •                     builder.append(seconds).append("s ");  
    •                 }  
    •                 builder.append(ms).append("ms");  
    •                   
    •                 String strLines[] = mTvInfo.getText().toString().split(" ");  
    •                 // 最多显示8条信息  
    •                 for (int i = 0; i < strLines.length; i++) {  
    •                     builder.append(' ').append(strLines[i]);  
    •                     if (i == 6) {  
    •                         break// 加上原来最多7条信息,共显示8条信息  
    •                     }  
    •                 }  
    •                 mTvInfo.setText(builder.toString());  
    •             } else if (msg.what == 20) {  
    •                 Bundle b = msg.getData();  
    •                 int count = b.getInt("count");  
    •                 int seconds = b.getInt("seconds");  
    •                 int ms = b.getInt("ms");  
    •                 StringBuilder builder = new StringBuilder("update更新");  
    •                 builder.append(count).append("条记录花费时间:");  
    •                 if (seconds > 0) {  
    •                     builder.append(seconds).append("s ");  
    •                 }  
    •                 builder.append(ms).append("ms");  
    •                   
    •                 String strLines[] = mTvInfo.getText().toString().split(" ");  
    •                 // 最多显示8条信息  
    •                 for (int i = 0; i < strLines.length; i++) {  
    •                     builder.append(' ').append(strLines[i]);  
    •                     if (i == 6) {  
    •                         break// 加上原来最多7条信息,共显示8条信息  
    •                     }  
    •                 }  
    •                 mTvInfo.setText(builder.toString());  
    •             } else if (msg.what == 21) {  
    •                 Bundle b = msg.getData();  
    •                 int seconds = b.getInt("seconds");  
    •                 int ms = b.getInt("ms");  
    •                 StringBuilder builder = new StringBuilder("execSql更新1000条记录花费时间:");  
    •                 if (seconds > 0) {  
    •                     builder.append(seconds).append("s ");  
    •                 }  
    •                 builder.append(ms).append("ms");  
    •                   
    •                 String strLines[] = mTvInfo.getText().toString().split(" ");  
    •                 // 最多显示8条信息  
    •                 for (int i = 0; i < strLines.length; i++) {  
    •                     builder.append(' ').append(strLines[i]);  
    •                     if (i == 6) {  
    •                         break// 加上原来最多7条信息,共显示8条信息  
    •                     }  
    •                 }  
    •                 mTvInfo.setText(builder.toString());  
    •             } else if (msg.what == 30) {  
    •                 Bundle b = msg.getData();  
    •                 int count = b.getInt("count");  
    •                 int seconds = b.getInt("seconds");  
    •                 int ms = b.getInt("ms");  
    •                 StringBuilder builder = new StringBuilder("delete删除");  
    •                 builder.append(count).append("条记录花费时间:");  
    •                 if (seconds > 0) {  
    •                     builder.append(seconds).append("s ");  
    •                 }  
    •                 builder.append(ms).append("ms");  
    •                   
    •                 String strLines[] = mTvInfo.getText().toString().split(" ");  
    •                 // 最多显示8条信息  
    •                 for (int i = 0; i < strLines.length; i++) {  
    •                     builder.append(' ').append(strLines[i]);  
    •                     if (i == 6) {  
    •                         break// 加上原来最多7条信息,共显示8条信息  
    •                     }  
    •                 }  
    •                 mTvInfo.setText(builder.toString());  
    •             } else if (msg.what == 31) {  
    •                 Bundle b = msg.getData();  
    •                 int seconds = b.getInt("seconds");  
    •                 int ms = b.getInt("ms");  
    •                 StringBuilder builder = new StringBuilder("execSql删除1000条记录花费时间:");  
    •                 if (seconds > 0) {  
    •                     builder.append(seconds).append("s ");  
    •                 }  
    •                 builder.append(ms).append("ms");  
    •                   
    •                 String strLines[] = mTvInfo.getText().toString().split(" ");  
    •                 // 最多显示8条信息  
    •                 for (int i = 0; i < strLines.length; i++) {  
    •                     builder.append(' ').append(strLines[i]);  
    •                     if (i == 6) {  
    •                         break// 加上原来最多7条信息,共显示8条信息  
    •                     }  
    •                 }  
    •                 mTvInfo.setText(builder.toString());  
    •             }  
    •               
    •               
    •         }  
    •     };  
    •           
    •     @Override  
    •     public void onCreate(Bundle savedInstanceState) {  
    •         super.onCreate(savedInstanceState);  
    •         setContentView(R.layout.activity_main);  
    •           
    •         Button btnCreateDb = (Button)findViewById(R.id.btnCreateDb);  
    •         btnCreateDb.setOnClickListener(new OnClickListener() {  
    •               
    •             @Override  
    •             public void onClick(View arg0) {  
    •                 // TODO Auto-generated method stub  
    •                 mDbHelper = new DBHelper(MainActivity.this"test"null1);  
    •             }  
    •               
    •         });  
    •           
    •         // insert插入  
    •         Button btnInsert = (Button)findViewById(R.id.btnInsert);  
    •         btnInsert.setOnClickListener(new OnClickListener() {  
    •               
    •             @Override  
    •             public void onClick(View arg0) {  
    •                 // TODO Auto-generated method stub  
    •                 if (mDbHelper != null) {  
    •                     mDialog = ProgressDialog.show(MainActivity.this"insert插入""正在插入1000条记录,请稍等……"true);  
    •                     new Thread() { // 开启线程执行防止阻塞  
    •                         @Override  
    •                         public void run() {  
    •                             SQLiteDatabase db = mDbHelper.getWritableDatabase();  
    •                             try {  
    •                                 // 利用事物批量插入数据以提高效率  
    •                                 ContentValues values = new ContentValues();  
    •                                 long startms = System.currentTimeMillis();  
    •                                 db.beginTransaction();  
    •                                 for (int i = 0; i < 1000; i++) {  
    •                                     values.put("name"new String("张三") + i);  
    •                                     values.put("birthday""2012-12-08");  
    •                                     values.put("gender", i%2);  
    •                                     db.insert("student"null, values);  
    •                                 }  
    •                                 db.setTransactionSuccessful();  
    •                                 db.endTransaction();  
    •                                 long endms = System.currentTimeMillis();  
    •                                 int seconds = (int)((endms - startms)/1000);  
    •                                 int ms = (int)((endms - startms)%1000);  
    •                                   
    •                                 Message msg = new Message();  
    •                                 msg.what = 0;  
    •                                 // 使用bundle对象来传递数据  
    •                                 Bundle b = new Bundle();  
    •                                 if(seconds > 0) {  
    •                                     b.putInt("seconds", seconds);  
    •                                 }  
    •                                 b.putInt("ms", ms);  
    •                                 msg.setData(b);  
    •                                 mHandler.sendMessage(msg);  
    •                             } catch(Exception e) {  
    •                                 e.printStackTrace();  
    •                             } finally {  
    •                                 db.close(); // 关闭数据库  
    •                             }  
    •                         }  
    •                     }.start();  
    •                 } else {  
    •                     Toast.makeText(MainActivity.this"请先创建数据库!", Toast.LENGTH_SHORT).show();  
    •                 }  
    •             }  
    •         });  
    •           
    •         // execSQL插入  
    •         Button btnExecSqlInsert = (Button)findViewById(R.id.btnExecSqlInsert);  
    •         btnExecSqlInsert.setOnClickListener(new OnClickListener() {  
    •   
    •             @Override  
    •             public void onClick(View arg0) {  
    •                 // TODO Auto-generated method stub  
    •                 if (mDbHelper != null) {  
    •                     mDialog = ProgressDialog.show(MainActivity.this"execSQL插入""正在插入1000条记录,请稍等……"true);  
    •                     new Thread() { // 开启线程执行防止阻塞  
    •                         @Override  
    •                         public void run() {  
    •                             SQLiteDatabase db = mDbHelper.getWritableDatabase();  
    •                             try {  
    •                                 // 利用事物批量插入数据以提高效率  
    •                                 long startms = System.currentTimeMillis();  
    •                                 db.beginTransaction();  
    •                                 for (int i = 0; i < 1000; i++) {  
    •                                     db.execSQL("INSERT INTO student(name, birthday, gender) values(?, ?, ?)" ,  
    •                                             new Object[]{new String("李四" + i), "2012-12-08", i%2});  
    •                                 }  
    •                                 db.setTransactionSuccessful();  
    •                                 db.endTransaction();  
    •                                 long endms = System.currentTimeMillis();  
    •                                 int seconds = (int)((endms - startms)/1000);  
    •                                 int ms = (int)((endms - startms)%1000);  
    •                                   
    •                                 Message msg = new Message();  
    •                                 msg.what = 1;  
    •                                 // 使用bundle对象来传递数据  
    •                                 Bundle b = new Bundle();  
    •                                 if(seconds > 0) {  
    •                                     b.putInt("seconds", seconds);  
    •                                 }  
    •                                 b.putInt("ms", ms);  
    •                                 msg.setData(b);  
    •                                 mHandler.sendMessage(msg);  
    •                             } catch(Exception e) {  
    •                                 e.printStackTrace();  
    •                             } finally {  
    •                                 db.close(); // 关闭数据库  
    •                             }  
    •                         }  
    •                     }.start();  
    •                 }else {  
    •                     Toast.makeText(MainActivity.this"请先创建数据库!", Toast.LENGTH_SHORT).show();  
    •                 }  
    •             }  
    •               
    •         });  
    •           
    •         // query查询  
    •         Button btnQuery = (Button)findViewById(R.id.btnQuery);  
    •         btnQuery.setOnClickListener(new OnClickListener() {  
    •               
    •             @Override  
    •             public void onClick(View arg0) {  
    •                 // TODO Auto-generated method stub  
    •                 if (mDbHelper != null) {  
    •                     mDialog = ProgressDialog.show(MainActivity.this"query查询""正在查询记录,请稍等……"true);  
    •                     new Thread() { // 开启线程执行防止阻塞  
    •                         @Override  
    •                         public void run() {  
    •                             SQLiteDatabase db = mDbHelper.getWritableDatabase();  
    •                               
    •                             try {  
    •                                 Log.d(TAG, "query Start:" + getDate());  
    •                                 long startms = System.currentTimeMillis();  
    •                                 // 查询所有记录  
    •                                 Cursor c = db.query("student"nullnullnullnullnullnew String("id ASC LIMIT 0,1000"));  
    •                                 Log.d(TAG, "query End:" + getDate());  
    •                                 long endms = System.currentTimeMillis();  
    •                                 int seconds = (int)((endms - startms)/1000);  
    •                                 int ms = (int)((endms - startms)%1000);  
    •                                 if (c != null) {  
    •                                     Message msg = new Message();  
    •                                     msg.what = 10;  
    •                                     // 使用bundle对象来传递数据  
    •                                     Bundle b = new Bundle();  
    •                                     b.putInt("count", c.getCount());  
    •                                     if(seconds > 0) {  
    •                                         b.putInt("seconds", seconds);  
    •                                     }  
    •                                     b.putInt("ms", ms);  
    •                                     msg.setData(b);  
    •                                     mHandler.sendMessage(msg);  
    •                                     c.close();  
    •                                 }  
    •                             } catch(Exception e) {  
    •                                 e.printStackTrace();  
    •                             } finally {  
    •                                 db.close(); // 关闭数据库  
    •                             }  
    •                         }  
    •                     }.start();  
    •                 }else {  
    •                     Toast.makeText(MainActivity.this"请先创建数据库!", Toast.LENGTH_SHORT).show();  
    •                 }  
    •             }  
    •               
    •         });  
    •           
    •         // rawQuery查询  
    •         Button btnRawQuery = (Button)findViewById(R.id.btnRawQuery);  
    •         btnRawQuery.setOnClickListener(new OnClickListener() {  
    •   
    •             @Override  
    •             public void onClick(View arg0) {  
    •                 // TODO Auto-generated method stub  
    •                 if (mDbHelper != null) {  
    •                     mDialog = ProgressDialog.show(MainActivity.this"rawQuery查询""正在查询记录,请稍等……"true);  
    •                     new Thread() { // 开启线程执行防止阻塞  
    •                         @Override  
    •                         public void run() {  
    •                             SQLiteDatabase db = mDbHelper.getWritableDatabase();  
    •                               
    •                             try {  
    •                                 Log.d(TAG, "rawQuery Start:" + getDate());  
    •                                 long startms = System.currentTimeMillis();  
    •                                 // 查询所有记录  
    •                                 Cursor c = db.rawQuery("SELECT * FROM student ORDER BY id ASC LIMIT 0,1000"null);  
    •                                 Log.d(TAG, "rawQuery End:" + getDate());  
    •                                 long endms = System.currentTimeMillis();  
    •                                 int seconds = (int)((endms - startms)/1000);  
    •                                 int ms = (int)((endms - startms)%1000);  
    •                                 if (c != null) {  
    •                                     Message msg = new Message();  
    •                                     msg.what = 11;  
    •                                     // 使用bundle对象来传递数据  
    •                                     Bundle b = new Bundle();  
    •                                     b.putInt("count", c.getCount());  
    •                                     if(seconds > 0) {  
    •                                         b.putInt("seconds", seconds);  
    •                                     }  
    •                                     b.putInt("ms", ms);  
    •                                     msg.setData(b);  
    •                                     mHandler.sendMessage(msg);  
    •                                     c.close();  
    •                                 }  
    •                             } catch(Exception e) {  
    •                                 e.printStackTrace();  
    •                             } finally {  
    •                                 db.close(); // 关闭数据库  
    •                             }  
    •                         }  
    •                     }.start();  
    •                 } else {  
    •                     Toast.makeText(MainActivity.this"请先创建数据库!", Toast.LENGTH_SHORT).show();  
    •                 }  
    •             }  
    •               
    •         });  
    •           
    •         // update更新  
    •         Button btnUpdate = (Button)findViewById(R.id.btnUpdate);  
    •         btnUpdate.setOnClickListener(new OnClickListener() {  
    •               
    •             @Override  
    •             public void onClick(View arg0) {  
    •                 // TODO Auto-generated method stub  
    •                 if (mDbHelper != null) {  
    •                     mDialog = ProgressDialog.show(MainActivity.this"update更新""正在更新1000条记录,请稍等……"true);  
    •                     new Thread() { // 开启线程执行防止阻塞  
    •                         @Override  
    •                         public void run() {  
    •                             SQLiteDatabase db = mDbHelper.getWritableDatabase();  
    •                             try {  
    •                                 ContentValues values = new ContentValues();  
    •                                 long startms = System.currentTimeMillis();  
    •                                 values.put("name"new String("王五"));  
    •                                 values.put("birthday""2012-12-09");  
    •                                 values.put("gender"0);  
    •                                 int count = db.update("student", values, new String("id IN (SELECT id FROM student ORDER BY id ASC LIMIT 0,1000)"), null);  
    •                                 long endms = System.currentTimeMillis();  
    •                                 int seconds = (int)((endms - startms)/1000);  
    •                                 int ms = (int)((endms - startms)%1000);  
    •                                   
    •                                 Message msg = new Message();  
    •                                 msg.what = 20;  
    •                                 // 使用bundle对象来传递数据  
    •                                 Bundle b = new Bundle();  
    •                                 b.putInt("count", count);  
    •                                 if(seconds > 0) {  
    •                                     b.putInt("seconds", seconds);  
    •                                 }  
    •                                 b.putInt("ms", ms);  
    •                                 msg.setData(b);  
    •                                 mHandler.sendMessage(msg);  
    •                             } catch(Exception e) {  
    •                                 e.printStackTrace();  
    •                             } finally {  
    •                                 db.close(); // 关闭数据库  
    •                             }  
    •                         }  
    •                     }.start();  
    •                 } else {  
    •                     Toast.makeText(MainActivity.this"请先创建数据库!", Toast.LENGTH_SHORT).show();  
    •                 }  
    •             }  
    •         });  
    •           
    •         // execSQL更新  
    •         Button btnExecSqlUpdate = (Button)findViewById(R.id.btnExecSqlUpdate);  
    •         btnExecSqlUpdate.setOnClickListener(new OnClickListener() {  
    •   
    •             @Override  
    •             public void onClick(View arg0) {  
    •                 // TODO Auto-generated method stub  
    •                 if (mDbHelper != null) {  
    •                     mDialog = ProgressDialog.show(MainActivity.this"execSQL更新""正在更新1000条记录,请稍等……"true);  
    •                     new Thread() { // 开启线程执行防止阻塞  
    •                         @Override  
    •                         public void run() {  
    •                             SQLiteDatabase db = mDbHelper.getWritableDatabase();  
    •                             try {  
    •                                 long startms = System.currentTimeMillis();  
    •                                 db.execSQL("UPDATE student SET name = ?, birthday = ?, gender = ? WHERE id IN (SELECT id FROM student ORDER BY id ASC LIMIT 0,1000)" ,  
    •                                         new Object[]{new String("马六"), "2012-12-10"1});  
    •                                 long endms = System.currentTimeMillis();  
    •                                 int seconds = (int)((endms - startms)/1000);  
    •                                 int ms = (int)((endms - startms)%1000);  
    •                                   
    •                                 Message msg = new Message();  
    •                                 msg.what = 21;  
    •                                 // 使用bundle对象来传递数据  
    •                                 Bundle b = new Bundle();  
    •                                 if(seconds > 0) {  
    •                                     b.putInt("seconds", seconds);  
    •                                 }  
    •                                 b.putInt("ms", ms);  
    •                                 msg.setData(b);  
    •                                 mHandler.sendMessage(msg);  
    •                             } catch(Exception e) {  
    •                                 e.printStackTrace();  
    •                             } finally {  
    •                                 db.close(); // 关闭数据库  
    •                             }  
    •                         }  
    •                     }.start();  
    •                 }else {  
    •                     Toast.makeText(MainActivity.this"请先创建数据库!", Toast.LENGTH_SHORT).show();  
    •                 }  
    •             }  
    •               
    •         });  
    •           
    •         // delete删除  
    •         Button btnDelete = (Button)findViewById(R.id.btnDelete);  
    •         btnDelete.setOnClickListener(new OnClickListener() {  
    •               
    •             @Override  
    •             public void onClick(View arg0) {  
    •                 // TODO Auto-generated method stub  
    •                 if (mDbHelper != null) {  
    •                     mDialog = ProgressDialog.show(MainActivity.this"delete删除""正在删除1000条记录,请稍等……"true);  
    •                     new Thread() { // 开启线程执行防止阻塞  
    •                         @Override  
    •                         public void run() {  
    •                             SQLiteDatabase db = mDbHelper.getWritableDatabase();  
    •                             try {  
    •                                 long startms = System.currentTimeMillis();  
    •                                 int count = db.delete("student"new String("id IN (SELECT id FROM student ORDER BY id ASC LIMIT 0,1000)"), null);  
    •                                 long endms = System.currentTimeMillis();  
    •                                 int seconds = (int)((endms - startms)/1000);  
    •                                 int ms = (int)((endms - startms)%1000);  
    •                                   
    •                                 Message msg = new Message();  
    •                                 msg.what = 30;  
    •                                 // 使用bundle对象来传递数据  
    •                                 Bundle b = new Bundle();  
    •                                 b.putInt("count", count);  
    •                                 if(seconds > 0) {  
    •                                     b.putInt("seconds", seconds);  
    •                                 }  
    •                                 b.putInt("ms", ms);  
    •                                 msg.setData(b);  
    •                                 mHandler.sendMessage(msg);  
    •                             } catch(Exception e) {  
    •                                 e.printStackTrace();  
    •                             } finally {  
    •                                 db.close(); // 关闭数据库  
    •                             }  
    •                         }  
    •                     }.start();  
    •                 } else {  
    •                     Toast.makeText(MainActivity.this"请先创建数据库!", Toast.LENGTH_SHORT).show();  
    •                 }  
    •             }  
    •         });  
    •           
    •         // execSQL删除  
    •         Button btnExecSqlDelete = (Button)findViewById(R.id.btnExecSqlDelete);  
    •         btnExecSqlDelete.setOnClickListener(new OnClickListener() {  
    •   
    •             @Override  
    •             public void onClick(View arg0) {  
    •                 // TODO Auto-generated method stub  
    •                 if (mDbHelper != null) {  
    •                     mDialog = ProgressDialog.show(MainActivity.this"execSQL删除""正在删除1000条记录,请稍等……"true);  
    •                     new Thread() { // 开启线程执行防止阻塞  
    •                         @Override  
    •                         public void run() {  
    •                             SQLiteDatabase db = mDbHelper.getWritableDatabase();  
    •                             try {  
    •                                 long startms = System.currentTimeMillis();  
    •                                 db.execSQL("DELETE FROM student WHERE id IN (SELECT id FROM student ORDER BY id ASC LIMIT 0,1000)");  
    •                                 long endms = System.currentTimeMillis();  
    •                                 int seconds = (int)((endms - startms)/1000);  
    •                                 int ms = (int)((endms - startms)%1000);  
    •                                   
    •                                 Message msg = new Message();  
    •                                 msg.what = 31;  
    •                                 // 使用bundle对象来传递数据  
    •                                 Bundle b = new Bundle();  
    •                                 if(seconds > 0) {  
    •                                     b.putInt("seconds", seconds);  
    •                                 }  
    •                                 b.putInt("ms", ms);  
    •                                 msg.setData(b);  
    •                                 mHandler.sendMessage(msg);  
    •                             } catch(Exception e) {  
    •                                 e.printStackTrace();  
    •                             } finally {  
    •                                 db.close(); // 关闭数据库  
    •                             }  
    •                         }  
    •                     }.start();  
    •                 }else {  
    •                     Toast.makeText(MainActivity.this"请先创建数据库!", Toast.LENGTH_SHORT).show();  
    •                 }  
    •             }  
    •               
    •         });  
    •           
    •         mTvInfo = (TextView)findViewById(R.id.tvInfo);  
    •     }  
    •   
    •     @Override  
    •     public boolean onCreateOptionsMenu(Menu menu) {  
    •         getMenuInflater().inflate(R.menu.activity_main, menu);  
    •         return true;  
    •     }  
    •       
    •     /**   
    •      * 获取系统时间   
    •      * @return   
    •      */    
    •     public static String getDate(){  
    •         Calendar ca = Calendar.getInstance();     
    •         int year = ca.get(Calendar.YEAR);           // 获取年份     
    •         int month = ca.get(Calendar.MONTH);         // 获取月份      
    •         int day = ca.get(Calendar.DATE);            // 获取日     
    •         int minute = ca.get(Calendar.MINUTE);       // 分      
    •         int hour = ca.get(Calendar.HOUR);           // 小时      
    •         int second = ca.get(Calendar.SECOND);       // 秒     
    •         int millisecond = ca.get(Calendar.MILLISECOND); // 毫秒  
    •        
    •         String date = year + "/" + (month + 1 )+ "/" + day + " "+ hour + ":" + minute + ":" + second + ":" + millisecond;     
    •     
    •         return date;           
    •     }  
    • }  
  • 相关阅读:
    Shell脚本中cd命令使用
    OpenStack 的Nova组件详解
    Linux 查看网络连接状态
    Linux 怎么查看服务的启动进程所占用的目录
    邮政短信 运营商常见错误
    Linux 怎么把自己写的脚本添加到服务里面,即可以使用service命令来调用
    Linux 命令行生成随机密码的十种方法
    Linux rpm安装问题解决
    Codeforces 1082G(最大权闭合子图)
    Codeforces 1105D (BFS)
  • 原文地址:https://www.cnblogs.com/lanhaiqijian/p/3259731.html
Copyright © 2011-2022 走看看