如何看idea连接mysql数据库
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()) { Map<String, 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(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 ; &n
|