请用java联系数据库test1中的表employee,编号文本框对应数据表中id,姓名文本框对应数据表中的name,性别文本框对应数据表中的gender,部门文本框对应数据表中的deoartment,职位文本框对应数据表中的position,输入编号点击查询可以查询到数据,再修改文本框数据点击修改可以表中数据进行修改

时间: 2024-03-25 14:37:16 浏览: 15
以下是一个简单的 Java Swing 界面,可以实现根据员工编号查询和修改员工信息的功能。注意,这只是一个简单的示例,实际开发中需要根据具体情况进行更改和完善。 ```java import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.*; public class EmployeeManagementSystem extends JFrame implements ActionListener { private JLabel idLabel, nameLabel, genderLabel, departmentLabel, positionLabel; private JTextField idField, nameField, genderField, departmentField, positionField; private JButton searchButton, updateButton; private Connection conn; public EmployeeManagementSystem() { super("Employee Management System"); setLayout(new GridLayout(6, 2)); idLabel = new JLabel("编号:"); nameLabel = new JLabel("姓名:"); genderLabel = new JLabel("性别:"); departmentLabel = new JLabel("部门:"); positionLabel = new JLabel("职位:"); idField = new JTextField(10); nameField = new JTextField(10); genderField = new JTextField(10); departmentField = new JTextField(10); positionField = new JTextField(10); searchButton = new JButton("查询"); updateButton = new JButton("修改"); add(idLabel); add(idField); add(nameLabel); add(nameField); add(genderLabel); add(genderField); add(departmentLabel); add(departmentField); add(positionLabel); add(positionField); add(searchButton); add(updateButton); searchButton.addActionListener(this); updateButton.addActionListener(this); try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/test1"; conn = DriverManager.getConnection(url, "root", "password"); } catch (Exception ex) { ex.printStackTrace(); } setSize(300, 200); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void actionPerformed(ActionEvent event) { try { if (event.getSource() == searchButton) { String selectSQL = "SELECT * FROM employee WHERE id = ?"; PreparedStatement pstmt = conn.prepareStatement(selectSQL); pstmt.setInt(1, Integer.parseInt(idField.getText())); ResultSet rs = pstmt.executeQuery(); if (rs.next()) { nameField.setText(rs.getString("name")); genderField.setText(rs.getString("gender")); departmentField.setText(rs.getString("department")); positionField.setText(rs.getString("position")); } else { JOptionPane.showMessageDialog(this, "没有找到记录", "错误", JOptionPane.ERROR_MESSAGE); } pstmt.close(); } else if (event.getSource() == updateButton) { String updateSQL = "UPDATE employee SET name = ?, gender = ?, department = ?, position = ? WHERE id = ?"; PreparedStatement pstmt = conn.prepareStatement(updateSQL); pstmt.setString(1, nameField.getText()); pstmt.setString(2, genderField.getText()); pstmt.setString(3, departmentField.getText()); pstmt.setString(4, positionField.getText()); pstmt.setInt(5, Integer.parseInt(idField.getText())); int rows = pstmt.executeUpdate(); if (rows > 0) { JOptionPane.showMessageDialog(this, "记录已更新", "提示", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(this, "更新记录失败", "错误", JOptionPane.ERROR_MESSAGE); } pstmt.close(); } } catch (Exception ex) { ex.printStackTrace(); } } public static void main(String[] args) { new EmployeeManagementSystem(); } } ``` 在上述代码中,我们使用 `JDBC` 连接了 MySQL 数据库,并实现了根据员工编号查询和修改员工信息的功能。其中,`searchButton` 和 `updateButton` 分别对应查询和修改操作,当用户点击按钮时,会触发 `actionPerformed()` 方法,根据不同的事件源进行不同的操作。在查询操作中,我们使用 `PreparedStatement` 对象预编译了查询语句,避免了 SQL 注入攻击;在修改操作中,我们使用了 `PreparedStatement` 对象和 `executeUpdate()` 方法来执行更新语句,将数据表中对应的记录修改为用户输入的数据。 注意,上述代码中的数据库连接信息、SQL 语句等需要根据实际情况进行修改。同时,为了保证程序的安全性,我们需要进行输入合法性检查和异常处理等操作。

相关推荐

最新推荐

recommend-type

Oracle数据库表中字段顺序的修改方法

在修改顺序之前,我们先来看看Oracle数据库表中如何增加字段。 新增字段: 添加字段的语法:alter table tablename add (column datatype [default value][null/not null],….); 实例 创建表结构: create table ...
recommend-type

3分钟如何向MySQL数据库中插入100万条数据

一、编写测试案例向MySQL数据库中插入百万条数据。测试数据表建表脚本如下:use db_xk; drop table if exists tb_test2; create table tb_test2 ( id int primary key auto_increment, subject varchar(50) ...
recommend-type

pandas连接数据库,从数据库读取数据,将数据保存到数据库

pandas连接数据库 import pymysql from sqlalchemy import create_engine sql = 'select * from data' conn = create_engine('mysql+pymysql://root:159951@127.0.0.1:3306/test') pdata = pd.read_sql(sql,conn) ...
recommend-type

Qt中QSQLITE用法实例存游戏数据(十一)

1.建立本地数据库(test.db) 2.代码进行写入信息和查询信息(注意:内部sql语句自动累加auto_increment不能用) 其中包括(十)里讲的ui的四个button的槽函数,ui可以实现对数据库的删除,撤销删除,保存修改操作...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

hive中 的Metastore

Hive中的Metastore是一个关键的组件,它用于存储和管理Hive中的元数据。这些元数据包括表名、列名、表的数据类型、分区信息、表的存储位置等信息。Hive的查询和分析都需要Metastore来管理和访问这些元数据。 Metastore可以使用不同的后端存储来存储元数据,例如MySQL、PostgreSQL、Oracle等关系型数据库,或者Hadoop分布式文件系统中的HDFS。Metastore还提供了API,使得开发人员可以通过编程方式访问元数据。 Metastore的另一个重要功能是跟踪表的版本和历史。当用户对表进行更改时,Metastore会记录这些更改,并且可以让用户回滚到
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依