import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class inensshow 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 inensshow()
{
//Form的标题
super( "输入SQL语句,按查询按钮查看结果。" );
String url = "jdbc:mysql://localhost:3306/test";
String username = "root";
String password = "000000";
//加载驱动程序以连接数据库
try {
Class.forName( "org.gjt.mm.mysql.Driver" );
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 about";
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,
"结果集中无记录" );
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 );
//刷新Table
c.validate();
}
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 inensshow app = new inensshow();
app.addWindowListener( new WindowAdapter() { public void windowClosing( WindowEvent e )
{
app.shutDown();
System.exit( 0 );
}
}
);
}
}
分享到:
相关推荐
总之,"Java-Swing+Mysql+增删改查Demo"是一个结合了Java GUI编程和数据库操作的实例,它展示了如何使用Swing构建用户界面,并通过MySQL进行数据管理,对于初学者来说,这是一个很好的学习资源,可以帮助理解Java...
连接数据库时,使用了JDBC(Java Database Connectivity)API,它为Java应用程序提供了与各种数据库通信的能力。 为了实现界面与数据库的交互,开发者可能会编写DAO(Data Access Object)层,这一层封装了所有对...
5. 数据库连接管理:使用Java的Connection对象建立和关闭与MySQL的连接,确保数据操作的正确性和资源的有效利用。 学习这个项目可以帮助你理解如何在实际项目中整合Java GUI和数据库技术。你可以通过阅读和分析源...
Java界面连接MySQL是Java开发中的常见任务,主要涉及如何通过Java程序与MySQL数据库进行交互,以便执行查询、插入、更新和删除等操作。在Eclipse这样的集成开发环境中,这一过程通常包括设置数据库驱动、配置连接...
在“java swing 写日记程序(连接MySQL,有说明文档)”这个项目中,开发者使用Swing来创建了一个日记应用程序。这个程序允许用户在本地计算机上记录他们的日常想法和活动,并将这些数据存储到远程MySQL数据库中。...
Java Swing 是Java GUI(图形用户界面)开发的一个重要库,它是Java AWT...进一步,可以扩展此基础,学习更高级的Swing特性,如模型视图控制器(MVC)架构、SwingWorker进行异步处理,以及使用JDBC连接数据库等。
为了与MySQL交互,开发者可能使用了JDBC(Java Database Connectivity),这是Java标准API,允许Java程序与各种数据库进行通信。在本系统中,开发者可能编写了SQL语句(如INSERT, DELETE, UPDATE, SELECT)来操作...
总的来说,这个“java swing实现的mysqlplus源代码”是一个很好的学习资源,结合了Java Swing GUI编程和数据库操作,对于想要了解如何在Java环境中构建数据库管理工具的开发者来说,这是一个非常实用的例子。...
在本项目"Java实现飞机大战并连接数据库"中,我们主要关注的是如何使用Java编程语言来构建一个基于经典游戏“飞机大战”的应用,并且将游戏数据存储到数据库中,以便于实现持久化和多用户数据共享。这个项目涉及到的...
根据提供的文件信息,可以看出这是一段Java代码,用于构建一个基于Java Swing图形用户界面的小型超市销售管理系统。此系统利用了MySQL数据库来存储数据。接下来,我们将深入分析这段代码涉及的关键知识点。 ### ...
本项目"课设——银行管理系统"便是一个典型的例子,主要运用了MySQL数据库和Java编程语言来构建。接下来,我们将深入探讨这个系统中的核心知识点。 一、MySQL数据库应用 MySQL是一种广泛使用的开源关系型数据库...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
4. **数据库连接**:使用JDBC(Java Database Connectivity)API连接数据库,如MySQL或Oracle。需要加载数据库驱动,建立连接,创建Statement或PreparedStatement对象,执行SQL查询,最后关闭连接。 5. **SQL查询**...
在Java和MySQL的世界里,"快递e站代码"可能是一个示例项目,旨在帮助初学者了解如何使用Java连接和操作MySQL数据库。这个项目可能涵盖了Java基础、MySQL数据库基础以及JDBC(Java Database Connectivity)的使用。...
本篇文章将详细探讨如何使用Java连接MySQL数据库,并进行基本的数据操作。 首先,我们需要理解JDBC的角色。JDBC是Java平台的标准接口,允许Java程序与各种数据库进行通信。它提供了一组规范,定义了如何在Java中...
本教程将引导你快速掌握如何使用Java Swing来设计美观且功能丰富的Java图形化应用程序。 首先,Java Swing 提供了一套组件(JComponents),如按钮(JButton)、文本框(JTextField)、面板(JPanel)等,这些组件...
这里我们演示递归查询的例子,使用MySQL的WITH RECURSIVE语句: ```sql WITH RECURSIVE tree AS ( SELECT * FROM tree_nodes WHERE parent_id IS NULL UNION ALL SELECT t.* FROM tree_nodes t JOIN tree p ON t...
例子可能包括连接MySQL、Oracle等数据库,执行SQL语句的示例。 10. **反射与注解**:Java反射机制允许程序在运行时动态访问类的信息,而注解提供了一种元数据的方式,用于标记代码。例子可能涉及反射API的使用,...
总的来说,这个学生信息管理系统项目是学习Java GUI编程和数据库连接的好例子,无论是初学者还是资深开发者,都能从中受益。通过实践这个项目,你可以提升你的编程技能,更好地理解和应用Java Swing和JDBC技术。
- JDBC是Java连接数据库的标准接口,允许开发者用SQL与多种数据库进行交互。 - 首先需要加载数据库驱动(如MySQL的com.mysql.jdbc.Driver)。 - Connection对象代表与数据库的连接。 - Statement或...