自己用纯Java写的这款Mysql客户端工具美哭了,求收藏~
生活随笔
收集整理的這篇文章主要介紹了
自己用纯Java写的这款Mysql客户端工具美哭了,求收藏~
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
背景
2022年著實有點忙,但是我依然堅持不放下編寫代碼,又苦于不寫什么?再上半年的一場直播課準備中,一個短暫而宏偉的目標閃現到我的腦海,就是編寫幾個純Java的軟件。于是從3月份就開始著實計劃實施。終于折騰出來了,現在分享給大家。
我先分享軟件的界面,再給大家說說軟件實現的原理!
下載地址
-
軟件支持Windwos 版本、Mac版本
-
下載地址:bg-boom-ui
軟件特點
-
純Java開發
-
免費使用
直入美圖,期望大家多多支持
支持背景美圖,支持本地圖片、網絡圖片等
支持視頻背景,支持TV、廣播、小視頻、直播流等
支持皮膚+背景圖切換,海量圖片可在軟件中獲取
默認的界面,簡潔清晰
功能支持
-
基本實現了Navicat的常用功能
-
更多功能還在陸續開發,敬請期待~
軟件的實現原理
軟件通過Mysql的Jdbc驅動類進行實現,區別于其它軟件基于Mysql通訊協議實現。
核心實現的連接管理實現如下(由于時間關系這里暫沒有實現長連接):
package com.madou.dbtool.mysql.manager;import com.madou.inters.util.TipUtils;import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.HashMap; import java.util.Map;/*** 管理多個數據庫的數據源* @author miukoo*/ public class ConnectionManagerFactory {private static final Map<String, Connection> CONNECTION_MAP = new HashMap<>();/*** 最大連接次數*/private static final int maxRetry = 2;public static Connection getConnection(ConnectionInfo connectionInfo,String database) {return getConnection(connectionInfo, database, 0);}/*** 獲取連接,并最多獲取三次* @param connectionInfo* @param database* @param count* @return*/private static Connection getConnection(ConnectionInfo connectionInfo,String database,int count) {if(count>maxRetry) {return null;}String id = String.format("%s-%s-%s",connectionInfo.getHost(),connectionInfo.getPort(),database);Connection connection = CONNECTION_MAP.get(id);if(connection==null) {try {String url = String.format("jdbc:mysql://%s:%d/%s?useUnicode=true&characterEncoding=UTF-8&connectTimeout=500", connectionInfo.getHost(), connectionInfo.getPort(), database);Class.forName("com.mysql.cj.jdbc.Driver");connection = DriverManager.getConnection(url, connectionInfo.getUsername(), connectionInfo.getPassword());} catch (Exception e) {if(count==maxRetry){TipUtils.showErrorDialog("獲取數據庫連接失敗:"+e.getMessage(),"Tips");}else if(count<maxRetry) {return getConnection(connectionInfo, database,count+1);}}}else{try {if(connection.isClosed()){connection=null;if(count<maxRetry) {return getConnection(connectionInfo, database,count+1);}}} catch (SQLException e) {e.printStackTrace();}}CONNECTION_MAP.put(id,connection);return connection;} }總結
以上是生活随笔為你收集整理的自己用纯Java写的这款Mysql客户端工具美哭了,求收藏~的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络第6章(应用层)
- 下一篇: Atitit.java swing打印功