Java swing 查询数据库并且直接显示

本文介绍如何利用Java Swing构建GUI应用,结合JDBC连接MySQL数据库执行查询,并将结果显示在界面上。通过实例展示了从创建数据库连接、编写SQL语句到在Swing组件中展示数据的全过程。
摘要由CSDN通过智能技术生成
package db;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;

public class InnerShow extends JFrame {
	
	private Connection conn; 
	private Statement statement; 
	private ResultSet resultSet;
	
	//GUI变量定义
	private JTable table; 
	private JTextArea inputQuery; 
	private JButton submitQuery; 

	@SuppressWarnings("deprecation")
	public InnerShow() {
		
		//Form的标题
		super( "输入SQL语句,按
以下是一个简单的 Java Swing 应用程序,它可以查询数据库并将结果显示在面板: ```java import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.*; import javax.swing.border.*; public class DatabaseViewer extends JFrame implements ActionListener { private static final String DB_URL = "jdbc:mysql://localhost:3306/mydatabase"; private static final String DB_USER = "root"; private static final String DB_PASS = "password"; private JLabel lblName, lblAge, lblAddress; private JTextField tfName, tfAge, tfAddress; private JButton btnSearch; private JTextArea taResult; public DatabaseViewer() { super("Database Viewer"); // Create UI components lblName = new JLabel("Name:"); lblAge = new JLabel("Age:"); lblAddress = new JLabel("Address:"); tfName = new JTextField(20); tfAge = new JTextField(20); tfAddress = new JTextField(20); btnSearch = new JButton("Search"); btnSearch.addActionListener(this); taResult = new JTextArea(10, 30); taResult.setEditable(false); taResult.setBorder(new LineBorder(Color.GRAY)); // Create layout JPanel pInput = new JPanel(new GridLayout(3, 2, 5, 5)); pInput.add(lblName); pInput.add(tfName); pInput.add(lblAge); pInput.add(tfAge); pInput.add(lblAddress); pInput.add(tfAddress); JPanel pButton = new JPanel(); pButton.add(btnSearch); JPanel pResult = new JPanel(new BorderLayout()); pResult.add(new JScrollPane(taResult), BorderLayout.CENTER); pResult.setBorder(new TitledBorder("Search Result")); JPanel pMain = new JPanel(new BorderLayout()); pMain.add(pInput, BorderLayout.NORTH); pMain.add(pButton, BorderLayout.CENTER); pMain.add(pResult, BorderLayout.SOUTH); // Set frame properties setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setContentPane(pMain); pack(); setVisible(true); } public void actionPerformed(ActionEvent e) { if (e.getSource() == btnSearch) { String name = tfName.getText().trim(); String age = tfAge.getText().trim(); String address = tfAddress.getText().trim(); searchDatabase(name, age, address); } } private void searchDatabase(String name, String age, String address) { try { // Load the driver class Class.forName("com.mysql.jdbc.Driver"); // Establish the connection Connection conn = DriverManager.getConnection(DB_URL, DB_USER, DB_PASS); // Create the SQL statement String sql = "SELECT * FROM people WHERE 1=1"; if (!name.isEmpty()) { sql += " AND name LIKE '%" + name + "%'"; } if (!age.isEmpty()) { sql += " AND age = " + age; } if (!address.isEmpty()) { sql += " AND address LIKE '%" + address + "%'"; } // Execute the query Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); // Process the results taResult.setText(""); while (rs.next()) { String result = "Name: " + rs.getString("name") + "\n" + "Age: " + rs.getInt("age") + "\n" + "Address: " + rs.getString("address") + "\n\n"; taResult.append(result); } // Close the resources rs.close(); stmt.close(); conn.close(); } catch (Exception ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(this, "Error: " + ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE); } } public static void main(String[] args) { new DatabaseViewer(); } } ``` 这个应用程序使用了 MySQL 数据库,你需要将 `DB_URL`、`DB_USER` 和 `DB_PASS` 替换为你自己的数据库连接信息。在 `searchDatabase` 方法,我们使用 JDBC API 执行 SQL 查询,并处理结果集以在文本区域显示查询结果。注意,我们在 SQL 语句使用了 `LIKE` 操作符来模糊搜索名字和地址。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值