Browse Source

Basic database function

feature-db-basic
LO Kam Tao Leo 3 years ago
parent
commit
a5aa9f4aa1
  1. 14
      pom.xml
  2. 7
      src/main/java/org/leolo/nrdatad/App.java
  3. 8
      src/main/java/org/leolo/nrdatad/ConfigurationManager.java
  4. 7
      src/main/java/org/leolo/nrdatad/db/DatabaseManager.java
  5. 30
      src/main/java/org/leolo/nrdatad/db/mariadb/DatabaseManager.java
  6. 3
      src/test/java/org/leolo/nrdatad/db/test/DatabaseManager.java

14
pom.xml

@ -14,8 +14,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
@ -96,6 +96,16 @@
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>

7
src/main/java/org/leolo/nrdatad/App.java

@ -78,5 +78,12 @@ public class App {
return;
}
config.getDatabaseManager().initPool();
if(config.getDatabaseManager().checkConnection())
log.atInfo().log("Database connected!");
else{
log.atFatal().log("Unable to connect to database.");
System.exit(1);
return;
}
}
}

8
src/main/java/org/leolo/nrdatad/ConfigurationManager.java

@ -9,6 +9,7 @@ import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.*;
import java.util.function.BiConsumer;
public final class ConfigurationManager {
private static ConfigurationManager instance;
@ -116,4 +117,11 @@ public final class ConfigurationManager {
prop.clear();
}
public Object getOrDefault(Object key, Object defaultValue) {
return prop.getOrDefault(key, defaultValue);
}
public void forEach(BiConsumer<? super Object, ? super Object> action) {
prop.forEach(action);
}
}

7
src/main/java/org/leolo/nrdatad/db/DatabaseManager.java

@ -1,6 +1,13 @@
package org.leolo.nrdatad.db;
import java.sql.Connection;
import java.sql.SQLException;
public interface DatabaseManager {
public void initPool();
public boolean checkConnection();
public Connection getConnection() throws SQLException;
}

30
src/main/java/org/leolo/nrdatad/db/mariadb/DatabaseManager.java

@ -5,6 +5,8 @@ import org.apache.logging.log4j.Logger;
import org.leolo.nrdatad.ConfigurationManager;
import org.mariadb.jdbc.MariaDbPoolDataSource;
import java.sql.*;
public class DatabaseManager implements org.leolo.nrdatad.db.DatabaseManager{
Logger logger = LogManager.getLogger();
private MariaDbPoolDataSource ds;
@ -26,5 +28,33 @@ public class DatabaseManager implements org.leolo.nrdatad.db.DatabaseManager{
":"+conf.getProperty("db.port", "3306")+
"/"+conf.getProperty("db.name");
logger.atDebug().log("URL={}",url);
try {
ds = new MariaDbPoolDataSource(url);
ds.setMinPoolSize(1);
ds.setMaxPoolSize(Integer.parseInt(conf.getOrDefault("db.poolsize", "20").toString()));
ds.setUser(conf.getProperty("db.user").toString());
ds.setPassword(conf.getProperty("db.pwd").toString());
} catch (SQLException e) {
logger.atFatal().withThrowable(e).log("Cannot connect to DB");
System.exit(-2);
}
}
@Override
public boolean checkConnection() {
try(
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT 1")
){
return rs.next();
}catch(SQLException e){
return false;
}
}
@Override
public Connection getConnection() throws SQLException{
return ds.getConnection();
}
}

3
src/test/java/org/leolo/nrdatad/db/test/DatabaseManager.java

@ -1,8 +1,7 @@
package org.leolo.nrdatad.db.test;
public class DatabaseManager implements org.leolo.nrdatad.db.DatabaseManager {
public class DatabaseManager {
@Override
public void initPool() {
}

Loading…
Cancel
Save