• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    IDEA 链接Mysql数据库并执行查询操作的完整代码

     1、先写个 Mysql 的链接设置页面

    package com.wretchant.fredis.menu.mysql;
    
    import com.intellij.notification.NotificationType;
    import com.intellij.openapi.actionSystem.AnAction;
    import com.intellij.openapi.actionSystem.AnActionEvent;
    import com.wretchant.fredis.gui.dialog.TableDialog;
    import com.wretchant.fredis.util.NotifyUtils;
    import com.wretchant.fredis.util.PropertiesUtils;
    import org.jetbrains.annotations.NotNull;
    
    import javax.swing.*;
    import java.util.Map;
    import java.util.Properties;
    
    /**
     * @author Created by 谭健 on 2020/8/26. 星期三. 15:24.
     * © All Rights Reserved.
     */
    public class MysqlConfig extends AnAction {
    
        @Override
        public void actionPerformed(@NotNull AnActionEvent event) {
    
            Properties properties = PropertiesUtils.readFromSystem();
            if (properties != null) {
                TableDialog.TableField build = TableDialog.TableField.build(properties.stringPropertyNames());
                TableDialog dialog = new TableDialog("Mysql 连接配置", build);
                for (int i = 0; i  dialog.getLabels().size(); i++) {
                    JLabel label = dialog.getLabels().get(i);
                    JTextField textField = dialog.getInputs().get(i);
                    String property = properties.getProperty(label.getText());
                    textField.setText(property);
                }
                dialog.show();
                if (dialog.isOK()) {
                    MapString, String> valueMap = dialog.getValueMap();
                    valueMap.forEach(properties::setProperty);
                    PropertiesUtils.write2System(properties);
                }
            } else {
                NotifyUtils.notifyUser(event.getProject(), "读取配置文件失败,配置文件不存在", NotificationType.ERROR);
            }
        }
    
    }

    2、然后简单的写个 JDBC 操作数据库的支持类

    package com.wretchant.fredis.support;
    
    import cn.hutool.core.util.StrUtil;
    import com.intellij.notification.NotificationType;
    import com.intellij.openapi.actionSystem.AnActionEvent;
    import com.intellij.openapi.actionSystem.PlatformDataKeys;
    import com.intellij.openapi.editor.SelectionModel;
    import com.wretchant.fredis.util.ClipboardUtils;
    import com.wretchant.fredis.util.NotifyUtils;
    import com.wretchant.fredis.util.PropertiesUtils;
    import com.wretchant.fredis.value.StringValue;
    import org.apache.commons.lang.StringUtils;
    import org.jetbrains.annotations.NotNull;
    
    import java.sql.*;
    import java.util.*;
    
    /**
     * @author Created by 谭健 on 2020/8/12. 星期三. 17:42.
     * © All Rights Reserved.
     */
    public class Mysql {
    
    
        /**
         * 执行查询语句的返回结果
         */
        public static class Rs {
    
            public Rs(ListMapString, Object>> r) {
                this.r = r;
                this.count = r.size();
            }
    
            private ListMapString, Object>> r = new ArrayList>();
    
            private int count;
    
            public ListMapString, Object>> getR() {
                return r;
            }
    
            public void setR(ListMapString, Object>> r) {
                this.r = r;
            }
    
            public int getCount() {
                return count;
            }
    
            public void setCount(int count) {
                this.count = count;
            }
    
            public MapString, Object> one() {
                if (Objects.isNull(r) || r.isEmpty()) {
                    return null;
                }
                return r.get(0);
            }
    
    
            public Object oneGet(String key) {
                return one().get(key);
            }
        }
    
    
        // 参考: https://www.cnblogs.com/jyroy/p/9637149.html
    
        public static class JDBCUtil {
    
    
            /**
             * 执行sql 并返回 map 数据
             *
             * @param sql
             * @return
             */
            public static Rs rs(String sql) {
                Connection connection = null;
                Statement statement = null;
                ResultSet resultSet = null;
                ListMapString, Object>> r = new ArrayList>();
                try {
                    connection = Mysql.DatabaseUtils.getConnection();
                    statement = connection.createStatement();
                    resultSet = statement.executeQuery(sql);
    
                    // 基础信息
                    ResultSetMetaData metaData = resultSet.getMetaData();
                    // 返回了多少个字段
                    int columnCount = metaData.getColumnCount();
    
    
                    while (resultSet.next()) {
                        MapString, Object> valueMap = new LinkedHashMap>();
                        for (int i = 0; i  columnCount; i++) {
                            // 这个字段是什么数据类型
                            String columnClassName = metaData.getColumnClassName(i);
                            // 字段名称
                            String columnName = metaData.getColumnName(i);
                            Object value = resultSet.getObject(columnName);
                            valueMap.put(columnName, value);
                        }
                        r.add(valueMap);
                    }
                } catch (Exception e1) {
                    NotifyUtils.notifyUser(null, "error", NotificationType.ERROR);
                    e1.printStackTrace();
                } finally {
                    release(connection, statement, resultSet);
                }
                return new Rs(r);
            }
    
            public static ResultSet es(String sql) {
                Connection connection;
                Statement statement;
                ResultSet resultSet = null;
                try {
                    connection = Mysql.DatabaseUtils.getConnection();
                    statement = connection.createStatement();
                    resultSet = statement.executeQuery(sql);
                } catch (Exception e1) {
                    NotifyUtils.notifyUser(null, "error", NotificationType.ERROR);
                    e1.printStackTrace();
                }
                return resultSet;
            }
    
    
            public static void release(Connection connection, Statement st, ResultSet rs) {
                closeConn(connection);
                closeRs(rs);
                closeSt(st);
            }
    
            public static void closeRs(ResultSet rs) {
                try {
                    if (rs != null) {
                        rs.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                } finally {
                    rs = null;
                }
            }
    
            private static void closeSt(Statement st) {
                try {
                    if (st != null) {
                        st.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                } finally {
                    st = null;
                }
            }
    
            private static void closeConn(Connection connection) {
                try {
                    if (connection != null) {
                        connection.close();
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                } finally {
                    connection = null;
                }
            }
    
        }
    
        public static class DatabaseUtils {
            private static Connection connection = null;
    
            static {
                Properties properties = PropertiesUtils.readFromSystem();
                try {
                    if (properties != null) {
                        Class.forName("com.mysql.cj.jdbc.Driver");
                        connection = DriverManager.getConnection(
                                properties.getProperty("mysql.url"),
                                properties.getProperty("mysql.username"),
                                properties.getProperty("mysql.password")
                        );
                        NotifyUtils.notifyUser(null, "数据库连接成功", NotificationType.INFORMATION);
                    }
                } catch (Exception e) {
                    NotifyUtils.notifyUser(null, "数据库连接失败", NotificationType.ERROR);
                    e.printStackTrace();
                }
            }
    
            public static Connection getConnection() {
                return connection;
            }
        }
    
    
        public static void exec(@NotNull AnActionEvent event, Template template) {
            StringValue stringValue = new StringValue(template.getDefaultValue());
            Optional.ofNullable(event.getData(PlatformDataKeys.EDITOR)).
                    ifPresent(editor -> {
                        SelectionModel selectionModel = editor.getSelectionModel();
                        String selectedText = selectionModel.getSelectedText();
                        if (StringUtils.isNotBlank(selectedText)) {
                            stringValue.setValue(StrUtil.format(template.getDynamicValue(), selectedText));
                        }
                    });
            ClipboardUtils.clipboard(stringValue.getValue());
            NotifyUtils.notifyUser(event.getProject(), stringValue.getValue(), NotificationType.INFORMATION);
        }
    
        /**
         * sql 语句模版
         */
        public enum Template {
    
            SELECT("SELECT * FROM x WHERE 1 = 1 AND ", "SELECT * FROM {} WHERE 1 = 1 AND ", "查询语句"),
            UPDATE("UPDATE x SET x = x WHERE 1 = 1 AND ", "UPDATE {} SET x = x WHERE 1 = 1 AND ", "更新语句"),
            DELETE("DELETE FROM x WHERE 1 = 1 ", "DELETE FROM {} WHERE 1 = 1 ", "删除语句"),
            INSERT("INSERT INTO * (x) VALUES (x) ", "INSERT INTO {} (x) VALUES (x) ", "新增语句"),
            ;
    
            Template(String defaultValue, String dynamicValue, String describe) {
                this.defaultValue = defaultValue;
                this.dynamicValue = dynamicValue;
                this.describe = describe;
            }
    
            public String getDynamicValue() {
                return dynamicValue;
            }
    
            public String getDefaultValue() {
                return defaultValue;
            }
    
            public String getDescribe() {
                return describe;
            }
    
            /**
             * 模版内容:默认值
             */
            private final String defaultValue;
            /**
             * 动态内容
             */
            private final String dynamicValue;
            /**
             * 内容描述
             */
            private final String describe;
    
    
        }
    
    }

    3、写个测试连接的类#xff0c;测试一下 mysql 是否可以正常链接

    package com.wretchant.fredis.menu.mysql;
    
    import com.intellij.notification.NotificationType;
    import com.intellij.openapi.actionSystem.AnAction;
    import com.intellij.openapi.actionSystem.AnActionEvent;
    import com.wretchant.fredis.support.Mysql;
    import com.wretchant.fredis.util.NotifyUtils;
    import org.jetbrains.annotations.NotNull;
    
    import java.sql.ResultSet;
    
    /**
     * @author Created by 谭健 on 2020/9/15. 星期二. 10:17.
     * © All Rights Reserved.
     */
    public class MysqlConn extends AnAction {
    
    
        @Override
        public void actionPerformed(@NotNull AnActionEvent event) {
            try {
                ResultSet es = Mysql.JDBCUtil.es("select 1 as ct");
                es.next();
                int ct = es.getInt("ct");
                if (ct == 1) {
                    NotifyUtils.notifyUser(null, "连接是正常的", NotificationType.INFORMATION);
                } else {
                    NotifyUtils.notifyUser(null, "连接不正常", NotificationType.ERROR);
                }
                Mysql.JDBCUtil.closeRs(es);
            } catch (Exception e1) {
                e1.printStackTrace();
                NotifyUtils.notifyUser(null, "连接不正常", NotificationType.ERROR);
            }
        }
    }

    以上就是IDEA 链接Mysql数据库并执行查询操作的完整代码的详细内容,更多关于IDEA 链接Mysql执行查询操作 的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • 使用Intellij IDEA查看Java源码技巧
    • IntelliJ IDEA 小技巧之Bookmark(书签)的使用
    • 详解IDEA 中使用Maven创建项目常见错误和使用技巧(推荐)
    • IntelliJ IDEA插件EasyCode安装方法与使用技巧
    • IntellJ IDEA神器使用技巧(小结)
    • 利用Intellij Idea连接远程服务器实现远程上传部署功能
    • 快速使用IDEA图形化界面连接Phoenix的方法
    • IDEA 如何控制编辑左侧的功能图标ICON(操作步骤)
    • 强烈推荐这些提升代码效率的IDEA使用技巧
    上一篇:MySQL 覆盖索引的优点
    下一篇:MySQL 存储过程的优缺点分析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    IDEA 链接Mysql数据库并执行查询操作的完整代码 IDEA,链接,Mysql,数据库,并,