1 把原数据库包括在项目源码的 res/raw 目录下,然后建立一个DBManager类,代码如下:
package comandroidImportDatabase;
import javaioFile;
import javaioFileNotFoundException;
import javaioFileOutputStream;
import javaioIOException;
import javaioInputStream;
import androidcontentContext;
import androiddatabasesqliteSQLiteDatabase;
import androidosEnvironment;
import androidutilLog;
public class DBManager {
private final int BUFFER_SIZE = 400000;
public static final String DB_NAME = "countriesdb"; //保存的数据库文件名
public static final String PACKAGE_NAME = "comandroidImportDatabase";
public static final String DB_PATH = "/data"
+ EnvironmentgetDataDirectory()getAbsolutePath() + "/"
+ PACKAGE_NAME; //在手机里存放数据库的位置
private SQLiteDatabase database;
private Context context;
DBManager(Context context) {
thiscontext = context;
}
public void openDatabase() {
thisdatabase = thisopenDatabase(DB_PATH + "/" + DB_NAME);
}
private SQLiteDatabase openDatabase(String dbfile) {
try {
if (!(new File(dbfile)exists())) {//判断数据库文件是否存在,若不存在则执行导入,否则直接打开数据库
InputStream is = thiscontextgetResources()openRawResource(
Rrawcountries); //欲导入的数据库
FileOutputStream fos = new FileOutputStream(dbfile);
byte[] buffer = new byte[BUFFER_SIZE];
int count = 0;
while ((count = isread(buffer)) > 0) {
foswrite(buffer, 0, count);
}
fosclose();
isclose();
}
SQLiteDatabase db = SQLiteDatabaseopenOrCreateDatabase(dbfile,
null);
return db;
} catch (FileNotFoundException e) {
Loge("Database", "File not found");
eprintStackTrace();
} catch (IOException e) {
Loge("Database", "IO exception");
eprintStackTrace();
}
return null;
}
//do something else here<br>
public void closeDatabase() {
thisdatabaseclose();
}
}
然后在程序的首个Activity中示例化一个DBManager对象,然后对其执行openDatabase方法就可以完成导入了,可以把一些要对数据库进行的 *** 作写在DBManager类里,然后通过DBManager类的对象调用;也可以在完成导入之后通过一个SQliteDatabase类的对象打开数据库,并执行 *** 作。
我的做法是 在程序的首个Activity中导入数据库:
package comandroidImportDatabase;
import androidappActivity;
import androidcontentIntent;
import androidosBundle;
public class RootView extends Activity {
public DBManager dbHelper;
@Override
public void onCreate(Bundle savedInstanceState) {
superonCreate(savedInstanceState);
setContentView(Rlayoutmain);
dbHelper = new DBManager(this);
dbHelperopenDatabase();
dbHelpercloseDatabase();
}
}
此时在DDMS中可以查看到,外部数据库已经成功导入
不同的数据库,替换字段值的命令格式是不同的,现以MYSLQ 为例说明:
在数据库中修改一些内容,就需要用到下列语句:
sql语句为:UPDATE `table_name` SET `field_name` = replace (`field_name`,’from_str’,'to_str’) WHERE ……
代码说明: table_name —— 表的名字 field_name —— 字段名 from_str —— 需要替换的字符串 to_str —— 替换成的字符串 目的是为了直接用sql *** 作数据库修改字段中的某些字串,也可以使用下列方法有条件的替换,比较麻烦,需要三步,先SELECT出来符合的记录,然后进行字符串替换,再UPDATE。
假如我要替换的内容是:把’家 乐 福’字符替换成’Jia Le Fu’ 要替换的内容在:数据表 cdb_posts中的message 字段。那我们就应该这样写:
update dede_addonarticle set body=replace(body, ‘家乐福’, ‘Jia Le Fu’);
如果是在自编的程序中替换,用循环加赋值语句就行,当然,也可以直接使用用SQL命令来实现,就看你个人喜好了。
edb数据库一键替换里面的内容方法:
1、在PHPMyAdmin最上边有一个SQL标签。
2、点击进去,在MySQL中运行SQL语句,此时我们就可以用MySQL的批量替换代码。
1、数据库本身都带有replace函数可以直接替换,不同的数据库的replace替换语法不同,可以根据你的实际情况确定使用。这样可以直接使用SQL语句替换就可以了,在PHP中执行这个SQL。
2、直接在PHP使用查询语句,查询出需要替换的数据表数据,之后通过PHP的str_replace方法进行替换,将替换后的结果在创建一个Update的SQL语句,在PHP中再次执行Update语句,也可以实现更新。
根据自己的实际情况确定,选哪种都可以。
希望对你有帮助。
在B数据库中打开;查询分析器输入以下代码:
Insert into TKSQLDB_TRAIN_WEB_agTechBook (ST_Doc)
select ST_Doc from A数据库名TKSQLDB_TRAIN_WEB_sdTechBook
以上 *** 作;两个数据库要同一台电脑;如果不同的电脑还要做远程连接设置。
1、打开需要修改的Access数据库
2、在数据库“对象”中点击“查询”
3、点击“在设计视图中创建查询”
4、在出现的界面中关闭“显示表”小窗口
5、点击“视图”菜单,选择“SQL视图”,此时将出现查询窗口,您可以在此输入SQL语句了
6、直接输入以下SQL语句:
Update 表 SET 字段=replace(字段,"原字符","替换字符")
您可根据实际情况,将上面红字换掉即可,这里举个例子,假设表为biao、字段为content、原字符为xiazaijb51net、替换字符为down1jb51net,那么相应的SQL语句如下:
复制代码
代码如下:
Update biao SET
content=replace(content,"xiazaijb51net","down1jb51net")
7、点击工具栏中的感叹号,运行即可。
update
aaa
set
bbb=
select
substr(bbb,1,9)||'1'||substr(bbb,11,6)
where
bbb
like
'%一%'
;
如果你的bbb字段里还有很多带“一”的话,修改where的条件。
以上就是关于android 怎么替换外部数据库全部的内容,包括:android 怎么替换外部数据库、如何替换数据库中某个字段中的数据、edb数据库怎么一键替换里面的内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)