如何在 MySQL 中存储 Java 代码中的 ArrayList?
这是更好的方法
a)将 AL 存储为 BLOB
b) 创建列来存储组成 AL 的每个字符串。
我还可以采取其他方法吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
这是更好的方法
a)将 AL 存储为 BLOB
b) 创建列来存储组成 AL 的每个字符串。
我还可以采取其他方法吗?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
当然b
表
id |名称 |年龄
另请参阅
Ofcourse b
Table
id | name | age
Also See
避免序列化对象。
序列化对象时存在巨大的潜在陷阱。
Joshua Bloch 在 Effective Java 中有一个完整的部分,专门讨论序列化,他总结道如果可能的话你应该避免它。
所以选择选项B
Avoid Serializing objects.
There are huge potential traps when it comes to serializing objects.
Joshua Bloch has a complete section in Effective Java , dedicated to Serialization where he concludes that you should avoid it if possible.
So go for option B
您应该采用b方法,因为:
ArrayList
类的结构可能会改变,因此您将无法反序列化BLOB 返回ArrayList
实例ArrayList BLOB 返回到 .NET 列表。
话虽如此,我建议您阅读一本关于 SQL 和数据库设计的入门书以及一本关于关系代数的理论书。这会让你的事情变得更加清晰。
You should go with the approach b, because:
ArrayList
class may change and thus you won't be able to deserialize the BLOBs back toArrayList
instancesArrayList
BLOBs back to .NET lists.ArrayList
as the BLOB, and go to your DBMS management console, and write queries, you won't be able to see the contents of those BLOBs.Having said that I recommend you to read an introductory book about SQL and database design as well as a theoretical book about relational algebra. This will make things much clearer to you.
您应该创建一个表来存储值列表。
表 A:idA、col1、col2
表 B:idB、ida、rank、value
当然,表 B 中的 ida 上有一个外键
You should create a table to store your list of values.
Table A : idA, col1, col2
Table B : idB, ida, rank, value
With of course a foreignkey on ida in table B
我想说的是方法 B。将整个列表存储在单个 blob 中首先消除了使用数据库的许多优势。
如果它是复杂对象的列表,请查看 JPA 或 Hibernate 之类的工具来帮助您进行数据库交互。
I'd say approach B. Storing the entire list in a single blob removes a lot of advantages of using a database in the first place.
If it's a list of complex objects, look at something like JPA or Hibernate to assist you with the database interactions.
请学习数据库建模快速课程...您在这里指的是 1:N 关系,这用于将每个字符串存储为不同表中的一行,并使用对原始表中的行的外键(引用)您的对象所在的表。
Please take a quick course in DB modelling... you are refering here to a 1:N relationship, this is used storing each String as a row in a different table, with a foreign key (a reference) to the row in the original table where your object is.