您的位置:首页 >> 编程开发 >> Java >> 数据库 >> 正文
数据库 RSS
 

Java数据库编程中查询结果的表格式输出

http://www.rdxx.com 01年12月03日 12:12 互联网 我要投稿

作者:崔冠宇

最近在网络上看见关于此标题的文章颇多,但内容大多相同,没有一个文章从头到尾给出完整的源代码,令许多初学Swing者感到困惑。本文正是为解决这一问题而专门为广大初学者设计的,程序执行结果如下图所示。

本程序采用MSAccess数据库,Database名称为DBAddressBook,Table名称为TblAddressBook。表结构如下:



字段名
类型

编号
Text(50)

姓名
Text(50)

电话
Text(50)

地址
Text(50)




由于本人对该程序的注释极为详细,故不再作进一步的讲解,该程序在Windows2000,jdk1.3下编译并成功运行。下载源代码。

执行方法:


参照上表设计数据库,并配置ODBC的DSN名称为AddressBook。


javac DisplayQueryResults.java


DisplayQueryResults


//DisplayQueryResults.java

import java.sql.*;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.util.*;


public class DisplayQueryResults extends JFrame {


//数据库变量定义

private Connection connection;

private Statement statement;

private ResultSet resultSet;

private ResultSetMetaData rsMetaData;


//GUI变量定义

private JTable table;

private JTextArea inputQuery;

private JButton submitQuery;


public DisplayQueryResults()

{

//Form的标题

super( "输入SQL语句,按提交按钮查看结果。" );

//url中指定ODBC中设置的DSN名称

String url = "jdbc:odbc:AddressBook";

String username = "";

String password = "";

//加载驱动程序以连接数据库

try {

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

connection = DriverManager.getConnection(

url, username, password );

}

//捕获加载驱动程序异常

catch ( ClassNotFoundException cnfex ) {

System.err.println(

"装载 JDBC/ODBC 驱动程序失败。" );

cnfex.printStackTrace();

System.exit( 1 ); // terminate program

}

//捕获连接数据库异常

catch ( SQLException sqlex ) {

System.err.println( "无法连接数据库" );

sqlex.printStackTrace();

System.exit( 1 ); // terminate program

}

//如果数据库连接成功,则建立GUI

//SQL语句

String test="SELECT * FROM TblAddressBook";

inputQuery = new JTextArea( test, 4, 30 );

submitQuery = new JButton( "查询" );

//Button事件

submitQuery.addActionListener(

new ActionListener() {

public void actionPerformed( ActionEvent e )

{

getTable();

}

}

);


JPanel topPanel = new JPanel();

topPanel.setLayout( new BorderLayout() );

//将"输入查询"编辑框布置到 "CENTER"

topPanel.add( new JScrollPane( inputQuery), BorderLayout.CENTER );

//将"提交查询"按钮布置到 "SOUTH"

topPanel.add( submitQuery, BorderLayout.SOUTH );

table = new JTable();

Container c = getContentPane();

c.setLayout( new BorderLayout() );

//将"topPanel"编辑框布置到 "NORTH"

c.add( topPanel, BorderLayout.NORTH );

//将"table"编辑框布置到 "CENTER"

c.add( table, BorderLayout.CENTER );

getTable();

setSize( 500, 300 );

//显示Form

show();

}


private void getTable()

{

try {

//执行SQL语句

String query = inputQuery.getText();

statement = connection.createStatement();

resultSet = statement.executeQuery( query );

//在表格中显示查询结果

displayResultSet( resultSet );

}

catch ( SQLException sqlex ) {

sqlex.printStackTrace();

}

}


private void displayResultSet( ResultSet rs )

throws SQLException

{

//定位到达第一条记录

boolean moreRecords = rs.next();

//如果没有记录,则提示一条消息

if ( ! moreRecords ) {

JOptionPane.showMessageDialog( this,

共2页  第1页 第2页


 
 
标签: 数据库编程 , 输出 , 查询结果 , 表格式 , Java , 数据 , , 编程 , 格式 , 查询 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站