JAVA基础一大堆0810数据库小练习

实现了对数据库的增删改查基本功能,代码如下:
建立数据库文件demo后

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class SQLManager {
    // 单例设计模式
    private Statement statement;
    private static SQLManager manager;
    //  防止多线程产生多个对象
    public static synchronized SQLManager newInstance() {
        if (manager == null) {
            manager = new SQLManager();
        }
        return manager;
    }

    private SQLManager() {
        // 连接数据库的驱动
        String driver = "com.mysql.jdbc.Driver";
        // URL指向要访问的数据库名
        String url = "jdbc:mysql://localhost:3306/clazz";
        // MySQL配置时的用户名
        String user = "root";
        // Java连接MySQL配置时的密码
        String password = "10312517";
        try {
            // 加载驱动
            Class.forName(driver);
            // 与数据库建立连接
            Connection conn = DriverManager.getConnection(url, user, password);
            if (!conn.isClosed()) {
                // 数据库操作类
                statement = conn.createStatement();

            } else {
                System.out.println("请打开数据库");
            }
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    public Statement getStatement() {
        return statement;
    }

    public void setStatement(Statement statement) {
        this.statement = statement;
    }
}

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JLabel;

public class Register extends JFrame {

    private JPanel contentPane;
    private JTextField textAreaUserName;
    private JTextField textAreaPassword;
    private JButton btnSelect;
    private JTextField textFieldScreen;
    private JButton buttonDelete;
    private String userName;
    private String password;
    private JButton btnUpdate;
//  private Statement state;
    private JTextField textFieldUpdate;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Register frame = new Register();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public Register() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 368, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);

        textAreaUserName = new JTextField();
        textAreaUserName.setBounds(127, 20, 155, 23);
        contentPane.add(textAreaUserName);
        textAreaUserName.setColumns(10);

        textAreaPassword = new JTextField();
        textAreaPassword.setBounds(127, 53, 155, 23);
        contentPane.add(textAreaPassword);
        textAreaPassword.setColumns(10);

        JButton btnAdd = new JButton("\u589E\u52A0");
        btnAdd.setBounds(52, 86, 74, 23);
        contentPane.add(btnAdd);
        btnAdd.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                String userName = textAreaUserName.getText();
                // 用正则表达式限制输入名称
                // Pattern p =
                // Pattern.compile("([a-z]|[A-Z]|[0-9]|[\\u4e00-\\u9fa5])+");
                // Matcher m = p.matcher(userName);
                // boolean b = m.matches();
                // if (!b) {
                // UserName.setText("用户名格式有错误");
                // String s = UserName.getText();
                // System.out.println(s);
                // }
                String password = textAreaPassword.getText();
                Statement state = SQLManager.newInstance().getStatement();
                String sql = "select * from demo where name='" + userName + "'";
                try {
                    ResultSet set = state.executeQuery(sql);
                    set.last();
                    int num = set.getRow();// 返回num是第几行
                    System.out.println(num);
                    if (num > 0) {
                        // if (!b) {
                        // UserName.setText("用户名格式有错误");
                        // String s = UserName.getText();
                        // System.out.println(s);
                        // } else {
                        System.out.println("该记录已存在");
                        // }
                    } else {
                        String register = "insert into demo(name,password)values('" + userName + "','" + password
                                + "')";
                        state.execute(register);
                        System.out.println("增加记录成功");
                    }
                } catch (SQLException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }

        });

        JLabel lblUser = new JLabel("user");
        lblUser.setBounds(63, 24, 54, 15);
        contentPane.add(lblUser);

        JLabel lblPassword = new JLabel("password");
        lblPassword.setBounds(52, 57, 60, 15);
        contentPane.add(lblPassword);

        btnSelect = new JButton("\u67E5\u627E");
        btnSelect.setBounds(52, 119, 74, 23);
        contentPane.add(btnSelect);
        btnSelect.addActionListener(new ActionListener() {
            // 查找记录
            @Override
            public void actionPerformed(ActionEvent e) {
                String userName = textAreaUserName.getText();
                Statement state = SQLManager.newInstance().getStatement();
                String sql = "select * from demo where name='" + userName + "'";
                try {
                    ResultSet set = state.executeQuery(sql);
                    set.last();
                    int num = set.getRow();
                    System.out.println(num);
                    if (num == 1) {
                        System.out.println("查找成功");
                    } else {
                        System.out.println("查找失败");
                    }
                    String password = set.getString("password");
                    textFieldScreen.setText(password);

                } catch (SQLException e1) {
                    e1.printStackTrace();
                }
            }
        });

        textFieldScreen = new JTextField();
        textFieldScreen.setBounds(179, 86, 103, 23);
        contentPane.add(textFieldScreen);
        textFieldScreen.setColumns(10);

        buttonDelete = new JButton("\u5220\u9664");
        buttonDelete.setBounds(52, 152, 74, 23);
        contentPane.add(buttonDelete);
        buttonDelete.addActionListener(new ActionListener() {
            //删除记录内容
            @Override
            public void actionPerformed(ActionEvent e) {
                userName=textAreaUserName.getText();
                String delete = "delete from demo where name='" + userName + "'";
                try {
                    Statement state=SQLManager.newInstance().getStatement();
                    state.execute(delete);
                    System.out.println("删除本条记录");
                } catch (SQLException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
            }
        });


        btnUpdate = new JButton("\u4FEE\u6539");
        btnUpdate.setBounds(52, 185, 74, 23);
        contentPane.add(btnUpdate);

        btnUpdate.addActionListener(new ActionListener() {
            //更改记录内容
            @Override
            public void actionPerformed(ActionEvent e) {
                textFieldScreen.setText("");
                Statement state=SQLManager.newInstance().getStatement();
                String idName=textAreaUserName.getText();
                String upPassword =textFieldUpdate.getText();
//              textFieldUpdate.setText(upPassword);
                String update="update demo set password='"+upPassword+"' where name='"+idName+"'";
                try {
                    state.execute(update);
                } catch (SQLException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }
                textFieldScreen.setText(upPassword);
                System.out.println("修改记录成功");
            }
        });
        textFieldUpdate = new JTextField();
        textFieldUpdate.setBounds(179, 186, 103, 21);
        contentPane.add(textFieldUpdate);
        textFieldUpdate.setColumns(10);
    }
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值