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;
}
...
最新游戏更多
最新软件更多
- 玩家推荐
- 游戏攻略
-
蜜蜂进化3D单机游戏 101.89MB蜜蜂是大自然中勤劳的工匠,但是人
-
烈火战神变态版变态手游烈火战神手机变态版是一款全新格
-
透视梦境空间游戏最新版本冒险解谜 378.1M透视梦境空间游戏最新版本带来了
-
消消大作战手机版休闲益智 70.2M消消大作战安卓版是一款非常好玩
-
宝宝巴士奇妙就诊时光最新版模拟经营 81.8M宝宝巴士奇妙就诊时光最新版主要
-
配对故事手机版休闲益智 171M配对故事非常好玩的消除游戏,一边
-
火炮世界大炮单机游戏 132 MB火炮世界大炮这款射击冒险游戏采
-
致命突击队单机游戏 647 MB致命突击队这个游戏将会给所有
-
魔法蜘蛛英雄官方版动作游戏 58.3M魔法蜘蛛英雄官方版是一款蜘蛛侠
-
世界olh5变态版一键端h5游戏 45.8M世界olh5体验服是由谷得游戏出品
-
《潜伏,逆天施法!一览施法者角色,看看地下怎样打!》2023-02-08
-
「揭秘:《天命奇御》里的八卦阵!谁有看过?」2023-02-08
-
烟雨江湖: 哪些材料最适合护甲和盾的制作?打造完美的护甲与盾的攻略!2023-02-08
-
点亮三国全面战争!赢得战场的技巧分享!看看谁 能做到最强!2023-02-08
-
三国志14威力加强版探索!解锁最强阵型,谁能称王称霸!2023-02-08
-
《三国志战略版》S2开荒攻略:最完整流程图+知乎精选答案!2023-02-08
-
骑马与砍杀2:最新的兵种装备大全,你足不出户就可了解所有兵种排名!1.592023-02-08
-
生化危机2:15关精彩刚上映,今晚你怎么能错过!2023-02-08
-
「揭秘!永劫无间武器强度排名榜,隐藏的最强之利器就在这!」2023-02-08
-
『千呼万唤,英灵神殿的黑金到底该怎么造?』2023-02-08