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

Android存储之SQLiteDatbase

时间:2015-08-01 12:45:16      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

  SQLiteDatabase的方式会生成一个数据库文件,每个应用最多只对应一个数据库文件,即.db文件。

可以使用很多第三方工具进行打开,查看数据库里的内容。

昨晚试了好几种工具,如navicat,sqlite3,sqlitespy,等,还是觉得sqlitespy比较好用,而且体积也小,才1.7M。文件管理里有对应的sqlitespy。省得以后到处找sqlite的打开工具。

  前面的SharedPreferences的存储方式就类似于web应用中的表单的存储。

而SQLiteDatabase类似于把数据存储到Oracle中,只是安卓用是保存到sqlite数据库中而已。

注意点:

sqlite建表sql和Oracle中不同的地方:

Oracle中:

create table usertb (_id integer primary key autoincrement, name text not null , age integer not null , sex text not null )

  或者

create or replace table usertb (_id integer primary key autoincrement, name text not null , age integer not null , sex text not null )

sqlite中:

create table if not exists usertb (_id integer primary key autoincrement, name text not null , age integer not null , sex text not null )

  一定要加if not exists这个判断,sqlite中已经有了需要建的表,而建表的时候不加if not exists就会报错,因为不能够重复建同样表名的表。

MainActivity.java如下:

package com.example.sqlitedatabasetest;

import android.os.Bundle;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 每个程序都有自己的数据库 默认情况下是各自互相不干扰
		// 创建一个数据库 并且打开
//		SQLiteDatabase db = openOrCreateDatabase("user.db", MODE_PRIVATE, null);
//		db.execSQL("create table if not exists usertb (_id integer primary key autoincrement, name text not null , age integer not null , sex text not null )");
////		db.execSQL("create table usertb2 (_id integer primary key, name text not null , age integer not null , sex text not null )");
//		
//		System.out.println("===================>");
//		db.execSQL("insert into usertb(name,sex,age) values(‘张三‘,‘女‘,18)");
//		db.execSQL("insert into usertb(name,sex,age) values(‘李四‘,‘女‘,19)");
//		db.execSQL("insert into usertb(name,sex,age) values(‘王五‘,‘男‘,20)");
//		System.out.println("!!!!!!!!!88888888234!!!!!!!!");
//		Cursor c = db.rawQuery("select * from usertb", null);
//		if (c != null) {
//			while (c.moveToNext()) {
//				Log.i("info", "_id:" + c.getInt(c.getColumnIndex("_id")));
//				Log.i("info", "name:" + c.getString(c.getColumnIndex("name")));
//				Log.i("info", "age:" + c.getInt(c.getColumnIndex("age")));
//				Log.i("info", "sex:" + c.getString(c.getColumnIndex("sex")));
//				Log.i("info", "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
//			}
//			c.close();
//		}
//		db.close();
		
		//创建database
		SQLiteDatabase db = openOrCreateDatabase("wyl.db", MODE_PRIVATE, null);
		db.execSQL("create talbe if not exists wyl_table "
				+ " (_id integer primary key autoincrement,"
				+ "name text not null,sex text not null");
		//
		/**
		 * create table if not exists usertb (_id integer primary key 
		 * autoincrement, name text not null , age integer not null , sex text not null )
		 */
		db.execSQL("insert into wyl_table (name,sex) values (‘wyl‘,‘男‘)");
		db.close();
	}
	
	
}

  

Android存储之SQLiteDatbase

标签:

原文地址:http://www.cnblogs.com/Sunnor/p/4693852.html

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