码迷,mamicode.com
首页 > 移动开发 > 详细

Android数据库的优化

时间:2015-05-23 21:25:56      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

1、通过一次编译跟事务来优化数据库插入,通过仅查询指定字段来优化数据库查询。

/**
 * <ol><li>打开数据库
 * <li>创建句子(避免String+String)
 * <li>编译(避免多次编译)
 * <li>执行
 * <li>关闭数据库</ol>
 * @author shixin
 */
public class MainActivity extends Activity {
	List<String> list = new LinkedList<String>();
	ArrayAdapter<String> arrayAdapter;
	SQLiteDatabase db;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		ListView listView = (ListView) findViewById(R.id.listView);
		arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
		listView.setAdapter(arrayAdapter);
		//Create a memory backed SQLite database. Its contents will be destroyed when the database is closed
		db = SQLiteDatabase.create(null);
		//Execute a single SQL statement that is NOT a SELECT or any other SQL statement that returns data
		db.execSQL("create table life (plant text, animal text)");
	}
	@Override
	protected void onDestroy() {
		super.onDestroy();
		db.close();
	}
	public void onClick(View v){
		switch (v.getId()) {
		case R.id.btn_insert:
			try {
				db.beginTransaction();
				String[][] lifes = {{"potato", "tomato", "apple"}, {"rat", "cat", "dog"}};
				SQLiteStatement stmt = db.compileStatement("insert into life values(?,?)");
				for(int i=0;i<lifes[0].length;i++){
					stmt.clearBindings();
					stmt.bindString(1, lifes[0][i]);
					stmt.bindString(1, lifes[1][i]);
					stmt.executeInsert();
				}
				db.setTransactionSuccessful();
			} catch (Exception e) {
			}finally{
				db.endTransaction();
			}
			break;
		case R.id.btn_query:
			//只查询需要的字段效率更高
			Cursor c = db.query("life", new String[]{"plant"}, null, null, null, null, null);
			while(c.moveToNext()){
				list.add(c.getString(c.getColumnIndex("plant")));
			}
			c.close();
			//让ListView更新显示
			arrayAdapter.notifyDataSetChanged();
		}
	}
}

Android数据库的优化

标签:

原文地址:http://blog.csdn.net/talk2soul/article/details/45936847

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!