Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Jframe表中获取Mysql数据库值,而不为Jtable创建编码_Java_Mysql_Swing_Netbeans_Jframe - Fatal编程技术网

Java 如何在Jframe表中获取Mysql数据库值,而不为Jtable创建编码

Java 如何在Jframe表中获取Mysql数据库值,而不为Jtable创建编码,java,mysql,swing,netbeans,jframe,Java,Mysql,Swing,Netbeans,Jframe,我已经在Mysql数据库中创建了类似以下字段Stuid、studname、mark1、mark2的student表。还可以使用JFrame(source,design)创建一个表,之后我在源代码端编写了以下代码,然后从Swing控件中拖动该表 public void DbConnection(){ try { Class.forName("com.mysql.jdbc.Driver");//Connection establishment to the database S

我已经在Mysql数据库中创建了类似以下字段Stuid、studname、mark1、mark2的student表。还可以使用JFrame(source,design)创建一个表,之后我在源代码端编写了以下代码,然后从Swing控件中拖动该表

public void DbConnection(){
       try
{
    Class.forName("com.mysql.jdbc.Driver");//Connection establishment to the database
String username = "root";
String password = "root";
String Database = "jdbc:mysql://localhost:3306/project";


Conn = DriverManager.getConnection( Database, username, password );
System.out.println("*** Connect to the database ***");


String Query = "Select * from  StudentMaster";


Statement smnt = Conn.createStatement();
ResultSet results = smnt.executeQuery( Query );
ResultSetMetaData metaDt = results.getMetaData();
System.out.println(metaDt);

int cols = metaDt.getColumnCount();
for(int i=1;i<cols;i++){
    columnNames.addElement (metaDt.getColumnName(i));
}
 while(results.next()){
     Vector row= new Vector(cols);
     for(int i=1;i<=cols;i++){
         row.addElement(results.getObject(i));
        }

     data.addElement(row);
 }
results.close();
smnt.close();

Conn.close(); //Close Connection to the database
    }
catch(Exception e)
{
    System.out.println(e);
}
}
public void DbConnection(){
尝试
{
Class.forName(“com.mysql.jdbc.Driver”);//建立到数据库的连接
字符串username=“root”;
字符串password=“root”;
String Database=“jdbc:mysql://localhost:3306/project";
Conn=DriverManager.getConnection(数据库、用户名、密码);
System.out.println(“***连接到数据库***”);
String Query=“从StudentMaster中选择*”;
语句smnt=Conn.createStatement();
ResultSet results=smnt.executeQuery(查询);
ResultSetMetaData metaDt=results.getMetaData();
系统输出println(metaDt);
int cols=metaDt.getColumnCount();

对于(int i=1;i这是一种完成家庭作业的简单方法,方法是创建一个可重用的
表格模型
,能够显示任何
结果集的内容

public class MyModel extends AbstractTableModel {
   String[] headers = {};
   ArrayList<String[]> rows;

   public MyModel() { 
      rows = new ArrayList<String[]>();
   } 

   public int getColumnCount() {
      return headers.length;
   }

   public Object getValueAt(int row, int col) { 
       if (row < 0 || row >= rows.size()) return "N/A";
       if (col < 0 || col >= headers.length) return "N/A";
       return rows.get(row)[col]; 
   }

   public int getRowCount() { 
      return rows.size(); 
   }

   public String getColumnName(int col){ 
       if (col < 0 || col >= headers.length) return "N/A";
      return headers[col]; 
   } 

   public void fill(ResultSet rs) {
       //Setting Headers
       ResultSetMetaData md = rs.getMetaData();
       int cols = md.getColumnCount();
       headers = new String[cols];
       for(int i = 1; i < cols; i++) {
          headers[i - 1] = md.getColumnName(i); 
       }

       // Setting rows
       rows.clear();
       while(rs.next()) {
          String[] row = new String[cols];
          for(int i = 1; i < cols; i++) {
             row[i - 1] = rs.getString(i);
          }
          rows.add(row);
       }
       this.fireTableDataChanged();
   }
}
公共类MyModel扩展了AbstractTableModel{
字符串[]头={};
阵列列表行;
公共MyModel(){
行=新的ArrayList();
} 
public int getColumnCount(){
返回页眉长度;
}
公共对象getValueAt(int行,int列){
if(row<0 | | row>=rows.size())返回“不适用”;
如果(列<0 | |列>=headers.length)返回“N/A”;
返回行。获取(行)[col];
}
public int getRowCount(){
返回rows.size();
}
公共字符串getColumnName(int列){
如果(列<0 | |列>=headers.length)返回“N/A”;
返回标题[col];
} 
公共空白填充(结果集rs){
//设置标题
ResultSetMetaData md=rs.getMetaData();
int cols=md.getColumnCount();
headers=新字符串[cols];
for(int i=1;i

希望它能帮上忙,祝你好运!

我能从按钮上看出,窗口已经打开了

     {
      try
      {
         Class.forName("java.sql.DriverManager");
    Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/project","root","tiger");
    sql="select * from (table name)";
    Statement st=con.createStatement();
    ResultSet rs=st.executeQuery(sql);
    jdis.getModel();
            }
             catch(Exception e)
      {JOptionPane.showMessageDialog(null,e.getMessage());}

  }      
 }

如果您使用的是NetBeans,那么就很容易了

步骤1

  • 在项目窗口中右键单击javaApplication
  • 从数据库中选择新建>其他>持久性->(右侧)实体类[选择]
  • 单击下一步
  • 现在从组合框中选择Database Connection,并将要绑定的数据库表从“Available Tables”列表框添加到“Selected Tables”列表框中
  • 完成
  • 在这里,您创建了一个类,可以使用
    jTable

    步骤2

  • 右键单击jTable
  • 选择绑定
  • 单击元素[它将打开“绑定jTable.element”窗口]
  • 点击“从表单导入数据”命名按钮
  • 从给定的组合框中选择数据库和表,然后单击“确定”
  • 现在,您可以在“选定”列表框中看到两个名为“可用”和“选定”的列表框,您可以看到列出的数据库表的所有属性

  • 如果你想从中删除任何属性,只需选择该属性,然后单击“为什么你没有给出正确的答案?你是否意识到这个问题已经存在两年多了,并且该问题的海报已经有两年多没有登录?回答老问题是可以的,但我不希望在这方面得到很多感谢他的案例。@Erwin Bolwidit我理解,但它可能对其他很多人都有帮助。无论如何,谢谢你的编辑。两年后我发现这非常有用。谢谢