简体   繁体   English

Jtable如何在不同的列中显示来自mysql的数据

[英]Jtable how to display data from mysql in different Columns

I am trying to display data from the database in java using Jtable, yes I have achieved that but now the conflict is the surname and name they are displayed in one Column yet I would like them to be displayed in different columns . 我正在尝试使用Jtable在Java中显示数据库中的数据,是的,我已经实现了,但现在的冲突是它们的姓氏和名称显示在一个列中,但我希望它们显示在不同的列中。 below is my code please help .. 下面是我的代码,请帮助..

import java.awt.Dimension;
import java.io.PrintWriter;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.*;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public class ju {
    private static Object request;
    static JTable mysTable;
    //constructor method

    public static void main (String args []){
    String [] columnNames = {"Name","Lastname","Id","Style"};
        mysTable = new JTable(4,4);
        mysTable.setBounds(20,10,300,300);

        JFrame frame = new JFrame("King Musa Saloon Software");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLayout(null);
        frame.setSize(500,500);
        frame.setResizable(false);
           frame.setVisible(true);
            frame.add(mysTable);

//frame.add(mysTable);
        try {
            Class.forName("com.mysql.jdbc.Driver");
            System.out.println("Driver loading success!");
            String url = "jdbc:mysql://localhost:3306/saloon";
            String name = "root";
            String password = "";
            try {


                java.sql.Connection con = DriverManager.getConnection(url, name, password);
                System.out.println("Connected.");
         // pull data from the database 
java.sql.Statement stmts = null;
String query = "select  userid, username, name from saloonuser ";
stmts = con.createStatement();
ResultSet rs = stmts.executeQuery(query);
int li_row = 0;
while(rs.next()){
    mysTable.setValueAt(rs.getString("username"),li_row,0);
    mysTable.setValueAt(rs.getString("name"),li_row,0);
    int userid = rs.getInt("userid");
    String username = rs.getString("username");
    String name1     = rs.getString("name");
    System.out.println(name1);
    li_row++;


}




            } catch (SQLException e) {
                e.printStackTrace();
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

    }

}

Take a look at your code here: 在这里查看您的代码:

mysTable.setValueAt(rs.getString("username"),li_row,0);
mysTable.setValueAt(rs.getString("name"),li_row,0);

It's writing in the same column, you should change it to: 它写在同一列中,您应该将其更改为:

mysTable.setValueAt(rs.getString("username"),li_row,0);
mysTable.setValueAt(rs.getString("name"),li_row,1);

Try and see if it work :) 尝试看看是否可行:)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM