如何在android自带的sqlite3中创建一个数据库文件,请大虾门详细指导

如何在android自带的sqlite3中创建一个数据库文件,请大虾门详细指导,第1张

Android中提供4种数据存储的方法:(1)SharedPreferences,用键值对的方式来存储数据,是一种轻量级的存储机制,可以存储一些属性等。(2)Files:文件输入输出流的方式存储数据,FileInputStream和FileOutputStream。在Android中,文件是一个应用程序私有的,一个应用程序无法读写其他应用程序的文件。写入SD卡除外。(3)SQLite(4)网络(这个不算吧~~~--!)。

SQLite:

(1)创建和打开数据库可以使用方法openOrCreateDatabase,它会自动去检测是否存在数据库,如果存在则打开,如果不存在则创建一个数据库;成功返回一个SQliteDatabase对象。(2)创建一张表通过SQL语句实现,调用sqliteDatabase对象的execSQL方法,执行创建表的SQL语句。

(3)向数据表中添加一条记录可以直接通过SQL语句实现,也可以使用ContentValue对象,ContentValue对象是一个Map,Key是字段名,Value是值。Cv.put(key,value)然后调用sqliteDatabase对象的

insert(tableName,null,cv)方法插入数据。

(4)删除数据可以直接执行SQL,也可以执行sqliteDatabase的delete方法。

(5)同理修改数据也是执行SQL或调用update方法,需要传入ContenValue的对象表示修改的内容。

(6)关闭数据库sqliteDatabase.close()

(7)删除指定表调用SQL语句即可。

(8)查询:在Android中查询数据是通过Cursor类来实现的,当我们使用SQLiteDatabase.query()方法时,会得到一个Cursor对象,Cursor对象指向的是每条数据。例如cur.moveToFirst()cur.moveToNext()等。在实际开发中,为了能够更好地管理和维护数据库,我们会封装一个继承自SQLiteOpenHelper类的数据库 *** 作类。SQLiteOpenHelper的构造方法中分别需要传入Context、数据库名称、CursorFactory(一般默认null)、数据库版本号。在SQLiteOpenHelper中首先执行的是onCreate方法(当数据库第一次被创建时)。在构造函数中并没有真正创建数据库,而是调用getWriteableDatabase或者getReadableDatabase方法时才真正去创建数据库,并且返回一个SQLiteDatabase对象。

一、新建外部SQLite数据库

(1)下载并安装 SQLite可视化管理工具(SQLite Expert Pro) v3.4.17 破解版

http://www.cr173.com/soft/36343.html

(2)将你手头上的数据放到EXCEL表格中,保存为CSV格式的数据

(3)在此工具中按照你现有的数据格式新建数据库和表,如数据库为:contact.db,表为employee

(4)通过此工具菜单栏中Import/Export下的Import text file(CSV,TSC)功能,将你现有的CSV数据导入到你新建的数据表中(主要目的是省的一个一个的录入了)

二、在eclipse中新建一个android app工程,并在新建的工程文件夹点右键new->folder,在res文件夹下新建raw文件夹(如果有就不用新建了)

三、用鼠标将新建的SQLite数据库文件contact.db拖动到新建工程的res下的raw文件下,出现提示,选择copy

四、程序代码

private static final String DATABASE_PATH = "/data/data/你的主程序包路径(如:com.szair.contact)/databases"

private static final int DATABASE_VERSION = 0

private static final String DATABASE_NAME = "contact.db"

private static String outFileName = DATABASE_PATH + "/" + DATABASE_NAME

try {

buildDatabase()//见下

} catch (Exception e) {

e.printStackTrace()

}

//SQLiteDatabase对象

SQLiteDatabase db=SQLiteDatabase.openDatabase(outFileName, null,SQLiteDatabase.NO_LOCALIZED_COLLATORS)

String t="SELECT 字段名1,字段名2 FROM employee WHERE **** ORDER BY ***"

Cursor c =db.rawQuery(t, null)

if(c.moveToFirst()){

for(int i=0i

{

String ziduan1=c.getString(0)//字段1的数据

String ziduan2=c.getString(1)//字段1的数据

}

}

------------------------------------------------

//前面用到的buildDatabase方法

private void buildDatabase() throws Exception{

InputStream myInput = getResources().openRawResource(R.raw.sz_contact)

File file = new File(outFileName)

File dir = new File(DATABASE_PATH)

if (!dir.exists()) {

if (!dir.mkdir()) {

throw new Exception("创建失败")

}

}

if (!file.exists()) {

try {

OutputStream myOutput = new FileOutputStream(outFileName)

byte[] buffer = new byte[1024]

int length

while ((length = myInput.read(buffer))>0){

myOutput.write(buffer, 0, length)

}

myOutput.close()

myInput.close()

} catch (Exception e) {

e.printStackTrace()

}

}

}

五、程序发布

按照以上方式,可以将外部建的SQLite数据库成功的发布出来


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9921661.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存