gpt4 book ai didi

java - 将数据插入数据库 - 最好的方法是什么

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:39:27 25 4
gpt4 key购买 nike

我必须将 50 到 500 个联系人的信息插入到数据库中。我有 4 个数组列表,分别包含图像、名称、数字、 boolean 变量。

数据中的每一行都由所有 4 个数组列表和一个 SNO 组合而成。请引用下图。

enter image description here

我的问题是,假设我从用户的联系人列表中检索了 500 个联系人。我有一个函数可以一次将每一行插入表中并调用它 500 次,这是一件好事吗?或者还有其他方法吗?一个平均的想法是将所有数组列表组合在一起,将其传递给函数并在那里检索数据并重复插入语句 500 次。

什么在性能方面更好?

for(int i =0; i < 500; i++)
{
dbObj.insert_row(par1, par2, par3, par4, ...);
}

function insert_row(Combined ArrayLists)
{
for(int i=0; i<500; i++)
{
db.execSql(//Insert Statement);
}
}

最佳答案

Insert data into Database - What is the best way to do it

我建议您创建自己的对象来表示您的表,其中对象的属性将等于表中的列,e.q.

public class Contact {

private String name;
private String number;
private String image;
private boolean conn;

//getters and setters
}

现在您的方法听起来像“意大利面条代码”。不需要有四个 ArrayList,这种设计既不高效也不正确。

现在,您将拥有一个包含 500 个子对象的 ArrayList of Contact 对象。

What is the best way to insert?

确保将您的插入包装到一个 TRANSACTION 中,这可以快速加快您的插入速度,并且您处理数据库的主要内容变得更加安全,然后您无需担心丢失的可能性数据库完整性。

交易示例(我个人示例项目中的一种方法):

public boolean insertTransaction(int count) throws SQLException {
boolean result = false;
try {
db = openWrite(DataSource.getInstance(mContext));
ContentValues values = new ContentValues();
if (db != null) {
db.beginTransaction();
for (int i = 0; i < count; i++) {
values.put(SQLConstants.KEY_TYPE, "type" + i);
values.put(SQLConstants.KEY_DATE, new Date().toString());
db.insertOrThrow(SQLConstants.TEST_TABLE_NAME, SQLConstants.KEY_TYPE, values);
values.clear();
}
db.setTransactionSuccessful();
result = true;
}
return result;
}
finally {
if (db != null) {
db.endTransaction();
}
close(db);
}
}

关于java - 将数据插入数据库 - 最好的方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15978068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com