「旅游信息管理系统」 · Java Swing + MySQL 开发

import java.sql.Date;

import java.text.SimpleDateFormat;

import java.awt.Color;

import java.awt.Font;

import java.awt.event.ActionEvent;

public class MainJframe extends JFrame {

Select select = new Select();

Updata updata = new Updata();

Object[] header= {“线路号”,“起点”,“终点”,“天数”,“主要景点”};

Object[][] data=select.getLineInfo();

public MainJframe() {

super(“旅游管理信息系统”);

this.setBounds(0, 0, 1200, 700);

this.setLocationRelativeTo(null);//让窗口在屏幕中间显示

this.setResizable(false);//让窗口大小不可改变

getContentPane().setLayout(null);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//用户单击窗口的关闭按钮时程序执行的操作

//按钮

ImageIcon i1 = new ImageIcon(“img/Icon1.png”);

JButton xxcx = new JButton(“旅游信息查询”,i1);

xxcx.setBounds(14, 11, 145, 35);

xxcx.setFocusPainted(false);//去掉按钮周围的焦点框

xxcx.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(xxcx);

xxcx.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

JOptionPane.showMessageDialog(null, “此功能暂未开放!”);

}

});

ImageIcon i2 = new ImageIcon(“img/Icon2.png”);

JButton bmly = new JButton(“报名旅游”,i2);

bmly.setBounds(164, 11, 110, 35);

bmly.setFocusPainted(false);//去掉按钮周围的焦点框

bmly.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(bmly);

bmly.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

//判断当前是否有用户登录

String sql = “SELECT COUNT(*) FROM user WHERE user_state=‘已登录’”;

int reselt = select.getCount(sql);

if (reselt>0) {

Registration_Info r = new Registration_Info();

r.setVisible(true);

} else {

JOptionPane.showMessageDialog(null, “请先登录!”);

Login l = new Login();

l.setVisible(true);

dispose();

}

}

});

ImageIcon i3 = new ImageIcon(“img/Icon3.png”);

JButton ywgl = new JButton(“业务管理员”,i3);

ywgl.setBounds(279, 11, 130, 35);

ywgl.setFocusPainted(false);//去掉按钮周围的焦点框

ywgl.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(ywgl);

ywgl.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

//判断当前是否有用户登录

String sql = “SELECT COUNT(*) FROM user WHERE user_state=‘已登录’”;

int reselt = select.getCount(sql);

if (reselt>0) {

//判断当前登录的用户身份

String user_type = select.getString(“SELECT user_type FROM user WHERE user_state=‘已登录’”);

if (user_type.equals(“管理员”)) {

Registration_Management r = new Registration_Management();

r.setVisible(true);

dispose();

}else{

JOptionPane.showMessageDialog(null, “当前无权限!请登录管理员账号!”);

}

} else {

JOptionPane.showMessageDialog(null, “请先登录!”);

Login l = new Login();

l.setVisible(true);

dispose();

}

}

});

ImageIcon i4 = new ImageIcon(“img/Icon4.png”);

JButton yhdl = new JButton(“登录”,i4);

yhdl.setBounds(414, 11, 85, 35);

yhdl.setFocusPainted(false);//去掉按钮周围的焦点框

yhdl.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(yhdl);

yhdl.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

//判断当前是否有用户登录

String sql = “SELECT COUNT(*) FROM user WHERE user_state=‘已登录’”;

int reselt = select.getCount(sql);

if (reselt>0) {

String i = select.getString(“SELECT user_account FROM user WHERE user_state=‘已登录’”);

JOptionPane.showMessageDialog(null, “当前已有用户”+" ”“+i+”” "+“登录”);

}else {

Login l = new Login();

l.setVisible(true);

dispose();

}

}

});

ImageIcon i5 = new ImageIcon(“img/Icon5.png”);

JButton yhzc = new JButton(“注册”,i5);

yhzc.setBounds(504, 11, 85, 35);

yhzc.setFocusPainted(false);//去掉按钮周围的焦点框

yhzc.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(yhzc);

yhzc.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

//判断当前是否有用户登录

String sql = “SELECT COUNT(*) FROM user WHERE user_state=‘已登录’”;

int reselt = select.getCount(sql);

if (reselt>0) {

String i = select.getString(“SELECT user_account FROM user WHERE user_state=‘已登录’”);

// JOptionPane.showMessageDialog(null, “当前已有用户”+" ”“+i+”” "+“登录!是否注销?”);

int a = JOptionPane.showConfirmDialog(null,“当前已有用户”+" ”“+i+”” "+“登录!是否注销?”,“注销提示”,0,1);

if(a == JOptionPane.OK_OPTION){

JOptionPane.showMessageDialog(null, “已注销前账户!”);

updata.addData(“UPDATE user SET user_state=‘未登录’ WHERE user_account='”+i+“';”);

Registered r = new Registered();

r.setVisible(true);

dispose();

}

}else {

Registered r = new Registered();

r.setVisible(true);

dispose();

}

}

});

ImageIcon i6 = new ImageIcon(“img/Icon6.png”);

JButton tcxt = new JButton(“退出系统”,i6);

tcxt.setBounds(594, 11, 110, 35);

tcxt.setFocusPainted(false);//去掉按钮周围的焦点框

tcxt.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(tcxt);

tcxt.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

int result = JOptionPane.showConfirmDialog(null,“您现在要关闭系统吗?关闭后同时注销账号!”,“退出提示”,0,1);

if(result == JOptionPane.OK_OPTION){

JOptionPane.showMessageDialog(null, “已退出系统,欢迎下次使用!”);

updata.addData(“UPDATE user SET user_state=‘未登录’;”);

System.exit(0);

}

}

});

ImageIcon i7 = new ImageIcon(“img/Icon7.png”);

JButton help = new JButton(“帮助”,i2);

help.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

JOptionPane.showMessageDialog(null, “系统管理员电话:18214217246”);

}

});

help.setBounds(709, 11, 85, 35);

help.setFocusPainted(false);//去掉按钮周围的焦点框

help.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(help);

JLabel dqsj = new JLabel(“当前时间 :”);

// dqsj.setForeground(Color.decode(“#7784BD”));

dqsj.setBounds(857, 13, 85, 35);

dqsj.setFont(new Font(“微软雅黑”, Font.BOLD, 15));

getContentPane().add(dqsj);

JLabel time1 = new JLabel();

// time1.setForeground(Color.decode(“#7784BD”));

time1.setBounds(944, 14, 236, 35);

time1.setFont(new Font(“宋体”, Font.CENTER_BASELINE, 15));

getContentPane().add(time1);

this.setTimer(time1);

//创建表模型

DefaultTableModel dt=new DefaultTableModel(data,header){

//设置表格内容不可被编辑

public boolean isCellEditable(int row, int column) {

return false;//返回true表示能编辑,false表示不能编辑

}

};

JTable jTable=new JTable(dt);//创建表格

jTable.getTableHeader().setFont(new Font(null, Font.BOLD, 14)); // 设置表头名称字体样式

jTable.getTableHeader().setForeground(Color.black); // 设置表头名称字体颜色

jTable.getTableHeader().setResizingAllowed(false); // 设置不允许手动改变列宽

jTable.getTableHeader().setReorderingAllowed(false);//设置表头不允许拖动

int v=ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;//水平滚动条

int h=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;//垂直滚动条

JScrollPane jsp=new JScrollPane(jTable,v,h);//创建滚动容器

jsp.setBounds(14, 68, 1166, 584);

getContentPane().add(jsp);

//设置单元格内容居中显示

DefaultTableCellRenderer r = new DefaultTableCellRenderer();

r.setHorizontalAlignment(JLabel.CENTER);

jTable.setDefaultRenderer(Object.class, r);

}

// 设置Timer 1000ms实现一次动作 实际是一个线程

private void setTimer(JLabel time) {

final JLabel varTime = time;

Timer timeAction = new Timer(100, new ActionListener() {

public void actionPerformed(ActionEvent e) {

long timemillis = System.currentTimeMillis();

// 转换日期显示格式

SimpleDateFormat df = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

varTime.setText(df.format(new Date(timemillis)));

}

});

timeAction.start();

}

public static void main(String[] args) {

MainJframe m = new MainJframe();

m.setVisible(true);

}

}

Login.Java

package com.ynavc.View;

import java.awt.Color;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

import com.ynavc.Controller.Select;

import com.ynavc.Controller.Updata;

import javax.swing.JButton;

public class Login extends JFrame {

Select select = new Select();

Updata updata = new Updata();

private JTextField textField_zh;

private JPasswordField textField_mm;

public Login() {

super.setTitle(“系统登录”);

this.setBounds(0, 0, 700, 550);//设置大小

this.setLocationRelativeTo(null);//让窗口在屏幕中间显示

this.setResizable(false);//让窗口大小不可改变

getContentPane().setLayout(null);

JLabel label_zh = new JLabel(“账号:”);

label_zh.setFont(new Font(“宋体”, Font.CENTER_BASELINE, 15));

label_zh.setBounds(183, 135, 72, 18);

getContentPane().add(label_zh);

textField_zh = new JTextField();

textField_zh.setBounds(233, 130, 270, 34);

getContentPane().add(textField_zh);

textField_zh.setColumns(10);

JLabel label_mm = new JLabel(“密码:”);

label_mm.setFont(new Font(“宋体”, Font.CENTER_BASELINE, 15));

label_mm.setBounds(183, 205, 72, 18);

getContentPane().add(label_mm);

textField_mm = new JPasswordField();

textField_mm.setBounds(233, 200, 270, 34);

getContentPane().add(textField_mm);

textField_mm.setColumns(10);

JButton button = new JButton(“登录”);

button.setFont(new Font(“宋体”, Font.BOLD, 20));

button.setBounds(282, 299, 113, 34);

button.setFocusPainted(false);//去掉按钮周围的焦点框

button.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button);

button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

String account=textField_zh.getText();

String password=textField_mm.getText();

if (account.equals(“”)&&password.equals(“”)) {

JOptionPane.showMessageDialog(null, “账户名或密码未填写!”);

} else {

String sql = “select COUNT(*) from user where user_password='”+password+“’ and user_account='”+account+“'”;

int reselt = select.getCount(sql);

int i = updata.addData(“UPDATE user SET user_state=‘已登录’ WHERE user_account='”+account+“';”);

if (reselt>0&&i>0) {

JOptionPane.showMessageDialog(null, “登录成功!欢迎使用!”);

MainJframe m = new MainJframe();

m.setVisible(true);

dispose();

} else {

JOptionPane.showMessageDialog(null, “登录失败!账户名或密码不正确!请重新输入!”);

}

}

}

});

JLabel ljzc = new JLabel(“没有账号?立即注册!”);

ljzc.setFont(new Font(“宋体”, Font.ITALIC, 16));

ljzc.setForeground(Color.blue);

ljzc.setBounds(271, 380, 168, 27);

getContentPane().add(ljzc);

ljzc.addMouseListener(new MouseListener(){

public void mouseClicked(MouseEvent e) {

// 处理鼠标点击

Registered m = new Registered();

m.setVisible(true);

dispose();

}

public void mouseEntered(MouseEvent e) {

// 处理鼠标移入

ljzc.setForeground(Color.red);

}

public void mouseExited(MouseEvent e) {

// 处理鼠标离开

ljzc.setForeground(Color.blue);

}

public void mousePressed(MouseEvent e) {

// 处理鼠标按下

}

public void mouseReleased(MouseEvent e) {

// 处理鼠标释放

}

});

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

super.windowClosing(e);

//加入动作

MainJframe m = new MainJframe();

m.setVisible(true);

}

});

}

}

Registered.Java

package com.ynavc.View;

import java.awt.Font;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPasswordField;

import javax.swing.JTextField;

import com.ynavc.Controller.Updata;

public class Registered extends JFrame {

Updata updata = new Updata();

private JTextField textField_zh;

private JPasswordField textField_srmm;

private JPasswordField textField_qrmm;

public Registered() {

super.setTitle(“账号注册”);

this.setBounds(0, 0, 700, 550);//设置大小

this.setLocationRelativeTo(null);//让窗口在屏幕中间显示

this.setResizable(false);//让窗口大小不可改变

getContentPane().setLayout(null);

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

super.windowClosing(e);

//加入动作

MainJframe m = new MainJframe();

m.setVisible(true);

}

});

JLabel label_zh = new JLabel(“账号名:”);

label_zh.setFont(new Font(“宋体”, Font.CENTER_BASELINE, 15));

label_zh.setBounds(165, 138, 72, 18);

getContentPane().add(label_zh);

textField_zh = new JTextField();

textField_zh.setBounds(248, 130, 255, 34);

getContentPane().add(textField_zh);

textField_zh.setColumns(10);

JLabel label_srmm = new JLabel(“输入密码:”);

label_srmm.setFont(new Font(“宋体”, Font.CENTER_BASELINE, 15));

label_srmm.setBounds(165, 208, 83, 18);

getContentPane().add(label_srmm);

textField_srmm = new JPasswordField();

textField_srmm.setBounds(248, 267, 255, 34);

getContentPane().add(textField_srmm);

textField_srmm.setColumns(10);

JLabel label_qrmm = new JLabel(“确认密码:”);

label_qrmm.setFont(new Font(“宋体”, Font.CENTER_BASELINE, 15));

label_qrmm.setBounds(165, 275, 92, 18);

getContentPane().add(label_qrmm);

textField_qrmm = new JPasswordField();

textField_qrmm.setBounds(248, 200, 255, 34);

getContentPane().add(textField_qrmm);

textField_qrmm.setColumns(10);

JButton button = new JButton(“注册”);

button.setFont(new Font(“宋体”, Font.BOLD, 20));

button.setBounds(282, 362, 113, 34);

button.setFocusPainted(false);//去掉按钮周围的焦点框

button.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button);

button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

String yhm = textField_zh.getText();

String srmm = textField_srmm.getText();

String qrmm = textField_qrmm.getText();

//确认输入的信息是否为空

if (yhm.equals(“”)&&srmm.equals(“”)&&qrmm.equals(“”)) {

JOptionPane.showMessageDialog(null, “请完整输入信息!”);

}else {

//判断两次密码是否一致

if (srmm.equals(qrmm)) {

String sql = “INSERT INTO user VALUES (null, '”+yhm+“', '”+srmm+“', ‘游客’, ‘未登录’);”;

int reselt = updata.addData(sql);

if (reselt>0) {

JOptionPane.showMessageDialog(null, “注册成功!将跳转到登录页面!”);

Login l = new Login();

l.setVisible(true);

dispose();

}else {

JOptionPane.showMessageDialog(null, “注册失败!”);

}

}else {

JOptionPane.showMessageDialog(null, “两次输入的密码不一致!请检查!”);

}

}

}

});

}

}

Registration_Info.Java

package com.ynavc.View;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JTextField;

import com.ynavc.Controller.Select;

import com.ynavc.Controller.Updata;

import com.ynavc.Utils.ValidateUtils;

import javax.swing.JButton;

import java.awt.event.ActionListener;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import java.awt.event.ActionEvent;

import java.awt.Font;

import javax.swing.JComboBox;

import javax.swing.DefaultComboBoxModel;

public class Registration_Info extends JFrame {

private JTextField textField_name;//姓名

private JTextField textField_age;//年龄

private JTextField textField_IDcard;//身份证号码

private JTextField textField_address;//地址

private JTextField textField_phone;//电话

private JTextField textField_th;//团号

private JTextField textField_pt;//陪同

private JTextField textField_ss;//食宿

Select select = new Select();

Updata updata = new Updata();

String name,sex,age,Idcard,address,phone,th,pt,ss;

public Registration_Info() {

super(“填写报名信息”);

this.setBounds(0, 0, 930, 700);

this.setLocationRelativeTo(null);//让窗口在屏幕中间显示

this.setResizable(false);//让窗口大小不可改变

getContentPane().setLayout(null);

JLabel lblNewLabel_name= new JLabel(“姓名:”);

lblNewLabel_name.setBounds(138, 79, 72, 18);

getContentPane().add(lblNewLabel_name);

textField_name = new JTextField();

textField_name.setBounds(191, 76, 240, 24);

getContentPane().add(textField_name);

textField_name.setColumns(10);

JLabel lblNewLabel_sex= new JLabel(“性别:”);

lblNewLabel_sex.setBounds(138, 125, 72, 18);

getContentPane().add(lblNewLabel_sex);

JComboBox comboBox_sez = new JComboBox();

comboBox_sez.setModel(new DefaultComboBoxModel(new String[] {“男”, “女”}));

comboBox_sez.setBounds(191, 122, 240, 24);

getContentPane().add(comboBox_sez);

JLabel lblNewLabel_age= new JLabel(“年龄:”);

lblNewLabel_age.setBounds(138, 168, 72, 18);

getContentPane().add(lblNewLabel_age);

textField_age = new JTextField();

textField_age.setBounds(191, 165, 240, 24);

getContentPane().add(textField_age);

textField_age.setColumns(10);

JLabel lblNewLabel_IDcard= new JLabel(“身份证号码:”);

lblNewLabel_IDcard.setBounds(93, 213, 117, 18);

getContentPane().add(lblNewLabel_IDcard);

textField_IDcard = new JTextField();

textField_IDcard.setBounds(191, 210, 240, 24);

getContentPane().add(textField_IDcard);

textField_IDcard.setColumns(10);

JLabel lblNewLabel_address= new JLabel(“住址:”);

lblNewLabel_address.setBounds(138, 254, 72, 18);

getContentPane().add(lblNewLabel_address);

textField_address = new JTextField();

textField_address.setBounds(191, 251, 240, 24);

getContentPane().add(textField_address);

textField_address.setColumns(10);

JLabel lblNewLabel_phone= new JLabel(“电话:”);

lblNewLabel_phone.setBounds(138, 295, 72, 18);

getContentPane().add(lblNewLabel_phone);

textField_phone = new JTextField();

textField_phone.setBounds(191, 292, 240, 24);

getContentPane().add(textField_phone);

textField_phone.setColumns(10);

JLabel lblNewLabel_th= new JLabel(“团号:”);

lblNewLabel_th.setBounds(138, 335, 72, 18);

getContentPane().add(lblNewLabel_th);

textField_th = new JTextField();

textField_th.setBounds(191, 332, 240, 24);

getContentPane().add(textField_th);

textField_th.setColumns(10);

JLabel lblNewLabel_pt= new JLabel(“陪同:”);

lblNewLabel_pt.setBounds(138, 382, 72, 18);

getContentPane().add(lblNewLabel_pt);

textField_pt = new JTextField();

textField_pt.setText(“是否选择导游陪同?”);

textField_pt.setToolTipText(“”);

textField_pt.setBounds(191, 379, 240, 24);

getContentPane().add(textField_pt);

textField_pt.setColumns(10);

JLabel lblNewLabel_ss= new JLabel(“食宿:”);

lblNewLabel_ss.setBounds(138, 427, 72, 18);

getContentPane().add(lblNewLabel_ss);

textField_ss = new JTextField();

textField_ss.setText(“是否选择宾馆住宿?”);

textField_ss.setBounds(191, 424, 240, 24);

getContentPane().add(textField_ss);

textField_ss.setColumns(10);

JButton button_1 = new JButton(“查看旅游团信息”);

button_1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

}

});

button_1.setBounds(453, 331, 158, 27);

button_1.setFocusPainted(false);//去掉按钮周围的焦点框

button_1.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_1);

JButton button_2 = new JButton(“显示选择结果”);

button_2.setBounds(625, 331, 146, 27);

button_2.setFocusPainted(false);//去掉按钮周围的焦点框

button_2.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_2);

JButton button_3 = new JButton(“是”);

button_3.setBounds(453, 378, 72, 27);

button_3.setFocusPainted(false);//去掉按钮周围的焦点框

button_3.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_3);

button_3.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField_pt.setText(“是”);

}

});

JButton button_4 = new JButton(“否”);

button_4.setBounds(539, 378, 72, 27);

button_4.setFocusPainted(false);//去掉按钮周围的焦点框

button_4.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_4);

button_4.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField_pt.setText(“无”);

}

});

JButton button_5 = new JButton(“显示选择结果”);

button_5.setBounds(625, 378, 146, 27);

button_5.setFocusPainted(false);//去掉按钮周围的焦点框

button_5.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_5);

JButton button_6 = new JButton(“是”);

button_6.setBounds(453, 421, 72, 27);

button_6.setFocusPainted(false);//去掉按钮周围的焦点框

button_6.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_6);

button_6.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField_ss.setText(“是”);

}

});

JButton button_7 = new JButton(“否”);

button_7.setBounds(539, 421, 72, 27);

button_7.setFocusPainted(false);//去掉按钮周围的焦点框

button_7.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_7);

button_7.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField_ss.setText(“无”);

}

});

JButton button_8 = new JButton(“显示选择结果”);

button_8.setBounds(625, 423, 146, 27);

button_8.setFocusPainted(false);//去掉按钮周围的焦点框

button_8.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_8);

JButton btnNewButton = new JButton(“报名”);

btnNewButton.setFont(new Font(“微软雅黑”, Font.PLAIN, 18));

btnNewButton.setBounds(388, 516, 124, 33);

btnNewButton.setFocusPainted(false);//去掉按钮周围的焦点框

btnNewButton.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(btnNewButton);

btnNewButton.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

name = textField_name.getText();

sex = comboBox_sez.getSelectedItem().toString();

age = textField_age.getText();

Idcard = textField_IDcard.getText();

address = textField_address.getText();

phone = textField_phone.getText();

th = textField_th.getText();

pt = textField_pt.getText();

if (pt.equals(“是否选择导游陪同?”)) {

pt=“无”;

}

ss = textField_ss.getText();

if (ss.equals(“是否选择宾馆住宿?”)) {

ss=“无”;

}

//判断输入的信息是否为空,是否完整

if (name.equals(“”)||sex.equals(“”)||age.equals(“”)||Idcard.equals(“”)||address.equals(“”)||phone.equals(“”)||th.equals(“”)||pt.equals(“”)||ss.equals(“”)) {

JOptionPane.showMessageDialog(null, “请输入完整信息!”);

} else {

//判断身份证号码

if (!ValidateUtils.IDcard(Idcard)) {

JOptionPane.showMessageDialog(null, “身份证号码错误!请检查!”);

} else {

String i = select.getString(“SELECT user_id FROM user WHERE user_state=‘已登录’”);

String sql = “INSERT INTO tourist VALUES (null, '”+i+“', '”+name+“', '”+sex+“', '”+age+“', '”+Idcard+“', '”+address+“', '”+phone+“', '”+th+“', '”+pt+“', '”+ss+“');”;

int result = updata.addData(sql);

//判断手机号

String regex = “^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[013678])|(18[0,5-9]))\d{8}$”;

if(phone.length() != 11){

JOptionPane.showMessageDialog(null, “手机号应为11位数!”);

}else{

Pattern p = Pattern.compile(regex);

Matcher m = p.matcher(phone);

boolean isMatch = m.matches();

if(!isMatch){

JOptionPane.showMessageDialog(null, “您的手机号” + phone + “是错误格式!!!”);

}else {

//判断插入结果

if (result>0) {

JOptionPane.showMessageDialog(null, “报名成功!”);

dispose();

MainJframe m1 = new MainJframe();

m1.setVisible(true);

} else {

JOptionPane.showMessageDialog(null, “报名失败,请与管理员联系!”);

}

}

}

}

}

}

});

}

}

Registration_Management.Java

package com.ynavc.View;

import java.awt.Color;

import java.awt.FileDialog;

import java.awt.Font;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.ScrollPaneConstants;

import javax.swing.table.DefaultTableCellRenderer;

import javax.swing.table.DefaultTableModel;

import javax.swing.table.TableModel;

import com.ynavc.Bean.Tourist;

import com.ynavc.Controller.Select;

import com.ynavc.Controller.Updata;

import javax.swing.JTextField;

import javax.imageio.ImageIO;

import javax.swing.JButton;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.awt.event.ActionEvent;

public class Registration_Management extends JFrame {

Select select = new Select();

Updata updata = new Updata();

JButton btnNewButton_Export;

JTable jTable;

DefaultTableModel dt;

// String name,sex,age,Idcard,address,phone,th,pt,ss;

Object[] header= {“游客编号”,“姓名”,“性别”,“年龄”,“身份证号”,“住址”,“电话”,“旅游团”,“陪同”,“食宿”};

Object[][] data=select.getTourist(“SELECT * FROM tourist”);

private JTextField textField_ykbh;

private JTextField textField_th;

private JTextField textField_name;

public Registration_Management() {

super(“报名信息管理”);

this.setBounds(0, 0, 1200, 700);

this.setLocationRelativeTo(null);//让窗口在屏幕中间显示

this.setResizable(false);//让窗口大小不可改变

getContentPane().setLayout(null);

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

super.windowClosing(e);

//加入动作

MainJframe m = new MainJframe();

m.setVisible(true);

}

});

//创建表模型

dt=new DefaultTableModel(data,header){

//设置表格内容不可被编辑

public boolean isCellEditable(int row, int column) {

return false;//返回true表示能编辑,false表示不能编辑

}

};

jTable=new JTable(dt);//创建表格

jTable.getTableHeader().setFont(new Font(null, Font.BOLD, 14)); // 设置表头名称字体样式

jTable.getTableHeader().setForeground(Color.black); // 设置表头名称字体颜色

// jTable.getTableHeader().setResizingAllowed(false); // 设置不允许手动改变列宽

jTable.getTableHeader().setReorderingAllowed(false);//设置表头不允许拖动

int v=ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;//水平滚动条

int h=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;//垂直滚动条

JScrollPane jsp=new JScrollPane(jTable,v,h);//创建滚动容器

jsp.setBounds(0, 0, 976, 675);

getContentPane().add(jsp);

JLabel label_ykbh = new JLabel(“游客编号:”);

label_ykbh.setBounds(990, 74, 89, 18);

getContentPane().add(label_ykbh);

textField_ykbh = new JTextField();

textField_ykbh.setBounds(1066, 71, 114, 24);

getContentPane().add(textField_ykbh);

textField_ykbh.setColumns(10);

JLabel label_th = new JLabel(“团号:”);

label_th.setBounds(1000, 122, 52, 18);

getContentPane().add(label_th);

textField_th = new JTextField();

textField_th.setColumns(10);

textField_th.setBounds(1066, 119, 114, 24);

getContentPane().add(textField_th);

JLabel label_name = new JLabel(“姓名:”);

label_name.setBounds(1000, 168, 52, 18);

getContentPane().add(label_name);

textField_name = new JTextField();

textField_name.setColumns(10);

textField_name.setBounds(1066, 165, 114, 24);

getContentPane().add(textField_name);

JButton btnNewButton_Query = new JButton(“查询”);

btnNewButton_Query.setBounds(1031, 224, 113, 27);

btnNewButton_Query.setFocusPainted(false);//去掉按钮周围的焦点框

btnNewButton_Query.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(btnNewButton_Query);

btnNewButton_Query.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

String ykbh,th,name,sql;

ykbh = textField_ykbh.getText();

th = textField_th.getText();

name = textField_name.getText();

if (ykbh.equals(“”)&&th.equals(“”)&&name.equals(“”)) {

sql = “SELECT * FROM tourist”;

}else if(ykbh.equals(“”)&&th.equals(“”)){

sql = “SELECT * FROM tourist WHERE tourist_name='”+name+“';”;

}else if(name.equals(“”)&&th.equals(“”)){

sql = “SELECT * FROM tourist WHERE tourist_num='”+ykbh+“';”;

}else if(ykbh.equals(“”)&&name.equals(“”)){

sql = “SELECT * FROM tourist WHERE group_num='”+th+“';”;

}else if(ykbh.equals(“”)){

sql = “SELECT * FROM tourist WHERE group_num='”+th+“’ and tourist_name='”+name+“';”;

}else if(th.equals(“”)){

sql = “SELECT * FROM tourist WHERE tourist_num='”+ykbh+“’ and tourist_name='”+name+“';”;

}else if(name.equals(“”)){

sql = “SELECT * FROM tourist WHERE tourist_num='”+ykbh+“’ and group_num='”+th+“';”;

}else {

sql = “SELECT * FROM tourist WHERE tourist_num='”+ykbh+“’ and group_num='”+th+“’ and tourist_name='”+name+“';”;

}

data = select.getTourist(sql);

dt.setDataVector(data,header);

}

});

JButton btnNewButton_Alter = new JButton(“修改”);

btnNewButton_Alter.setBounds(1031, 278, 113, 27);

btnNewButton_Alter.setFocusPainted(false);//去掉按钮周围的焦点框

btnNewButton_Alter.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(btnNewButton_Alter);

btnNewButton_Alter.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

if (jTable.getSelectedRow()<0) {

JOptionPane.showMessageDialog(null, “您未选中要修改的数据!”);

} else {

//获取用户选择的数据

String name,sex,age,Idcard,address,phone,th,pt,ss;

String id=jTable.getValueAt(jTable.getSelectedRow(), 0).toString();

String user_id = select.getString(“SELECT user_id FROM user WHERE user_state=‘已登录’”);

name=jTable.getValueAt(jTable.getSelectedRow(), 1).toString();

sex=jTable.getValueAt(jTable.getSelectedRow(), 2).toString();

age=jTable.getValueAt(jTable.getSelectedRow(), 3).toString();

Idcard=jTable.getValueAt(jTable.getSelectedRow(), 4).toString();

address=jTable.getValueAt(jTable.getSelectedRow(), 5).toString();

phone=jTable.getValueAt(jTable.getSelectedRow(), 6).toString();

th=jTable.getValueAt(jTable.getSelectedRow(), 7).toString();

pt=jTable.getValueAt(jTable.getSelectedRow(), 8).toString();

ss=jTable.getValueAt(jTable.getSelectedRow(), 9).toString();

Tourist tourist=new Tourist(id, user_id, name, sex, age, Idcard, address, phone, th, pt, ss);

RegistrationInfo_Change frame=new RegistrationInfo_Change(tourist);

frame.setVisible(true);

}

}

});

JButton btnNewButton_Add = new JButton(“添加”);

btnNewButton_Add.setBounds(1031, 330, 113, 27);

btnNewButton_Add.setFocusPainted(false);//去掉按钮周围的焦点框

btnNewButton_Add.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(btnNewButton_Add);

btnNewButton_Add.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

Registration_Info r = new Registration_Info();

r.setVisible(true);

}

});

JButton btnNewButton_Delete = new JButton(“删除”);

btnNewButton_Delete.setBounds(1031, 383, 113, 27);

btnNewButton_Delete.setFocusPainted(false);//去掉按钮周围的焦点框

btnNewButton_Delete.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(btnNewButton_Delete);

btnNewButton_Delete.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent arg0) {

if (jTable.getSelectedRow()<0) {

JOptionPane.showMessageDialog(null, “您未选中要删除的数据!”);

} else {

//获取用户选择的数据

String id=jTable.getValueAt(jTable.getSelectedRow(), 0).toString();

String name=jTable.getValueAt(jTable.getSelectedRow(), 1).toString();

int result = JOptionPane.showConfirmDialog(null,“您确定要删除用户 “”+name+“” 的报名信息吗?”,“删除提示”,0,1);

if(result == JOptionPane.OK_OPTION){

int i = updata.addData(“DELETE FROM tourist WHERE tourist_num='”+id+“';”);

if (i>0){

JOptionPane.showMessageDialog(null, “用户 “”+name+“” ,已被删除成功!”);

} else {

JOptionPane.showMessageDialog(null, “删除失败!”);

}

data=select.getTourist(“SELECT * FROM tourist”);

dt.setDataVector(data,header);

}

}

}

});

JButton btnNewButton_Tip = new JButton(“提示”);

btnNewButton_Tip.setBounds(1031, 436, 113, 27);

btnNewButton_Tip.setFocusPainted(false);//去掉按钮周围的焦点框

btnNewButton_Tip.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(btnNewButton_Tip);

btnNewButton_Tip.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

JOptionPane.showMessageDialog(null, “查询:直接点击将列出所有报名信息,也可填写游客编号、团号和性别查询。
修改:点击游客将会将游客编号绑定到文本框中,可以对该游客编号对应的游客进行团号和性别修改。
删除:点击要删除的信息,点击删除即可。
添加:对报名信息进行添加。”);

}

});

btnNewButton_Export = new JButton(“将数据导出到
  Excel 表中”);

btnNewButton_Export.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

jButtonActionPerformed(e);

}

});

btnNewButton_Export.setBounds(1016, 525, 138, 51);

btnNewButton_Export.setFocusPainted(false);//去掉按钮周围的焦点框

btnNewButton_Export.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(btnNewButton_Export);

//设置单元格内容居中显示

DefaultTableCellRenderer r = new DefaultTableCellRenderer();

r.setHorizontalAlignment(JLabel.CENTER);

jTable.setDefaultRenderer(Object.class, r);

}

//导出

private void jButtonActionPerformed(java.awt.event.ActionEvent evt) {

FileDialog fd = new FileDialog(this, “将数据保存到”, FileDialog.SAVE);

fd.setLocation(1100, 600);

fd.setVisible(true);

String stringfile = fd.getDirectory()+fd.getFile()+“.xlsx”;

try {

// ExcelExporter export = new ExcelExporter();

this.exportTable(jTable, new File(stringfile));

} catch (IOException ex) {

ex.printStackTrace();

}

}

/**导出JTable到excel */

public void exportTable(JTable table, File file) throws IOException {

TableModel model = table.getModel();

BufferedWriter bWriter = new BufferedWriter(new FileWriter(file));

for(int i=0; i < model.getColumnCount(); i++) {

bWriter.write(model.getColumnName(i));

bWriter.write(“\t”);

}

bWriter.newLine();

for(int i=0; i< model.getRowCount(); i++) {

for(int j=0; j < model.getColumnCount(); j++) {

bWriter.write(model.getValueAt(i,j).toString());

bWriter.write(“\t”);

}

bWriter.newLine();

}

bWriter.close();

}

}

RegistrationInfo_Change.Java

package com.ynavc.View;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JTextField;

import com.ynavc.Bean.Tourist;

import com.ynavc.Controller.Select;

import com.ynavc.Controller.Updata;

import com.ynavc.Utils.ValidateUtils;

import javax.swing.JButton;

import java.awt.event.ActionListener;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

import java.awt.event.ActionEvent;

import java.awt.Font;

import javax.swing.JComboBox;

import javax.swing.DefaultComboBoxModel;

public class RegistrationInfo_Change extends JFrame {

private JTextField textField_name;//姓名

private JTextField textField_age;//年龄

private JTextField textField_IDcard;//身份证号码

private JTextField textField_address;//地址

private JTextField textField_phone;//电话

private JTextField textField_th;//团号

private JTextField textField_pt;//陪同

private JTextField textField_ss;//食宿

Select select = new Select();

Updata updata = new Updata();

String name,sex,age,Idcard,address,phone,th,pt,ss;

public RegistrationInfo_Change(Tourist tourist) {

super(“修改报名信息”);

this.setBounds(0, 0, 930, 700);

this.setLocationRelativeTo(null);//让窗口在屏幕中间显示

this.setResizable(false);//让窗口大小不可改变

getContentPane().setLayout(null);

JLabel lblNewLabel_name= new JLabel(“姓名:”);

lblNewLabel_name.setBounds(138, 79, 72, 18);

getContentPane().add(lblNewLabel_name);

textField_name = new JTextField();

textField_name.setBounds(191, 76, 240, 24);

getContentPane().add(textField_name);

textField_name.setColumns(10);

JLabel lblNewLabel_sex= new JLabel(“性别:”);

lblNewLabel_sex.setBounds(138, 125, 72, 18);

getContentPane().add(lblNewLabel_sex);

JComboBox comboBox_sex= new JComboBox();

comboBox_sex.setModel(new DefaultComboBoxModel(new String[] {“男”, “女”}));

comboBox_sex.setBounds(191, 122, 240, 24);

getContentPane().add(comboBox_sex);

JLabel lblNewLabel_age= new JLabel(“年龄:”);

lblNewLabel_age.setBounds(138, 168, 72, 18);

getContentPane().add(lblNewLabel_age);

textField_age = new JTextField();

textField_age.setBounds(191, 165, 240, 24);

getContentPane().add(textField_age);

textField_age.setColumns(10);

JLabel lblNewLabel_IDcard= new JLabel(“身份证号码:”);

lblNewLabel_IDcard.setBounds(93, 213, 117, 18);

getContentPane().add(lblNewLabel_IDcard);

textField_IDcard = new JTextField();

textField_IDcard.setBounds(191, 210, 240, 24);

getContentPane().add(textField_IDcard);

textField_IDcard.setColumns(10);

JLabel lblNewLabel_address= new JLabel(“住址:”);

lblNewLabel_address.setBounds(138, 254, 72, 18);

getContentPane().add(lblNewLabel_address);

textField_address = new JTextField();

textField_address.setBounds(191, 251, 240, 24);

getContentPane().add(textField_address);

textField_address.setColumns(10);

JLabel lblNewLabel_phone= new JLabel(“电话:”);

lblNewLabel_phone.setBounds(138, 295, 72, 18);

getContentPane().add(lblNewLabel_phone);

textField_phone = new JTextField();

textField_phone.setBounds(191, 292, 240, 24);

getContentPane().add(textField_phone);

textField_phone.setColumns(10);

JLabel lblNewLabel_th= new JLabel(“团号:”);

lblNewLabel_th.setBounds(138, 335, 72, 18);

getContentPane().add(lblNewLabel_th);

textField_th = new JTextField();

textField_th.setBounds(191, 332, 240, 24);

getContentPane().add(textField_th);

textField_th.setColumns(10);

JLabel lblNewLabel_pt= new JLabel(“陪同:”);

lblNewLabel_pt.setBounds(138, 382, 72, 18);

getContentPane().add(lblNewLabel_pt);

textField_pt = new JTextField();

textField_pt.setText(“是否选择导游陪同?”);

textField_pt.setToolTipText(“”);

textField_pt.setBounds(191, 379, 240, 24);

getContentPane().add(textField_pt);

textField_pt.setColumns(10);

JLabel lblNewLabel_ss= new JLabel(“食宿:”);

lblNewLabel_ss.setBounds(138, 427, 72, 18);

getContentPane().add(lblNewLabel_ss);

textField_ss = new JTextField();

textField_ss.setText(“是否选择宾馆住宿?”);

textField_ss.setBounds(191, 424, 240, 24);

getContentPane().add(textField_ss);

textField_ss.setColumns(10);

JButton button_1 = new JButton(“查看旅游团信息”);

button_1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

}

});

button_1.setBounds(453, 331, 158, 27);

button_1.setFocusPainted(false);//去掉按钮周围的焦点框

button_1.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_1);

JButton button_2 = new JButton(“显示选择结果”);

button_2.setBounds(625, 331, 146, 27);

button_2.setFocusPainted(false);//去掉按钮周围的焦点框

button_2.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_2);

JButton button_3 = new JButton(“是”);

button_3.setBounds(453, 378, 72, 27);

button_3.setFocusPainted(false);//去掉按钮周围的焦点框

button_3.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_3);

button_3.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField_pt.setText(“是”);

}

});

JButton button_4 = new JButton(“否”);

button_4.setBounds(539, 378, 72, 27);

button_4.setFocusPainted(false);//去掉按钮周围的焦点框

button_4.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_4);

button_4.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField_pt.setText(“无”);

}

});

JButton button_5 = new JButton(“显示选择结果”);

button_5.setBounds(625, 378, 146, 27);

button_5.setFocusPainted(false);//去掉按钮周围的焦点框

button_5.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_5);

JButton button_6 = new JButton(“是”);

button_6.setBounds(453, 421, 72, 27);

button_6.setFocusPainted(false);//去掉按钮周围的焦点框

button_6.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_6);

button_6.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField_ss.setText(“是”);

}

});

JButton button_7 = new JButton(“否”);

button_7.setBounds(539, 421, 72, 27);

button_7.setFocusPainted(false);//去掉按钮周围的焦点框

button_7.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_7);

button_7.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

textField_ss.setText(“无”);

}

});

JButton button_8 = new JButton(“显示选择结果”);

button_8.setBounds(625, 423, 146, 27);

button_8.setFocusPainted(false);//去掉按钮周围的焦点框

button_8.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(button_8);

textField_name.setText(tourist.getTourist_name());

String t = tourist.getTourist_sex();

comboBox_sex.setSelectedItem(t);

textField_age.setText(tourist.getTourist_age());

textField_IDcard.setText(tourist.getTourist_idCard());

textField_address.setText(tourist.getTourist_address());

textField_phone.setText(tourist.getTourist_phone());

textField_th.setText(tourist.getGroup_num());

textField_pt.setText(tourist.getAccompanied());

textField_ss.setText(tourist.getAccommodation());

JButton btnNewButton = new JButton(“确认修改”);

btnNewButton.setFont(new Font(“微软雅黑”, Font.PLAIN, 18));

btnNewButton.setBounds(388, 516, 124, 33);

btnNewButton.setFocusPainted(false);//去掉按钮周围的焦点框

btnNewButton.setContentAreaFilled(false);//设置按钮透明背景

getContentPane().add(btnNewButton);

btnNewButton.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

String id = tourist.getTourist_num();

name = textField_name.getText();

sex = comboBox_sex.getSelectedItem().toString();

age = textField_age.getText();

Idcard = textField_IDcard.getText();

address = textField_address.getText();

phone = textField_phone.getText();

th = textField_th.getText();

pt = textField_pt.getText();

if (pt.equals(“是否选择导游陪同?”)) {

pt=“无”;

}

ss = textField_ss.getText();

if (ss.equals(“是否选择宾馆住宿?”)) {

ss=“无”;

}

//判断输入的信息是否为空,是否完整

if (name.equals(“”)||sex.equals(“”)||age.equals(“”)||Idcard.equals(“”)||address.equals(“”)||phone.equals(“”)||th.equals(“”)||pt.equals(“”)||ss.equals(“”)) {

JOptionPane.showMessageDialog(null, “请输入完整信息!”);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

《MySql面试专题》

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

《MySql性能优化的21个最佳实践》

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

《MySQL高级知识笔记》

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

文中展示的资料包括:**《MySql思维导图》《MySql核心笔记》《MySql调优笔记》《MySql面试专题》《MySql性能优化的21个最佳实践》《MySq高级知识笔记》**如下图

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

关注我,点赞本文给更多有需要的人
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
(btnNewButton);

btnNewButton.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

String id = tourist.getTourist_num();

name = textField_name.getText();

sex = comboBox_sex.getSelectedItem().toString();

age = textField_age.getText();

Idcard = textField_IDcard.getText();

address = textField_address.getText();

phone = textField_phone.getText();

th = textField_th.getText();

pt = textField_pt.getText();

if (pt.equals(“是否选择导游陪同?”)) {

pt=“无”;

}

ss = textField_ss.getText();

if (ss.equals(“是否选择宾馆住宿?”)) {

ss=“无”;

}

//判断输入的信息是否为空,是否完整

if (name.equals(“”)||sex.equals(“”)||age.equals(“”)||Idcard.equals(“”)||address.equals(“”)||phone.equals(“”)||th.equals(“”)||pt.equals(“”)||ss.equals(“”)) {

JOptionPane.showMessageDialog(null, “请输入完整信息!”);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。[外链图片转存中…(img-DWsobsnW-1712700136888)]

[外链图片转存中…(img-7Na7ci48-1712700136889)]

[外链图片转存中…(img-g39AS7t3-1712700136889)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

《MySql面试专题》

[外链图片转存中…(img-MHNpe9Do-1712700136889)]

[外链图片转存中…(img-cN6OCzqB-1712700136890)]

《MySql性能优化的21个最佳实践》

[外链图片转存中…(img-dlEMtpAG-1712700136890)]

[外链图片转存中…(img-E1gA22Rr-1712700136890)]

[外链图片转存中…(img-FL9kFllD-1712700136890)]

[外链图片转存中…(img-y3uzLooN-1712700136891)]

《MySQL高级知识笔记》

[外链图片转存中…(img-TVFa2leA-1712700136891)]

[外链图片转存中…(img-i6QlCxG1-1712700136891)]

[外链图片转存中…(img-AoOBqfwN-1712700136891)]

[外链图片转存中…(img-whRzwkTw-1712700136891)]

[外链图片转存中…(img-kwQCD2ne-1712700136892)]

[外链图片转存中…(img-BbPpEgSz-1712700136892)]

[外链图片转存中…(img-3BchebSa-1712700136892)]

[外链图片转存中…(img-UU2lWbag-1712700136892)]

[外链图片转存中…(img-uqjHyucg-1712700136892)]

[外链图片转存中…(img-5NRhgwA2-1712700136892)]

文中展示的资料包括:**《MySql思维导图》《MySql核心笔记》《MySql调优笔记》《MySql面试专题》《MySql性能优化的21个最佳实践》《MySq高级知识笔记》**如下图

[外链图片转存中…(img-DXqDhztB-1712700136893)]

关注我,点赞本文给更多有需要的人
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值