gpt4 book ai didi

java - 如何将jlist作为单个 block 插入MySQL数据中

转载 作者:行者123 更新时间:2023-11-29 15:45:10 25 4
gpt4 key购买 nike

我创建了一个java软件应用程序,其中有一个表单,并且包含几个JTextField和一个JList。用户还可以借助同一页面中存在的 JTextField 插入 JList 中的项目。我想在单击提交按钮时将 JTextField 和 JList 保存在 MySQL 数据库中。我已成功将 JTextField 数据插入 MySQL 数据库表中,但问题是我不知道如何将 JList 保存在单个 block 中。只是为了练习,我尝试保存 JList 及其为数据库中的每个项目获取新行。

有什么方法可以将整个 JList 添加到单个 block 中。

或者

如果不是,我如何将 JList 与 MySQL 中的剩余数据链接起来。

我知道我们一次只能问一个问题,但另一个问题是如何以 JTable 中的 JList 形式将 JList 从数据库检索到 JTable 以及所有其他详细信息。

    DefaultListModel dlm= new DefaultListModel();
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

String userInput= jTextField1.getText();
dlm.addElement(userInput);
jList1.setModel(dlm);
jTextField1.setText(null);

}

String item="";
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {

for(int i = 0; i < jList1.getModel().getSize(); i++)
{ item = (String)jList1.getModel().getElementAt(i);
try{

Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/a","root","");
PreparedStatement stmt = conn.prepareStatement("insert into listt (listitem) values (?)");
stmt.setString(1,item);
stmt.execute();
conn.close();
}
catch(Exception e){
JOptionPane.showMessageDialog(null, e);
e.printStackTrace();
}
}
JOptionPane.showMessageDialog(null, "Done");
}

上面的代码有两个按钮,btn1 是将 JTextField 数据添加到 JList,btn2 是将 JList 项添加到数据库。它将每个项目保存在数据库中的新行中,但我想将其与其他数据一起保存在单个 block 中的单行中。

用于将 MySQL 中的数据显示到 JList 和 jTable 的代码:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

try{

Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/a","root","");
String query="SELECT listitem FROM listt;";
PreparedStatement prepstmt=conn.prepareStatement(query);
ResultSet rs=prepstmt.executeQuery();

while(rs.next()){

String item= rs.getString(1);
dlm.addElement(item);
jList1.setModel(dlm);

}

}catch(Exception e){

JOptionPane.showMessageDialog(null, e);
}

}

当前 JTable 结果的图像。![https://imgur.com/dPlnLVu]

Jtable 的代码在这里:

 private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {  



Update_table();

}

private void Update_table(){

try{

Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/ft","root","");
String query="SELECT * FROM ftt;";
PreparedStatement prepstmt=conn.prepareStatement(query);
ResultSet rs=prepstmt.executeQuery();
jTable1.setModel(DbUtils.resultSetToTableModel(rs));

}catch(Exception e){

JOptionPane.showMessageDialog(null, e);
}
}

listitem 列中的项目应该在每行的 JList 中,并且 null show 不会显示,它是在将 jlist 值保存到数据库时在 Mysql 数据库中自动生成的。

其余的事情都解决了,但我仍然需要在 jTable 中生成 JList。

最佳答案

 String allitem="";
for(int i = 0;i<jList1.getModel().getSize();i++)
{
allitem = (String)jList1.getModel().getElementAt(i)+"::"+allitem;
}

try
{
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/a", "root", "");
PreparedStatement stmt = conn.prepareStatement("insert into listt (listitem) values (?)");
stmt.setString(1, allitem);
stmt.execute();
conn.close();
}catch(
Exception e)
{
JOptionPane.showMessageDialog(null, e);
e.printStackTrace();
}

试试这个

关于java - 如何将jlist作为单个 block 插入MySQL数据中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57140460/

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