标签:
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(); } }
标签:
原文地址:http://www.cnblogs.com/Sunnor/p/4693852.html