⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 displayqueryresults.java

📁 报刊管理系统java做的
💻 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() 
{ 
   super( "输入SQL语句,按提交按钮查看结果。" ); //Form的标题 

   String url = "jdbc:odbc:baozhi";//url中指定ODBC中设置的DSN名称  
   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 

String test="SELECT * FROM paper"; //SQL语句 
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() );
topPanel.add( new JScrollPane( inputQuery), BorderLayout.CENTER ); //将"输入查询"编辑框布置到 "CENTER" 
topPanel.add( submitQuery, BorderLayout.SOUTH ); //将"提交查询"按钮布置到 "SOUTH" 
table = new JTable(); 
Container c = getContentPane(); 
c.setLayout( new BorderLayout() );
c.add( topPanel, BorderLayout.NORTH ); //将"topPanel"编辑框布置到 "NORTH" 
c.add( table, BorderLayout.CENTER ); //将"table"编辑框布置到 "CENTER" 
getTable(); 
setSize( 600, 300 ); 
show(); //显示Form 
} 
private void getTable() 
{ 
try { //执行SQL语句 
String query = inputQuery.getText(); //接受输入的sql语句
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, "结果集中无记录" ); 
     setTitle( "无记录显示" ); 
     return; 
  } 
Vector columnHeads = new Vector(); 
Vector rows = new Vector(); 
try { //获取字段的名称 
       ResultSetMetaData rsmd = rs.getMetaData(); 
for ( int i = 1; i <= rsmd.getColumnCount(); ++i ) 
columnHeads.addElement( rsmd.getColumnName( i ) ); 
do { //获取记录集 
       rows.addElement( getNextRow( rs, rsmd ) ); 
} while ( rs.next() ); 

//在表格中显示查询结果 
table = new JTable( rows, columnHeads ); 
JScrollPane scroller = new JScrollPane( table ); 
Container c = getContentPane(); 
c.remove(1); 
c.add( scroller, BorderLayout.CENTER ); 
c.validate(); //刷新Table 
} 
catch ( SQLException sqlex ) { 
                         sqlex.printStackTrace(); 
    } 
} 
private Vector getNextRow( ResultSet rs, ResultSetMetaData rsmd ) 
throws SQLException
{ 
   Vector currentRow = new Vector(); 
 for ( int i = 1; i <= rsmd.getColumnCount(); ++i ) 
   currentRow.addElement( rs.getString( i ) ); 

//返回一条记录 
return currentRow; 
} 
public void shutDown() 
{ 
try { 

//断开数据库连接 
connection.close(); 
} 
catch ( SQLException sqlex ) { 
System.err.println( "Unable to disconnect" ); 
sqlex.printStackTrace(); 
} 
} 

public static void main( String args[] ) 
{ 
final DisplayQueryResults app = 
new DisplayQueryResults(); 
app.addWindowListener( 
new WindowAdapter() { 
public void windowClosing( WindowEvent e ) 
{ 

app.shutDown(); 
System.exit( 0 ); 
} 
} 
); 
} 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -