我的应用程序的数据库需要填充大量数据,因此在期间onCreate()
,不仅有一些创建表sql指令,而且还有很多插入。我选择的解决方案是将所有这些指令存储在res
/ raw中的sql文件中,该文件已加载Resources.openRawResource(id)
。
它运作良好,但我面对编码问题,sql文件中有一些突出的字符,在我的应用程序中看起来很糟。这是我的代码来做到这一点:
public String getFileContent(Resources resources, int rawId) throws
IOException
{
InputStream is = resources.openRawResource(rawId);
int size = is.available();
// Read the entire asset into a local byte buffer.
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
// Convert the buffer into a string.
return new String(buffer);
}
public void onCreate(SQLiteDatabase db) {
try {
// get file content
String sqlCode = getFileContent(mCtx.getResources(), R.raw.db_create);
// execute code
for (String sqlStatements : sqlCode.split(";"))
{
db.execSQL(sqlStatements);
}
Log.v("Creating database done.");
} catch (IOException e) {
// Should never happen!
Log.e("Error reading sql file " + e.getMessage(), e);
throw new RuntimeException(e);
} catch (SQLException e) {
Log.e("Error executing sql code " + e.getMessage(), e);
throw new RuntimeException(e);
}
我发现避免这种情况的解决方案是从一个巨大的static final String
而不是文件中加载sql指令,并且所有突出的字符都显示良好。
但是,难道没有比static final String
所有sql指令的big 属性更优雅的方式来加载 sql指令吗?
我认为您的问题出在以下方面:
return new String(buffer);
您正在将字节数组转换为,java.lang.String
但没有告诉Java /
Android要使用的编码。因此,由于使用了错误的编码,因此未正确转换重音字符的字节。
如果使用String(byte[],<encoding>)
构造函数,则可以指定文件具有的编码,并且字符将正确转换。
本文向大家介绍Docker 创建数据量,包括了Docker 创建数据量的使用技巧和注意事项,需要的朋友参考一下 示例 此命令从mysql图像创建一个新容器。它还会创建一个新的数据卷,然后将其装入容器中/var/lib/mysql。该卷可帮助其中的任何数据在容器的生命周期之外持续存在。也就是说,当删除容器时,其文件系统更改也将被删除。如果数据库正在容器中存储数据,并且容器已被删除,则所有这些数据也将
我创建了一个向MySql数据库插入数百万个值的程序。我读到过有关批插入的文章,它将优化我的程序并使其更快,但当我尝试这样做时,它以同样的方式工作。我没有将每个值插入数据库,而是每次将500个值保存在一个列表中,然后将它们插入一个大循环中,如下所示: 然后我删除列表中的所有值,并再次开始收集500个值。它不应该工作得更好吗? 我的插入代码是: 我有一些问题: 1。为什么当我批量插入时它不能更快地工作
问题内容: 我正在使用PHP。 我有以下具有关系数据(父子关系)的数组。 我需要采用这种JSON格式: 我知道我需要创建一个多维数组并通过json_encode()运行它。我还认为,用于此操作的此方法必须是递归的,因为现实世界中的数据可能具有未知数量的级别。 我很高兴展示我的一些方法,但是它们没有用。 谁能帮我? 我被要求分享我的工作。这是我尝试过的方法,但还没有达到我所不知道的帮助程度。 我做了
创建数据源的基本步骤: 在工作区窗口中,点击 “新建数据源”。 输入数据源的名,然后选择所需的连接或现有的数据源。 点击“确定”。 一个选项卡将打开,让你编辑数据源。 将表或查询从连接窗格拖放到设计窗格。 将一个节点拖放到另一个节点以创建联接。 如有需要,请配置联接类型和联接字段。 【提示】创建联接后,你可以随时点击连接器上的联接图标来更改联接设置。 选择“实时”模式或“存档”模式。 点击“应用并
创建数据源的基本步骤: 在工作区窗口中,点击 。 输入数据源的名,然后选择所需的连接或现有的数据源。 点击“好”。 一个选项卡将打开,让你编辑数据源。 将表或查询从连接窗格拖放到设计窗格。 将一个节点拖放到另一个节点以创建联接。 如有需要,请配置联接类型和联接字段。 【提示】创建联接后,你可以随时点击连接器上的联接图标来更改联接设置。 选择“实实时”模式或“存档”模式。 点击“应用并刷新数据”来查
创建数据源的基本步骤: 在工作区窗口中,点击 “新建数据源”。 输入数据源的名,然后选择所需的连接或现有的数据源。 点击“确定”。 一个选项卡将打开,让你编辑数据源。 将表或查询从连接窗格拖放到设计窗格。 将一个节点拖放到另一个节点以创建联接。 如有需要,请配置联接类型和联接字段。 【提示】创建联接后,你可以随时点击连接器上的联接图标来更改联接设置。 选择“实时”模式或“存档”模式。 点击“应用并