我想将字符串列表插入数据库,因此通常我们将使用预处理语句或类似的批处理语句将字符串直接存储到数据库中,但是现在我想将字符串列表插入数据库,因此我使用了预处理语句>
List<String> Account_Number = Files.lines(Paths.get("D:\\PDFTOEXCEL\\Extractionfrompdf.txt"))
.filter(s -> s.contains(arra.get(7)))
.map(s -> s.split(":")[1].trim())
.collect(Collectors.toList());
System.out.println(Account_Number);
try {
Connection conn = PDFTOEXCEL.getConnection();
PreparedStatement stmt = conn.prepareStatement("insert into client_info values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
stmt.setString(1, Account_Number.get(1));
int k = stmt.executeUpdate();
我的数据库中大约有31列,只是为了表明我在此代码中仅发布了一个,所有都仅在字符串列表中
所以现在我出现了以下错误:
while (query_set.next()) {
row_counter = row_counter + 1;
**Account_Number = query_set.getString("Account_Number");**
输出:
错误:类型不兼容:字符串无法转换为列表
粗体字是错误说明
答案 0 :(得分:0)
问题是Account_Number
的类型为List
,您尝试为其分配一个String
。这是不可能的:String
不是List
。假设您要将此字符串添加到列表中,则需要使用Account_Number.add(...)
:
Account_Number.add(query_set.getString("Account_Number"));
鉴于您没有提供很多背景信息,很难说这是否是正确的选择。
另外,请尝试遵循常见的Java命名约定。变量和字段应以小写字母开头,通常应避免使用下划线,但常量除外。因此它应该是accountNumber
,而不是Account_Number
。遵循约定将使人们更容易阅读您的代码。