import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.sql.*;
import javax.swing.*;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class database extends JFrame{
static DefaultListModel m1=new DefaultListModel();
DefaultListModel m2=new DefaultListModel();
DefaultListModel m3=new DefaultListModel();
DefaultListModel m4=new DefaultListModel();
JList list1=new JList(m1);
JList list2=new JList(m2);
JList list3=new JList(m3);
JList list4=new JList(m4);
JLabel warn=new JLabel("请选择一个项目!");
static int i=0;
JLabel tip=new JLabel("提交失败");
String url="jdbc:mysql://localhost:3306/test?user=root&password=root";
Connection conn=DriverManager.getConnection(url);
Statement stmt = conn.createStatement( );
public database() throws ClassNotFoundException, SQLException
{
super("数据库");
JLabel name=new JLabel("name");
JLabel birthday=new JLabel("birthday");
JLabel homeAddress=new JLabel("homeAddress");
JLabel classNumber=new JLabel("classNumber");
Class.forName("com.mysql.jdbc.Driver");
conn.setAutoCommit(false);
ResultSet rs = stmt.executeQuery("SELECT * FROM `test`.`student`");
for(i=0;rs.next();i++)
{
m1.add(i, rs.getString("name"));
m2.add(i,rs.getString("birthday"));
m3.add(i, rs.getString("homeAddress"));
m4.add(i,rs.getString("classNumber"));
}
list1.addListSelectionListener(new list());
list2.addListSelectionListener(new list());
list3.addListSelectionListener(new list());
list4.addListSelectionListener(new list());
setLayout(null);
setBounds(500, 300, 550, 500);
name.setBounds(40,20,80,30);
add(name);
list1.setBounds(40,50,110,200);
add(list1);
birthday.setBounds(150,20,80,30);
add(birthday);
list2.setBounds(150,50,110,200);
add(list2);
homeAddress.setBounds(260,20,80,30);
add(homeAddress);
list3.setBounds(260,50,110,200);
add(list3);
classNumber.setBounds(370,20,80,30);
add(classNumber);
list4.setBounds(370,50,110,200);
add(list4);
JButton change=new JButton("修改");
change.setBounds(70,270,80,30);
change.addActionListener(new Change());
add(change);
JButton delete=new JButton("删除");
delete.setBounds(180,270,80,30);
delete.addActionListener(new DELETE());
add(delete);
warn.setBounds(270,270,150,30);
warn.setVisible(false);
add(warn);
JButton addnew=new JButton("添加");
addnew.setBounds(100,340,80,30);
addnew.addActionListener(new ADD());
add(addnew);
tip.setBounds(220, 340, 120, 30);
tip.setVisible(false);
add(tip);
JButton submit=new JButton("提交");
submit.setBounds(300,340,80,30);
submit.addActionListener(new SUBMIT());
add(submit);
JButton help=new JButton("帮助");
help.setBounds(400,340,80,30);
help.addActionListener(new HELP());
add(help);
addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e) {System.exit(0);}});
setVisible(true);
}
public class list implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent arg0) {
Object source1=arg0.getSource();
tip.setVisible(false);
if(source1==list1)
{
warn.setVisible(false);
list1.setSelectionBackground(Color.GREEN);
list2.setSelectionBackground(null);
list3.setSelectionBackground(null);
list4.setSelectionBackground(null);
}
if(source1==list2)
{
warn.setVisible(false);
list2.setSelectionBackground(Color.orange);
list1.setSelectionBackground(null);
list3.setSelectionBackground(null);
list4.setSelectionBackground(null);
}
if(source1==list3)
{
warn.setVisible(false);
list3.setSelectionBackground(Color.cyan);
list2.setSelectionBackground(null);
list1.setSelectionBackground(null);
list4.setSelectionBackground(null);
}
if(source1==list4)
{
warn.setVisible(false);
list4.setSelectionBackground(Color.pink);
list2.setSelectionBackground(null);
list3.setSelectionBackground(null);
list1.setSelectionBackground(null);
}
}
}
public class Change implements ActionListener{
JTextField cha=new JTextField(15);
JLabel empty=new JLabel("内容不能为空");
public void actionPerformed(ActionEvent arg1) {
tip.setVisible(false);
if(list1.getSelectedIndex()==-1&&list2.getSelectedIndex()==-1
&&list3.getSelectedIndex()==-1&&list4.getSelectedIndex()==-1)
{
warn.setVisible(true);
}
else
{
final JFrame frame1=new JFrame("修改");
JButton sure=new JButton("确定");
empty.setVisible(false);
if(list1.getSelectionBackground()==Color.GREEN)
{
cha.setText((String)list1.getSelectedValue());
sure.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg2) {
if(cha.getText().equals(""))
{
empty.setVisible(true);
}
else
{empty.setVisible(false);
int select=list1.getSelectedIndex();
m1.remove(select);
m1.add(select, cha.getText());
frame1.dispose();}
}}
);
}
if(list2.getSelectionBackground()==Color.orange)
{
cha.setText((String)list2.getSelectedValue());
sure.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg2) {
if(cha.getText().equals(""))
{
empty.setVisible(true);
}
else
{empty.setVisible(false);
int select=list2.getSelectedIndex();
m2.remove(select);
m2.add(select, cha.getText());
frame1.dispose();}
}}
);
}
if(list3.getSelectionBackground()==Color.cyan)
{
cha.setText((String)list3.getSelectedValue());
sure.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg2) {
if(cha.getText().equals(""))
{
empty.setVisible(true);
}
else
{empty.setVisible(false);
int select=list3.getSelectedIndex();
m3.remove(select);
m3.add(select, cha.getText());
frame1.dispose();}
}}
);
}
if(list4.getSelectionBackground()==Color.pink)
{
cha.setText((String)list4.getSelectedValue());
sure.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg2) {
if(cha.getText().equals(""))
{
empty.setVisible(true);
}
else
{empty.setVisible(false);
int select=list4.getSelectedIndex();
m4.remove(select);
m4.add(select, cha.getText());
frame1.dispose();}
}}
);
}
JPanel jp1=new JPanel();
jp1.setLayout(new FlowLayout());
jp1.add(cha);
jp1.add(sure);
jp1.add(empty);
frame1.getContentPane( ).add(jp1);
frame1.setSize(300,100);
frame1.setVisible(true);
}
}
}
public class DELETE implements ActionListener{
public void actionPerformed(ActionEvent arg1) {
tip.setVisible(false);
if(list1.getSelectedIndex()==-1&&list2.getSelectedIndex()==-1
&&list3.getSelectedIndex()==-1&&list4.getSelectedIndex()==-1)
{
warn.setVisible(true);
return;
}
if(list1.getSelectionBackground()==Color.GREEN)
{
int dele=list1.getSelectedIndex();
m1.remove(dele);m2.remove(dele);
m3.remove(dele);m4.remove(dele);
i--;
}
if(list2.getSelectionBackground()==Color.orange)
{
int dele=list2.getSelectedIndex();
m1.remove(dele);m2.remove(dele);
m3.remove(dele);m4.remove(dele);
i--;
}
if(list3.getSelectionBackground()==Color.cyan)
{
int dele=list3.getSelectedIndex();
m1.remove(dele);m2.remove(dele);
m3.remove(dele);m4.remove(dele);
i--;
}
if(list4.get
没有合适的资源?快使用搜索试试~ 我知道了~
JDBC.rar_Table

共17个文件
class:13个
classpath:1个
prefs:1个

1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 36 浏览量
2022-09-23
02:58:40
上传
评论
收藏 19KB RAR 举报
温馨提示
Student { String name Date birthday String homeAddress String classNumber } 请在数据库中创建表格记录上面的类,并用界面显示数据库中的数据,用户可以通过界面插入,删除和修改数据,可以修改多个数据再进行提交,这时候要求一个更改没有成功更新,所有更新都要回滚。 要求: 1. 安装MySql,并建立Table Student,里面添加一些测试数据。 2. 用界面显示数据库中的数据。 3. 实现插入删除,修改数据的接口。 4. 显示数据的界面要求像Excel一样,可以添加,修改和删除,然后当用户所有修改结束后,点击提交,程序根据变化调用插入,删除或者修改函数,更新数据库。 5. 点击提交前发生的变动要么全部提交成功,要么一条也不提交。即当有修改提交失败的时候,前面的要求不能更新。
资源推荐
资源详情
资源评论















收起资源包目录






















共 17 条
- 1
资源评论

- #完美解决问题
- #运行顺畅
- #内容详尽
- #全网独家
- #注释完整

JonSco
- 粉丝: 101
- 资源: 1万+

下载权益

C知道特权

VIP文章

课程特权

开通VIP
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- Delphi 12.3控件之unidac-10.0.0-d29pro.rar
- XRobot-linux开发资源
- Delphi 12.3控件之unidac-10.2.0-d15pro.rar
- tumbler-extras-0.2.7-1.el8.x64-86.rpm.tar.gz
- Delphi 12.3控件之unidac-10.2.0-d16pro.rar
- 基于 DeepSeek 的智能金融报告生成与风险评估 Python 源码
- 基于 DeepSeek 的智能农业种植方案制定与产量预测 Python 源码
- LPCA-AONLM算法代码程序包
- uni-app-移动开发资源
- XiaMenBank-建模大赛资源
- Delphi 12.3控件之unidac-10.2.0-d29pro.rar
- tumbler-0.2.7-1.el8.x64-86.rpm.tar.gz
- dl4j-tutorials-yolo编程资源
- 嵌入式软件笔试题汇总-笔试面试解析资源
- Delphi 12.3控件之unidac-10.2.1-d23pro.rar
- 基于STM32的智能插座外设控制应用:C++源码解析与实践(嵌入式系统)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
