Java 如何在Jframe表中获取Mysql数据库值,而不为Jtable创建编码
我已经在Mysql数据库中创建了类似以下字段Stuid、studname、mark1、mark2的student表。还可以使用JFrame(source,design)创建一个表,之后我在源代码端编写了以下代码,然后从Swing控件中拖动该表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
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我理解,但它可能对其他很多人都有帮助。无论如何,谢谢你的编辑。两年后我发现这非常有用。谢谢