java - 将 LinkedList 值插入数据库
问题描述
这是我的链表
LinkedList<Location> locationData = new LinkedList<>();
这是我的位置类变量
public class Location {
String SA3Code;
String name;
}
问题:我想在方法中插入这个 locationData LinkedList
SA3Code和名称值列表应插入数据库
我尝试插入如下值,但它给出了“数据太长”的错误
public void InsertLocations(LinkedList<Location> locationData) throws SQLException {
for (int i = 0; i < locationData.size(); i++) {
statement.executeUpdate("INSERT INTO HomelessInfo.Location (SA3Code, Name) VALUES ('locationData.get(i).SA3Code', 'locationData.get(i).name')");
}
connection.close();
}
错误
Exception in thread "main" com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Data too long for column 'SA3Code' at row 1
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:104)
at com.mysql.cj.jdbc.StatementImpl.executeUpdateInternal(StatementImpl.java:1335)
at com.mysql.cj.jdbc.StatementImpl.executeLargeUpdate(StatementImpl.java:2108)
at com.mysql.cj.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1245)
at Homeless.DatabaseUtility.InsertLocations(DatabaseUtility.java:42)
at Homeless.DataFile.readRecords(DataFile.java:98)
at Homeless.COIT20256Assignment2.main(COIT20256Assignment2.java:20)
/Users/SK/Library/Caches/NetBeans/8.2rc/executor-snippets/run.xml:53: Java returned: 1
BUILD FAILED (total time: 1 second)
解决方案
LinkedList locationData;
上面的变量是列表,所以你需要循环列表并根据链表大小进行'N'个sql查询并执行查询
public void InsertLocations(LinkedList locationData) throws SQLException {
connection.open();
for(customObject : locationData){
StringBuilder sqlquery = new StringBuilder();
sql.append("INSERT INTO HomelessInfo.Location (SA3Code, Name) VALUES ('").append(customObject.column1).append("','").append(customObject.column2).append("'");
statement.executeUpdate(sql.toString());
}
connection.close();
}
根据您的错误,我发现有时-可能是您的数据库列-SA3Code像varchar 一样小。如果您的数据大小比您的列长度大,您会遇到以下问题,因此请根据您的需要更新您的列数据类型。请参考以下数据类型
谢谢
推荐阅读
- excel - VBA 设置多个过滤器
- powershell - 获取 Get-MailboxStatistics,ItemCount 作为变量
- java - 字节数组进入灰度。安卓拍照
- python - 如何从同时列出数据和模式的 JSON 文件创建 Spark-SQL 数据框
- python - 是否可以在 Python 中的 Azure Function Linux 消耗计划中保存临时文件?
- java - 如何在控制器级别集成测试中使用 FakeMongo 和忽略 MongoDB 套接字连接
- javascript - 我的事件只有在被调用时才会触发
- azure-devops - 使用 Azure DevOps 显示代码覆盖率报告
- c# - Xamarin Forms LibVLC 视频未显示在发布配置中
- hyperlink - 如何让 Google 幻灯片上的超链接在同一窗口中打开?