命令: .output
sqlite>.output a.txt
然后输入sql语句, 查询出要导的数据. 查询后,数据不会显示在屏幕上,而直接写入文件.
2、
或者你下载一些第三方的工具,直接浏览保存为 xls 文件。
SQLiteMan
SQLite Manager
SQLite Database Browser
SqlPro SQL Client
在程序中,我们经常需要把一些数据持久化,比如一些设置信息和程序配置。QML并不能直接访问本地文件,但是可以通过Offline Storage API访问本地Sqlite数据库,从而达到目的。
首先在qml目录下创建一个storage.js
Js代码 收藏代码
//storage.js
// 首先创建一个helper方法连接数据库
function getDatabase() {
return openDatabaseSync("MyAppName", "1.0", "StorageDatabase", 100000)
}
// 程序打开时,初始化表
function initialize() {
var db = getDatabase()
db.transaction(
function(tx) {
// 如果setting表不存在,则创建一个
// 如果表存在,则跳过此步
tx.executeSql('CREATE TABLE IF NOT EXISTS settings(setting TEXT UNIQUE, value TEXT)')
})
}
// 插入数据
function setSetting(setting, value) {
var db = getDatabase()
var res = ""
db.transaction(function(tx) {
var rs = tx.executeSql('INSERT OR REPLACE INTO settings VALUES (?,?)', [setting,value])
//console.log(rs.rowsAffected)
if (rs.rowsAffected >0) {
res = "OK"
} else {
res = "Error"
}
}
)
return res
}
// 获取数据
function getSetting(setting) {
var db = getDatabase()
var res=""
db.transaction(function(tx) {
var rs = tx.executeSql('SELECT value FROM settings WHERE setting=?', [setting])
if (rs.rows.length >0) {
res = rs.rows.item(0).value
} else {
res = "Unknown"
}
})
return res
}
然后就可以在qml里调用了
Qml代码 收藏代码
import Qt 4.7
//引入storage.js,起个别名Storage,以供后面使用
import "storage.js" as Storage
Rectangle {
width: 360
height: 360
id: screen
Text {
id: textDisplay
anchors.centerIn: parent
}
Component.onCompleted: {
// 初始化数据库
Storage.initialize()
// 赋值
Storage.setSetting("mySetting","myValue")
//获取一个值,并把它写在textDisplay里
textDisplay.text = "The value of mySetting is:\n" + Storage.getSetting("mySetting")
}
}
数据库的创建
创建文件
1.声明文件对象,文件是不会被创建出来的。
File file = new File("文件名称")
2.写文件(文件才会被创建出来)
FileOutputStream fos = new FileOutputStream(file)
fos.write("hdahfdsaklfh".getbytes())
创建数据库
1.实现SQLiteOpenHelper的子类PersonSQLiteOpenHelper
public class PersonSQLiteOpenHelper extends SQLiteOpenHelper {public PersonSQLiteOpenHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version)
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase arg0) {
// TODO Auto-generated method stub
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
2.getWritableDatabase/getReadableDatabase()
新建TestPersonDB.java
// Called when the database is created for the first time.// 在数据库第一次创建的时候执行的方法
// 如果数据库已经创建完毕,就不会再去执行了。
// 适合做数据库表结构的初始化 *** 作
// db代表的就是当前的数据库
@Override
public void onCreate(SQLiteDatabase db) {
// 初始化数据库的表结构
db.execSQL("create table person (id integer primary key autoincrement, name varchar(20), number varchar(20))")
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)