Java表格显示数据库

Java表格显示数据库,第1张

在面板上用table显示数据库的中的信息

代码如下:

try{

             Database db = new Database()

             db.conn()

             Statement stmt = db.conn.createStatement()

             ResultSet rset = stmt.executeQuery("SELECT * FROM goods")//前面的为数据库部分(每个人视情况而定)

             DefaultTableModel dtm = (DefaultTableModel) jTable1.getModel()

             dtm.setRowCount(0)

             while (rset.next()) {

                 Object[] row = {

                     rset.getString(1),

                     rset.getDouble(2),

                     rset.getDouble(3),//这三个为表各个字段的值,从数据库中得到的

                }

                 dtm.addRow(row)

             }

             rset.close()

             stmt.close()

             db.closeConn()

         } catch (ClassNotFoundException ex) {

             Logger.getLogger(Admin.class.getName()).log(Level.SEVERE, null, ex)

         } catch (SQLException ex) {

             Logger.getLogger(Admin.class.getName()).log(Level.SEVERE, null, ex)

         }

你的数据库已经联上了,我就不写连接数据库的代码了,连接数据库的代码你可以写意个工具类,然后写成静态的方法,想要连接直接调用就好了!

下面给你看下 *** 作数据库的代码

public

List

find()

{

Connection

conn

=

null

PreparedStatement

ps

=

null

ResultSet

rs

=

null

List

list

=

new

ArrayList()

conn

=

JdbcUtil.getConnection()

try

{

conn.setAutoCommit(false)

String

sql

=

"select

*

from

student"

ps

=

conn.prepareStatement(sql)

rs

=

ps.executeQuery()

while(rs.next()){

Student

student

=

new

Student()

student.setId(rs.getInt(1))

student.setName(rs.getString(2))

student.setAddress(rs.getString(3))

list.add(student)

}

}

catch

(SQLException

e)

{

//

TODO

Auto-generated

catch

block

e.printStackTrace()

}finally{

JdbcUtil.close(conn,

ps,

rs)

}

return

list

}

你可知直接直接把这几项用system打印在控制台上就好student.setId(rs.getInt(1))

student.setName(rs.getString(2))

student.setAddress(rs.getString

这里的表是指JTable吗?

是的话

这里有个运行通过的程序:

import javax.swing.*

import javax.swing.table.JTableHeader

import java.awt.event.ActionEvent

import java.awt.event.ActionListener

import java.sql.*

public class Test extends JFrame{

// 定义组件

private JScrollPane scpDemo

private JTableHeader jth

private JTable tabDemo

private JButton btnShow

// 构造方法

public Test(){

// 窗体的相关属性的定义

super("JTable数据绑定示例")

this.setSize(330,400)

this.setLayout(null)

this.setLocation(100,50)

// 创建组件

this.scpDemo = new JScrollPane()

this.scpDemo.setBounds(10,50,300,270)

this.btnShow = new JButton("显示数据")

this.btnShow.setBounds(10,10,300,30)

// 给按钮注册监听

this.btnShow.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent ae){

btnShow_ActionPerformed(ae)

}

})

// 将组件加入到窗体中

add(this.scpDemo)

add(this.btnShow)

// 显示窗体

this.setVisible(true)

}

// 点击按钮时的事件处理

public void btnShow_ActionPerformed(ActionEvent ae){

// 以下是连接数据源和显示数据的具体处理方法,请注意下

try{

// 获得连接

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")

Connection conn = DriverManager.getConnection("jdbc:odbc:localServer","sa","")

// 建立查询条件

String sql = "select * from localServer"

PreparedStatement pstm = conn.prepareStatement(sql)

// 执行查询

ResultSet rs = pstm.executeQuery()

// 计算有多少条记录

int count = 0

while(rs.next()){

count++

}

rs = pstm.executeQuery()

// 将查询获得的记录数据,转换成适合生成JTable的数据形式

Object[][] info = new Object[count][4]

count = 0

while(rs.next()){

info[count][0] = Integer.valueOf( rs.getInt("id"))

info[count][1] = rs.getString("name")

info[count][2] = Integer.valueOf( rs.getInt("age") )

info[count][3] = rs.getString("sex")

count++

}

// 定义表头

String[] title = {"学号","姓名","年龄","性别"}

// 创建JTable

this.tabDemo = new JTable(info,title)

// 显示表头

this.jth = this.tabDemo.getTableHeader()

// 将JTable加入到带滚动条的面板中

this.scpDemo.getViewport().add(tabDemo)

}catch(ClassNotFoundException cnfe){

JOptionPane.showMessageDialog(null,"数据源错误","错误",JOptionPane.ERROR_MESSAGE)

}catch(SQLException sqle){

JOptionPane.showMessageDialog(null,"数据 *** 作错误","错误",JOptionPane.ERROR_MESSAGE)

}

}

public static void main(String[] args){

new Test()

}

}

这是之前回答另一个类似问题时用的例子

先看下吧


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10813515.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存