我有以下变量:
ArrayList<String> NameSet = new ArrayList<String>();
字符串我使用add方法在循环中填充了项目,如下所示:
add
NameSet.add(Body.item(t).getAttributes().getNamedItem("name").getNodeValue());
型如何在MySQL数据库中插入长文本数据类型的列表?
yizd12fk1#
在mysql中没有直接的方法将数组列表插入到行中。但是如果你想把名字插入到一行中,那么你可以把它们保存到一个字符串变量中,然后用一个“字符”把它们分开,然后用插入查询把它保存在Db中。否则你必须做一个单独的方法把这个这个ArrayList转换成一个字符串然后再做上面的
zfciruhq2#
插入批次将是良好的解决方案:假设连接是你的mysql jdbc连接:
String queryInsert="INSERT INTO TableName ( name, field2 ,...) values (?,?,..)"; try( PreparedStatement ps= connection.prepareStatement(queryInsert);){ connection.autoCommit(false); for(String name:NameSet){ ps.setString(1,name); .... } ps.executeBatch(); connection.commit(); } catch (SQLException e) { con.rollback(); System.err.format(e.getSQLState(), e.getMessage()); }
字符串
acruukt93#
1.列表项ArrayList<String> nameSet = new ArrayList<>(); nameSet.add("Item 1"); nameSet.add("Item 2"); nameSet.add("Item 3");步骤2:建立到MySQL数据库Connection connection = DriverManager.getConnection(url,username,password);的连接步骤3:创建SQL插入语句String insertQuery = "INSERT INTO your_table_name (column_name) VALUES (?)";步骤4:将ArrayList元素连接成一个字符串StringBuilder concatenatedNames = new StringBuilder(); for (String item : nameSet) { concatenatedNames.append(item).append(", "); } concatenatedNames.setLength(concatenatedNames.length() - 2);删除最后一个“,“步骤5:执行SQL语句PreparedStatement preparedStatement = connection.prepareStatement(insertQuery); preparedStatement.setString(1, concatenatedNames.toString()); preparedStatement.executeUpdate();
ArrayList<String> nameSet = new ArrayList<>(); nameSet.add("Item 1"); nameSet.add("Item 2"); nameSet.add("Item 3");
Connection connection = DriverManager.getConnection(url,username,password);
String insertQuery = "INSERT INTO your_table_name (column_name) VALUES (?)";
StringBuilder concatenatedNames = new StringBuilder(); for (String item : nameSet) { concatenatedNames.append(item).append(", "); } concatenatedNames.setLength(concatenatedNames.length() - 2);
PreparedStatement preparedStatement = connection.prepareStatement(insertQuery); preparedStatement.setString(1, concatenatedNames.toString()); preparedStatement.executeUpdate();
3条答案
按热度按时间yizd12fk1#
在mysql中没有直接的方法将数组列表插入到行中。但是如果你想把名字插入到一行中,那么你可以把它们保存到一个字符串变量中,然后用一个“字符”把它们分开,然后用插入查询把它保存在Db中。
否则你必须做一个单独的方法把这个这个ArrayList转换成一个字符串然后再做上面的
zfciruhq2#
插入批次将是良好的解决方案:
假设连接是你的mysql jdbc连接:
字符串
acruukt93#
1.列表项
ArrayList<String> nameSet = new ArrayList<>(); nameSet.add("Item 1"); nameSet.add("Item 2"); nameSet.add("Item 3");
步骤2:建立到MySQL数据库
Connection connection = DriverManager.getConnection(url,username,password);
的连接步骤3:创建SQL插入语句
String insertQuery = "INSERT INTO your_table_name (column_name) VALUES (?)";
步骤4:将ArrayList元素连接成一个字符串
StringBuilder concatenatedNames = new StringBuilder(); for (String item : nameSet) { concatenatedNames.append(item).append(", "); } concatenatedNames.setLength(concatenatedNames.length() - 2);
删除最后一个“,“步骤5:执行SQL语句
PreparedStatement preparedStatement = connection.prepareStatement(insertQuery); preparedStatement.setString(1, concatenatedNames.toString()); preparedStatement.executeUpdate();