在面板上用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()
}
}
这是之前回答另一个类似问题时用的例子
先看下吧
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)