色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

IDEA 鏈接Mysql數據庫并執行查詢操作的完整代碼

瀏覽:39日期:2023-10-18 08:41:51

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()) {Map<String, String> valueMap = dialog.getValueMap();valueMap.forEach(properties::setProperty);PropertiesUtils.write2System(properties); }} else { NotifyUtils.notifyUser(event.getProject(), '讀取配置文件失敗,配置文件不存在', NotificationType.ERROR);} }}

IDEA 鏈接Mysql數據庫并執行查詢操作的完整代碼

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(List<Map<String, Object>> r) { this.r = r; this.count = r.size();}private List<Map<String, Object>> r = new ArrayList<>();private int count;public List<Map<String, Object>> getR() { return r;}public void setR(List<Map<String, Object>> r) { this.r = r;}public int getCount() { return count;}public void setCount(int count) { this.count = count;}public Map<String, 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; List<Map<String, 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()) { Map<String, 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數據庫并執行查詢操作的完整代碼的詳細內容,更多關于IDEA 鏈接Mysql執行查詢操作 的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 国产精品亚洲一区二区在线观看 | 国产综合第一页 | 亚洲午夜精品一级在线播放放 | 国产成人精品女人不卡在线 | 91精品国产综合久久欧美 | 国产午夜永久福利视频在线观看 | 欧美一级特黄aa大片 | 国产制服 国产制服一区二区 | 国产成人精品一区二三区 | 欧美1区二区三区公司 | 欧美一级做一a做片性视频 欧美一级做一级爱a做片性 | 一级一级特黄女人精品毛片 | 玖玖视频精品 | 日本手机在线视频 | 亚洲片在线观看 | 免费高清欧美一区二区视频 | 黄视频免费在线 | 日本免费一区二区三区三州 | 在线观看免费国产成人软件 | 精品国产三级v | 纯欧美一级毛片_免费 | 九九九国产在线 | 国产日产精品_国产精品毛片 | 国产精品永久免费视频观看 | 国产一区二区三区在线观看免费 | 国产系列 视频二区 | 亚洲国产精品网 | 日韩不卡一二三区 | www.黄色片| 99久久精品免费 | 亚洲综合色视频在线观看 | 久久se精品一区精品二区 | 女人张开腿让男人桶视频免费大全 | 韩国精品一区二区三区四区五区 | 国产成人综合久久精品亚洲 | 亚洲免费视频网站 | 欧美性色生活片免费播放 | 国产男女在线观看 | 国内精品久久久久久久星辰影视 | 99久久精品免费看国产免费 | 怡红院免费播放全部视频 |