Java笔记-JDBC心跳检测及断开重连线程实例
生活随笔
收集整理的這篇文章主要介紹了
Java笔记-JDBC心跳检测及断开重连线程实例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這里自己寫了個JDBC心跳檢測及斷開重連線程:
運行截圖如下:
心跳的時候運行ipconfig /release
然后再給他ipconfig /renew回去:
?關鍵代碼如下:
Maven:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.10.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.oracle</groupId><artifactId>ojdbc8</artifactId><version>18.6.0.0</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>ThreadConfig.java
@Configuration public class ThreadConfig {@Beanpublic HeartThread heartThread(){HeartThread heartThread = new HeartThread();heartThread.setHeartSqlCmd("select * from v$version");return heartThread;} }JDBCService.java
@Service public class JDBCService {static String urlString = "jdbc:oracle:thin:@//192.168.1.102:1521/orcl";static String userName = "xxxxxx";static String passWord = "xxxxxx";private static Connection connection = null;private static Statement stmt = null;static {try {//連接connection = DriverManager.getConnection(urlString, userName, passWord);stmt = connection.createStatement();} catch (SQLException e) {//記錄日志e.printStackTrace();}}public static void reConnection(){try {//連接connection = DriverManager.getConnection(urlString, userName, passWord);stmt = connection.createStatement();} catch (SQLException e) {//記錄日志e.printStackTrace();}}public void executeSQLCmd(String sql) throws SQLException, StrException {if(connection == null){throw new StrException("connection為null,趕緊退出");}if(stmt == null){throw new StrException("stmt為null,趕緊退出");}ResultSet rs = stmt.executeQuery(sql);if(rs == null){}else{rs.close();}} }HeartThread.java
public class HeartThread extends Thread {@AutowiredJDBCService jdbcService;private String heartSqlCmd = null;public void setHeartSqlCmd(String heartSqlCmd) {this.heartSqlCmd = heartSqlCmd;}@SneakyThrows@Overridepublic void run() {while (true){try{jdbcService.executeSQLCmd(heartSqlCmd);System.out.println(Thread.currentThread() + ":" + "連接正常");}catch (Exception e){//e.printStackTrace();//記錄日志//重連System.out.println(Thread.currentThread() + ":" + "心跳檢測斷開正在重連");JDBCService.reConnection();}Thread.sleep(1000 );}} }?
源碼打包下載地址如下:
https://github.com/fengfanchen/Java/tree/master/heartLink
?
總結
以上是生活随笔為你收集整理的Java笔记-JDBC心跳检测及断开重连线程实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt文档阅读笔记-Simple Anch
- 下一篇: Java笔记-JDK搭建WebServi