java链接数据库通过EXE程序修改

分类:N07_Java

标签:

package com.wpf;


import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;



public class UpdateTest {

    public static List<Account> get_url(ResultSet rs) throws SQLException {

        //3. 定义sql
        List<Account> list = new ArrayList<>();

        while (rs.next()){
            Account account = new Account();
            int id = rs.getInt("id");
            String name = rs.getString("name");
            account.setId(id);
            account.setName(name);
            list.add(account);
        };
        //System.out.println(list);
        return list;
    }

    public static void JFrames(){


        //创建窗体对象
        JFrame jf = new JFrame();

        jf.setTitle("聊天室");
        jf.setSize(400, 300);
        jf.setDefaultCloseOperation(3);
        jf.setLocationRelativeTo(null);
        jf.setAlwaysOnTop(true);
        jf.setLayout(null);

        //显示聊天信息的文本域
        JTextArea messageArea = new JTextArea();
        messageArea.setBounds(10, 10, 360, 200);
        jf.add(messageArea);

        //输入聊天信息的文本框
        JTextField messageField = new JTextField();
        messageField.setBounds(10, 230, 180, 20);
        jf.add(messageField);

        //发送按钮
        JButton sendButton = new JButton("发送");
        sendButton.setBounds(200, 230, 70, 20);
        jf.add(sendButton);

        //清空聊天按钮
        JButton clearButton = new JButton("清空聊天");
        clearButton.setBounds(280, 230, 100, 20);
        jf.add(clearButton);

        sendButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //获取文本框的内容
                String message2 = messageField.getText();
//                messageField.setText("");

                //每次发送的文本内容不带前后空格
//                String message = messageField.getText();
//                message = message.trim();
                String message = messageField.getText().trim(); //链式调用
                messageField.setText("");
                //把文本框的内容发送到文本域中
                try {
                    toUptest(message2);
                } catch (SQLException ex) {
                    ex.printStackTrace();
                }
//                message= message+":"+list;
//                messageArea.setText(message);
                //多次发送的内容在文本域以追加的方式呈现
                messageArea.append(message+"\n");
            }
        });

        clearButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                //清空聊天就是把文本域的内容设置为空
                messageArea.setText("");
            }
        });

        jf.setVisible(true);
    }

    // 1. 创建一个静态方法来获取数据库连接
    public static Connection getDatabaseConnection() {
        // 数据库连接的URL、用户名、密码
        String url = "jdbc:mysql://127.0.0.1:3306/test";  // 请替换成你的数据库URL
        String username = "root";  // 请替换成你的数据库用户名
        String password = "root";  // 请替换成你的数据库密码

        // 定义Connection对象
        Connection conn = null;

        try {
            // 2. 获取数据库连接
            conn = DriverManager.getConnection(url, username, password);
            System.out.println("数据库连接成功");
        } catch (SQLException e) {
            System.out.println("数据库连接失败");
            e.printStackTrace();
        }

        return conn; // 返回连接对象
    }


    public static void toUptest(String name) throws SQLException {
        Connection conn = getDatabaseConnection();
        //5. 执行sql
        String sql = "update roles set name = '"+name+"' where id = 2";
        //String sql = "update roles set name = 'admin44' where id = 2";
        //4. 获取执行sql的对象 Statement
        Statement stmt = conn.createStatement();
        //5. 执行sql
        try {
            // ============开启事务==========
            conn.setAutoCommit(false);
            //5. 执行sql
            int count1 = stmt.executeUpdate(sql);//受影响的行数
            //6. 处理结果
            System.out.println(count1);
            // ============提交事务==========
            //程序运行到此处,说明没有出现任何问题,则需求提交事务
            conn.commit();
        } catch (Exception e) {
            // ============回滚事务==========
            //程序在出现异常时会执行到这个地方,此时就需要回滚事务
            conn.rollback();
            e.printStackTrace();
        }

        //7. 释放资源
        stmt.close();
        conn.close();

    }

//    public static void conn(){
//        String username = "root";
//        String password = "root";
//        String url = "jdbc:mysql://127.0.0.1:3306/test";
//        Connection conn = DriverManager.getConnection(url, username, password);
//        //String sql = "update roles set name = 'admin33' where id = 2";
//        String sql = "select * from roles";
//        //4. 获取执行sql的对象 Statement
//        Statement stmt = conn.createStatement();
//        //5. 执行sql
//        //5. 执行sql
//        ResultSet rs = stmt.executeQuery(sql);
//
//////        url =
////        String res;
//        List<Account> list = get_url(rs);
//        System.out.println("list:");
//        System.out.println(list);
//        stmt.close();
//        conn.close();
//    }



    public static void main(String[] args) throws Exception {
        //1. 注册驱动
        //Class.forName("com.mysql.jdbc.Driver");
        //2. 获取连接
        JFrames();

    }
}


修改内容