sqliteStudio中文版是一款 Sqlite数据库可视化工具,是使用Sqlite数据库开发应用的必备软件,软件无需安装,下载后解压即可使用,很小巧但很了用,绿色中文版本。比起其它SQLite管理工具,我喜欢用这个。很方便易用,不用安装的单个可执行文件,支持中文。欢迎来到金钼软件下载站下载!
SqliteStudio介绍
SQLiteStudio 是一个跨平台的 SQLite 数据库的管理工具,采用 Tcl 语言开发。
SQLiteStudio的特色
功能完善的sqlite2和sqlite3工具,视图编码支持utf8。
支持导出数据格式:csv、html、plain、sql、xml,
可同时打开多个数据库文件
支持查看和编辑二进制字段
使用方法
选择数据库--->添加数据库--->选择你的本地数据库,并点击+增加就可以查看数据库了。
SqliteStudio在Android程序中使用已有的SQLite数据库
1. 准备SQLite database文件
假设你已经创建了一个sqlite数据库,我们需要对其进行一些修改。
(译者注:这里原文是推荐了一个SQLite数据库管理软件,这个我觉得可以随自己的喜好,最Windows下面有多款可视化的SQlite数据库管理软件,可以方便的读取,编辑数据库,例如我用的是sqlitestudio
打开数据库,添加一个新的table “android_metadata“,插入一行数据,具体的SQL如下:
[sql] view plaincopyprint?在CODE上查看代码片派生到我的代码片
CREATE TABLE “android_metadata“ (“locale“ TEXT DEFAULT 'en_US')
INSERT INTO “android_metadata“ VALUES ('en_US')
(译者注:上面两行是表明需要进行的操作,具体可以直接在sqlitesstudio中完成)
然后你需要对你数据表格的primary id 列重命名为 “_id”,这样Adroid会知道怎么对id列进行绑定,你可以很容易的在SQlite数据库管理软件中进行列编辑。
这两步之后,你的sqlite数据库文件就准备好了。
(译者注:这里我保留了id列,即没有对其进行重命名,测试证明也是没有问题的)
2. 在你的Android程序中复制,打开以及访问数据库
现在把你上一步准备好的数据库文件放在“assets”文件夹下面,然后通过继承 SQLiteOpenHelper类来创建一个Database Helper类,
你的DataBaseHelper类大致可以如下:
public class DataBaseHelper extends SQLiteOpenHelper{
//The Android's default system path of your application database.
private static String DB_PATH = “/data/data/YOUR_PACKAGE/databases/“;
private static String DB_NAME = “myDBName“;
private SQLiteDatabase myDataBase;
private final Context myContext;
/**
* Constructor
* Takes and keeps a reference of the passed context in order to access to the application assets and resources.
* @param context
*/
public DataBaseHelper(Context context) {
super(context, DB_NAME, null, 1);
this.myContext = context;
}
/**
* Creates a empty database on the system and rewrites it with your own database.
* */
public void createDataBase() throws IOException{
boolean dbExist = checkDataBase();
if(dbExist){
//do nothing - database already exist
}else{
//By calling this method and empty database will be created into the default system path
//of your application so we are gonna be able to overwrite that database with our database.
this.getReadableDatabase();
try {
copyDataBase();
} catch (IOException e) {
throw new Error(“Error copying database“);
}
}
}
/**
* Check if the database already exist to avoid re-copying the file each time you open the application.
* @return true if it exists, false if it doesn't
*/
private boolean checkDataBase(){
SQLiteDatabase checkDB = null;
try{
String myPath = DB_PATH + DB_NAME;
checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
}catch(SQLiteException e){
//database does't exist yet.
}
if(checkDB != null){
checkDB.close();
}
return checkDB != null ? true : false;
}
/**
* Copies your database from your local assets-folder to the just created empty database in the
* system folder, from where it can be accessed and handled.
* This is done by transfering bytestream.
* */
private void copyDataBase() throws IOException{
//Open your local db as the input stream
InputStream myInput = myContext.getAssets().open(DB_NAME);
// Path to the just created empty db
String outFileName = DB_PATH + DB_NAME;
//Open the empty db as the output stream
OutputStream myOutput = new FileOutputStream(outFileName);
//transfer bytes from the inputfile to the outputfile
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer))>0){
myOutput.write(buffer, 0, length);
}
//Close the streams
myOutput.flush();
myOutput.close();
myInput.close();
}
public void openDataBase() throws SQLException{
//Open the database
String myPath = DB_PATH + DB_NAME;
myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
}
@Override
public synchronized void close() {
if(myDataBase != null)
myDataBase.close();
super.close();
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
// Add your public helper methods to access and get content from the database.
// You could return cursors by doing “return myDataBase.query(....)“ so it'd be easy
// to you to create adapters for your views.
}
就这样。
现在你可以创建一个新的DataBaseHelper实例,然后调用createDataBase(),然后再调用openDataBase()方法,记住修改DB_PATH字符串中“YOUR_PACKAGE”为你真正的package名称(也就是说com.examplename.myapp)
以下是示范代码:
[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
...
DataBaseHelper myDbHelper = new DataBaseHelper();
myDbHelper = new DataBaseHelper(this);
try {
myDbHelper.createDataBase();
} catch (IOException ioe) {
throw new Error(“Unable to create database“);
}
try {
myDbHelper.openDataBase();
}catch(SQLException sqle){
throw sqle;
}
...
最新游戏更多
最新软件更多
- 玩家推荐
- 游戏攻略
-
火炮世界大炮单机游戏 132 MB火炮世界大炮这款射击冒险游戏采
-
三国梗传记游戏赛车游戏 39.4M三国梗传记卡牌合成智斗闯关游戏
-
同城游拖三单机游戏 16.62MB拖三主要流行于安徽安庆宿松地区
-
色子王手游最新版赛车游戏 37.3M色子王安卓版是一款精彩刺激的手
-
新剑侠情缘单机游戏 1912.79MB国民情缘手游新剑侠情缘2020春季
-
有名的音乐家单机游戏 30.06MB有名的音乐家这款跑酷手游拥有非
-
沙漠风暴行动单机游戏 85.38MB在沙漠风暴行动手游当中,玩家们将
-
消消大作战手机版休闲益智 70.2M消消大作战安卓版是一款非常好玩
-
幻想名将录官方版赛车游戏 483.2M幻想名将录官方版是一款古风放置
-
越野泥跑者单机游戏 90.68MB越野泥跑者作为一个赛车竞速玩
-
雷丘在"Pokémon Go"和"Pokemmo"中最佳技能搭配:秘技交換,攻略教學!2023-03-13
-
(关注)《支付宝》上线蚂蚁森林活力值活动,支持兑换多种道具2023-03-13
-
暗黑3三刀流,从萃取到毕业装备,终极实用攻略,看看有多少你不知道!2023-03-13
-
「谁知道,鬼谷八荒可以延长生命?将你的生命上限提升到极致」2023-03-13
-
【英雄联盟】无双剑姬菲奥娜传记秘籍曝光!超容易获得神器!2023-03-13
-
【绝招升阶!天涯明月刀神威论剑必胜之法】2023-03-13
-
古剑奇谭3补血:最新注意事项,完美补血让你的游戏旅程续航!2023-03-13
-
《风来之国第三章:小岛上的Boss,你准备好来挑战吗?》2023-03-13
-
木筏求生的铁钉:看看这些技巧有多神奇!2023-03-13
-
了不起的修仙模拟器:万古最强宗布局,看看了不起修仙模拟器如何翻开古修的新天地!2023-03-13