我在Mysql数据库中创建了学生表,如下面的字段Stuid,studname,mark1,mark2。之后我在源端编写了下面的代码,然后从Swing控件中拖动表格,然后使用JFrame(源代码,设计)创建一个表。
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);
}
}
它与Mysql数据库连接,但它没有在Jframe Table中显示DBtable值。如何在不创建表的代码的情况下获取表(Jframe表控件)中的值。如果我双击桌子,我不知道我在哪里写表格代码。
答案 0 :(得分:3)
如果您使用的是NetBeans,则很容易
第1步
jTable
绑定的数据库表从“可用表”列表框添加到“选定的表”列表框在这里,您创建了一个可以与jTable
第2步
jTable
绑定数据库答案 1 :(得分:0)
通过创建可重复使用的TableModel
能够显示任何ResultSet
的内容,这是实现家庭作业的简便方法:
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();
}
}
希望它有所帮助,祝你好运!
答案 2 :(得分:0)
我可以告诉按钮和窗口打开。
{
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());}
}
}