我的人生就好比这两条线


纯Java增删改查


//自己写的一个完整的带增删改查提交重置功能的表单代码。
package com.l16.test5;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class MyFrame extends JFrame implements ActionListener {
 private JPanel panel = null;
 private JPanel sePanel = null;
 private JPanel hoPanel = null;
 private JPanel buPanel = null;
 private JPanel buPanel2 = null;
 private JPanel buPanel3 = null;
 //姓名
 private JLabel tilabel = null;
 private JLabel naLabel = null;
 private JTextField naTextField = null;
 //密码
 private JLabel paLabel = null;
 private JPasswordField passwordField = null;
 private JLabel paLabel2 = null;
 private JPasswordField passwordField2 = null;
 //性别 控制单选用ButtonGroup
 private JLabel seLabel = null;
 private JRadioButton maRadioButton = null;
 private JRadioButton feRadioButton = null;
 private ButtonGroup buttonGroup = null;
 //爱好
 private JLabel hoLabel = null;
 private JCheckBox eaCheckBox = null;
 private JCheckBox spCheckBox = null;
 private JCheckBox slCheckBox = null;
 
 //籍贯 下拉功能用Combobox
 private JLabel adLabel = null;
 private JComboBox comboBox = null;
 
 //自我介绍
 private JLabel shLabel = null;
 private JTextArea textArea = null;
 private JScrollPane scrollPane = null;
 
 //增删改查 提交 重置
 private JButton adButton = null;
 private JButton deButton = null;
 private JButton alButton = null;
 private JButton quButton = null;
 private JButton suButton = null;
 private JButton reButton = null;
 private void init() {
  
  this.setTitle("注册页面");
  this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
  Container content = this.getContentPane();
  this.panel = new JPanel(new GridBagLayout());
  content.add(panel);
  
  GridBagConstraints gbc = new GridBagConstraints();
  //标头
  this.tilabel = new JLabel("金智用户注册");
  this.tilabel.setFont(new Font("宋体", Font.BOLD, 26));
  gbc.gridx = 1;
  gbc.gridy = 0;
  this.panel.add(this.tilabel, gbc);
  //位置居右
  gbc.anchor = GridBagConstraints.EAST;
  //用户名
  this.naLabel = new JLabel("用户名:");
  this.naLabel.setFont(new Font("宋体", Font.BOLD, 20));
  gbc.gridx = 0;
  gbc.gridy = 1;
  this.panel.add(this.naLabel, gbc);
  this.naTextField = new JTextField(16);
  gbc.gridx = 1;
  gbc.gridy = 1;
  this.panel.add(this.naTextField, gbc);
  //密码1次
  this.paLabel = new JLabel("密  码:");
  this.paLabel.setFont(new Font("宋体", Font.BOLD, 20));
  gbc.gridx = 0;
  gbc.gridy = 2;
  this.panel.add(this.paLabel, gbc);
  this.passwordField = new JPasswordField(16);
  gbc.gridx = 1;
  gbc.gridy = 2;
  this.panel.add(this.passwordField, gbc);
  //密码2次
  this.paLabel2 = new JLabel("密 码2:");
  this.paLabel2.setFont(new Font("宋体", Font.BOLD, 20));
  gbc.gridx = 0;
  gbc.gridy = 3;
  this.panel.add(this.paLabel2, gbc);
  this.passwordField2 = new JPasswordField(16);
  gbc.gridx = 1;
  gbc.gridy = 3;
  this.panel.add(this.passwordField2, gbc);
  //性别
  this.seLabel = new JLabel("性  别:");
  this.seLabel.setFont(new Font("宋体", Font.BOLD, 20));
  gbc.gridx = 0;
  gbc.gridy = 4;
  this.panel.add(this.seLabel, gbc);
  this.maRadioButton = new JRadioButton("男", true);
  this.maRadioButton.setFont(new Font("宋体", Font.BOLD, 20));
  this.feRadioButton = new JRadioButton("女");
  this.feRadioButton.setFont(new Font("宋体", Font.BOLD, 20));
  this.sePanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 28, 0));
  this.sePanel.add(maRadioButton);
  this.sePanel.add(feRadioButton);
  this.buttonGroup = new ButtonGroup();
  this.buttonGroup.add(maRadioButton);
  this.buttonGroup.add(feRadioButton);
  gbc.gridx = 1;
  gbc.gridy = 4;
  this.panel.add(this.sePanel, gbc);
  //爱好
  this.hoLabel = new JLabel("爱  好:");
  this.hoLabel.setFont(new Font("宋体", Font.BOLD, 20));
  gbc.gridx = 0;
  gbc.gridy = 5;
  this.panel.add(this.hoLabel, gbc);
  this.hoPanel = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));
  this.eaCheckBox = new JCheckBox("吃饭");
  this.eaCheckBox.setFont(new Font("宋体", Font.BOLD, 16));
  this.spCheckBox = new JCheckBox("运动");
  this.spCheckBox.setFont(new Font("宋体", Font.BOLD, 16));
  this.slCheckBox = new JCheckBox("睡觉");
  this.slCheckBox.setFont(new Font("宋体", Font.BOLD, 16));
  this.hoPanel.add(eaCheckBox);
  this.hoPanel.add(spCheckBox);
  this.hoPanel.add(slCheckBox);
  gbc.gridx = 1;
  gbc.gridy = 5;
  this.panel.add(this.hoPanel, gbc);
  //籍贯
  this.adLabel = new JLabel("籍  贯:");
  this.adLabel.setFont(new Font("宋体", Font.BOLD, 20));
  gbc.gridx = 0;
  gbc.gridy = 6;
  this.panel.add(this.adLabel, gbc);
  String[] add = {"西安", "北京", "上海", "广州"};
  this.comboBox = new JComboBox(add);
  this.comboBox.setFont(new Font("宋体", Font.BOLD, 20));
  this.comboBox.setPreferredSize(new Dimension(176, 22));
  gbc.gridx = 1;
  gbc.gridy = 6;
  this.panel.add(this.comboBox, gbc);
  //自我介绍
  this.shLabel = new JLabel("介   绍:");
  this.shLabel.setFont(new Font("宋体", Font.BOLD, 20));
  gbc.gridx = 0;
  gbc.gridy = 7;
  this.panel.add(this.shLabel, gbc);
  this.textArea = new JTextArea("请在这里写你的自我介绍", 10, 22);
  this.textArea.setFont(new Font("宋体", Font.BOLD, 14));
  this.scrollPane = new JScrollPane(textArea);
  gbc.gridx = 1;
  gbc.gridy = 7;
  this.panel.add(this.scrollPane, gbc);
  
  //增删改查
  this.buPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT, 0, 0));
  this.adButton = new JButton("增");
  this.adButton.addActionListener(this);
  this.buPanel.add(this.adButton);
  gbc.gridx = 0;
  gbc.gridy = 8;
  this.panel.add(this.buPanel, gbc);
  
  this.buPanel2 = new JPanel(new FlowLayout(FlowLayout.LEFT, 10, 0));
  this.deButton = new JButton("删");
  this.deButton.addActionListener(this);
  this.alButton = new JButton("改");
  this.alButton.addActionListener(this);
  this.quButton = new JButton("查");
  this.quButton.addActionListener(this);
  this.buPanel2.add(this.deButton);
  this.buPanel2.add(this.alButton);
  this.buPanel2.add(this.quButton);
  gbc.gridx = 1;
  gbc.gridy = 8;
  this.panel.add(this.buPanel2, gbc);
  //提交和重置
  this.buPanel3 = new JPanel(new FlowLayout(FlowLayout.CENTER, 16 , 0));
  this.suButton = new JButton("提交");
  this.suButton.addActionListener(this);
  this.reButton = new JButton("重置");
  this.reButton.addActionListener(this);
  this.buPanel3.add(suButton);
  this.buPanel3.add(reButton);
  gbc.gridx = 1;
  gbc.gridy = 9;
  this.panel.add(this.buPanel3, gbc);
  
  
  
  
 }
 public MyFrame() {
  
  this.init();
 }
 public static void main(String[] args) {
  MyFrame frame = new MyFrame();
  frame.setBounds(100, 20, 400, 600);
  frame.setVisible(true);
 }
 @Override
 public void actionPerformed(ActionEvent e) {
  //声明数据库的三个对象,
  Connection conn = null;//连接对象
  Statement sta = null;//执行对象
  ResultSet rs = null;//结果集对象
  //增加一条记录开始***********************************************
  //首先必须查数据库看有没有主键相同的,有的话提醒用户,不能插入同名的两条记录。
  if(e.getSource() == this.adButton) {
   
   //获取姓名
   String username = this.naTextField.getText();
   //校验姓名
   if(username != null && username.length() <= 0) {
    JOptionPane.showMessageDialog(this, "用户名不能为空!", "提示框", JOptionPane.WARNING_MESSAGE);
    return;
   }
   //获取一次密码
   String password1 = String.valueOf(this.passwordField.getPassword());
   //获取二次密码
   String password2 = String.valueOf(this.passwordField2.getPassword());
   //校验密码
   if(password1 != null  && password1.length() <= 0 ) {
    JOptionPane.showMessageDialog(this, "密码不能为空");
    return;
   }
   if(password2 != null && password2.length() <= 0) {
    JOptionPane.showMessageDialog(this, "密码不能为空");
    return;
   }
   if(!(password1.equals(password2))) {
    JOptionPane.showMessageDialog(this, "两次密码不一致,请重新输入二次密码");
    return;
   }
   //获取性别
   String sex = null;
   if(this.maRadioButton.isSelected()) {
     sex = "男";
   } else {
    sex = "女";
   }
   //获取爱好
   String eat = null;
   if(this.eaCheckBox.isSelected()) {
    eat = "吃饭";
   }
   String sport = null;
   if(this.spCheckBox.isSelected()) {
    sport = "运动";
   }
   String sleep = null;
   if(this.slCheckBox.isSelected()) {
    sleep = "睡觉";
   }
   //获取户籍地

   String address = this.comboBox.getSelectedItem().toString();
   //获取自我介绍
   String showMe = this.textArea.getText();
   //拼接增加记录的Sql
   String addSql = "insert into userTable values('"+username+"', '"+password1+"', '"+sex+"',"
     + " '"+eat+"', '"+sport+"', '"+sleep+"',"
       + " '"+address+"', '"+showMe+"')";
   String queSql = "select * from userTable where nameuser = '"+username+"'";
   //连接数据库
   try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=student", "sa", "sa");
    sta = conn.createStatement();
    rs = sta.executeQuery(queSql);
    if(rs.next() == true) {
     JOptionPane.showMessageDialog(this, "数据库中已存在此人,不能重复插入");
     return;
    }
    int a = sta.executeUpdate(addSql);
    if(a > 0) {
     JOptionPane.showMessageDialog(this, "恭喜您,插入记录成功!");
    }
   } catch (ClassNotFoundException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
   } catch (SQLException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
   } finally {
    try {
     if(rs != null) {
      rs.close();
      rs = null;
     }
     if(sta != null) {
      sta.close();
      sta = null;
     }
     if(conn != null) {
      conn.close();
      conn = null;
     }
    } catch (SQLException e1) {
     // TODO Auto-generated catch block
     e1.printStackTrace();
    }
   }
   //清空表单内的数据
   this.naTextField.setText("");
   this.passwordField.setText("");
   this.passwordField2.setText("");
   //默认选择男生
   this.maRadioButton.setSelected(true);
   this.eaCheckBox.setSelected(false);
   this.spCheckBox.setSelected(false);
   this.slCheckBox.setSelected(false);
   this.comboBox.setSelectedItem("西安");
   this.textArea.setText("请在这里写你的自我介绍");
  
  //删除一条记录开始**********************************************
  } else if(e.getSource() == this.deButton) {
   //根据姓名来删除记录,没有就提示数据库没有
   String username = JOptionPane.showInputDialog("请输入您要删除的名字");
   //查询数据库
   String queSql = "select * from userTable where nameuser = '"+username+"'";
   String delSql = "delete from userTable where nameuser = '"+username+"'";
   //连接数据库
   try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=student", "sa", "sa");
    sta = conn.createStatement();
    rs = sta.executeQuery(queSql);
    //校验看数据库是否有此人
    if(rs.next() == false) {
     JOptionPane.showMessageDialog(this, "查无此人,请您核对后再输入");
    } else {
     int d = sta.executeUpdate(delSql);
     if(d > 0) {
      JOptionPane.showMessageDialog(this, "删除记录成功");
     }
    }
   } catch (ClassNotFoundException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
   } catch (SQLException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
   } finally {
    try {
     if(rs != null) {
      rs.close();
      rs = null;
     }
     if(sta != null) {
      sta.close();
      sta = null;
     }
     if(conn != null) {
      conn.close();
      conn = null;
     }
    } catch (SQLException e1) {
     // TODO Auto-generated catch block
     e1.printStackTrace();
    }
   }
  
  //修改一条记录开始***************************************************
  } else if(e.getSource() == this.alButton) {
   //根据姓名来删除记录,没有就提示数据库没有
   String username = JOptionPane.showInputDialog("请输入您要修改的名字");
   //查询数据库
   String queSql = "select * from userTable where nameuser = '"+username+"'";
   
   //连接数据库
   try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=student", "sa", "sa");
    sta = conn.createStatement();
    //可以两次的执行同一个SQL语句
    rs = sta.executeQuery(queSql);
    //校验,如果数据库里没有此人,则弹框说明
    if(rs.next() == false) {
     JOptionPane.showMessageDialog(this, "查无此人,请核对后再次输入");
    }
    //从数据库取出数据放在表单上
    rs = sta.executeQuery(queSql);
     while(rs.next()) {
      
      this.naTextField.setText(rs.getString("nameuser"));
      this.passwordField.setText(rs.getString("userPassword"));
      this.passwordField2.setText(rs.getString("userPassword"));
      //性别
      if(rs.getString("userSex").equals("男")) {
       this.maRadioButton.setSelected(true);
      } else {
       this.feRadioButton.setSelected(true);
      }
      //爱好
      if(rs.getString("userEat").equals("吃饭")) {
       this.eaCheckBox.setSelected(true);
      }
      
      if(rs.getString("userSport").equals("运动")) {
       this.spCheckBox.setSelected(true);
      }
      if(rs.getString("userSleep").equals("睡觉")) {
       this.slCheckBox.setSelected(true);
      }
      //籍贯
      if(rs.getString("userAdress").equals("西安")) {
       this.comboBox.setSelectedItem("西安");
      } else if(rs.getString("userAdress").equals("北京")) {
       this.comboBox.setSelectedItem("北京");
      } else if(rs.getString("userAdress").equals("上海")) {
       this.comboBox.setSelectedItem("上海");
      } else if(rs.getString("userAdress").equals("广州")) {
       this.comboBox.setSelectedItem("广州");
      }
      //自我介绍
     
      this.textArea.setText(rs.getString("userShow"));
      JOptionPane.showMessageDialog(this, "每次修改完记录请提交表单");
     }
   } catch (ClassNotFoundException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
   } catch (SQLException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
   } finally {
    try {
     if(rs != null) {
      rs.close();
      rs = null;
     }
     if(sta != null) {
      sta.close();
      sta = null;
     }
     if(conn != null) {
      conn.close();
      conn = null;
     }
    } catch (SQLException e1) {
     // TODO Auto-generated catch block
     e1.printStackTrace();
    }
   }
   
  //查询一条记录开始***************************************************
  } else if(e.getSource() == this.quButton) {
   //根据姓名来删除记录,
   String username = JOptionPane.showInputDialog("请输入您要查询的名字");
   //查询数据库
   String queSql = "select * from userTable where nameuser = '"+username+"'";
   //连接数据库
   try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=student", "sa", "sa");
    sta = conn.createStatement();
    rs = sta.executeQuery(queSql);
    if(rs.next() == false) {
     JOptionPane.showMessageDialog(this, "查无此人,请核对后再次输入");
    }
    rs = sta.executeQuery(queSql);
    //从数据库中查出数据放在页面上
    while(rs.next()) {
     
     this.naTextField.setText(rs.getString("nameuser"));
     this.passwordField.setText(rs.getString("userPassword"));
     this.passwordField2.setText(rs.getString("userPassword"));
     //性别
     if(rs.getString("userSex").equals("男")) {
      this.maRadioButton.setSelected(true);
     } else {
      this.feRadioButton.setSelected(true);
     }
     //爱好
     if(rs.getString("userEat").equals("吃饭")) {
      this.eaCheckBox.setSelected(true);
     }
     
     if(rs.getString("userSport").equals("运动")) {
      this.spCheckBox.setSelected(true);
     }
     if(rs.getString("userSleep").equals("睡觉")) {
      this.slCheckBox.setSelected(true);
     }
     //籍贯
     if(rs.getString("userAdress").equals("西安")) {
      this.comboBox.setSelectedItem("西安");
     } else if(rs.getString("userAdress").equals("北京")) {
      this.comboBox.setSelectedItem("北京");
     } else if(rs.getString("userAdress").equals("上海")) {
      this.comboBox.setSelectedItem("上海");
     } else if(rs.getString("userAdress").equals("广州")) {
      this.comboBox.setSelectedItem("广州");
     }
     //自我介绍
    
     this.textArea.setText(rs.getString("userShow"));
     JOptionPane.showMessageDialog(this, "每次查询完记录请重置表单");
    }
   } catch (ClassNotFoundException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
   } catch (SQLException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
   } finally {
    try {
     if(rs != null) {
      rs.close();
      rs = null;
     }
     if(sta != null) {
      sta.close();
      sta = null;
     }
     if(conn != null) {
      conn.close();
      conn = null;
     }
    } catch (SQLException e1) {
     // TODO Auto-generated catch block
     e1.printStackTrace();
    }
   }
  //提交表单记录*******************************************************
   //思想先查数据库如果没有主键重复,直接新增一条,如果有先把主键相同的删除,然后把
   //修改后的一条记录插入到数据库里
  } else if(e.getSource() == this.suButton) {
   //获取姓名
   String username = this.naTextField.getText();
   //校验姓名
   if(username != null && username.length() <= 0) {
    JOptionPane.showMessageDialog(this, "用户名不能为空!", "提示框", JOptionPane.WARNING_MESSAGE);
    return;
   }
   //获取一次密码
   String password1 = String.valueOf(this.passwordField.getPassword());
   //获取二次密码
   String password2 = String.valueOf(this.passwordField2.getPassword());
   //校验密码
   if(password1 != null  && password1.length() <= 0 ) {
    JOptionPane.showMessageDialog(this, "密码不能为空");
    return;
   }
   if(password2 != null && password2.length() <= 0) {
    JOptionPane.showMessageDialog(this, "密码不能为空");
    return;
   }
   if(!(password1.equals(password2))) {
    JOptionPane.showMessageDialog(this, "两次密码不一致,请重新输入二次密码");
    return;
   }
   //获取性别
   String sex = null;
   if(this.maRadioButton.isSelected()) {
     sex = "男";
   } else {
    sex = "女";
   }
   //获取爱好
   String eat = null;
   if(this.eaCheckBox.isSelected()) {
    eat = "吃饭";
   }
   String sport = null;
   if(this.spCheckBox.isSelected()) {
    sport = "运动";
   }
   String sleep = null;
   if(this.slCheckBox.isSelected()) {
    sleep = "睡觉";
   }
   //获取户籍地
   String address = this.comboBox.getSelectedItem().toString();
   //获取自我介绍
   String showMe = this.textArea.getText();
   //拼接增加记录的Sql
   String addSql = "insert into userTable values('"+username+"', '"+password1+"', '"+sex+"',"
     + " '"+eat+"', '"+sport+"', '"+sleep+"',"
       + " '"+address+"', '"+showMe+"')";
   //检验数据库中是否已存在的主键相同的记录,如果有则不能插入
   String queSql = "select * from userTable where nameuser = '"+username+"'";
   
   //连接数据库
   try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    conn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=student", "sa", "sa");
    sta = conn.createStatement();
    //校验
    rs = sta.executeQuery(queSql);
    if(rs.next() == true) {
     JOptionPane.showMessageDialog(this, "数据库中已存在此人,不能重复插入");
     return;
    }
    int a = sta.executeUpdate(addSql);
    if(a > 0) {
     JOptionPane.showMessageDialog(this, "恭喜您,提交成功!");
    }
   } catch (ClassNotFoundException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
   } catch (SQLException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
   } finally {
    try {
     if(rs != null) {
      rs.close();
      rs = null;
     }
     if(sta != null) {
      sta.close();
      sta = null;
     }
     if(conn != null) {
      conn.close();
      conn = null;
     }
    } catch (SQLException e1) {
     // TODO Auto-generated catch block
     e1.printStackTrace();
    }
   }
   //清空表单内的数据
   this.naTextField.setText("");
   this.passwordField.setText("");
   this.passwordField2.setText("");
   //默认选择男生
   this.maRadioButton.setSelected(true);
   this.eaCheckBox.setSelected(false);
   this.spCheckBox.setSelected(false);
   this.slCheckBox.setSelected(false);
   this.comboBox.setSelectedItem("西安");
   this.textArea.setText("请在这里写你的自我介绍");
  //重置表单内容*******************************************************
  } else if(e.getSource() == this.reButton) {
   //清空表单内的数据
   this.naTextField.setText("");
   this.passwordField.setText("");
   this.passwordField2.setText("");
   //默认选择男生
   this.maRadioButton.setSelected(true);
   this.eaCheckBox.setSelected(false);
   this.spCheckBox.setSelected(false);
   this.slCheckBox.setSelected(false);
   this.comboBox.setSelectedItem("西安");
   this.textArea.setText("请在这里写你的自我介绍");
   
  }
  
 }
 
}

posted @ 2017-08-19 14:59  StephenChowcai  阅读(2872)  评论(0编辑  收藏  举报