How to log transactions details in Spring Boot

To log transactions details in a Spring Boot application simply add the following settings in application.properties: logging.level.ROOT=INFO logging.level.org.springframework.orm.jpa=DEBUG logging.level.org.springframework.transaction=DEBUG logging.level.org.hibernate.engine.transaction.internal.TransactionImpl=DEBUG

How to log HikariCP details in Spring Boot

To log HikariCP details simply add in application.properties the following settings: logging.level.com.zaxxer.hikari.HikariConfig=DEBUG logging.level.com.zaxxer.hikari=DEBUG  If you need a deeper level of details then replace DEBUG with TRACE.

Retrieving a file from a jar file

JAR file in Java is a compressed format and is used for packaging of the deliverables. At times, you may want to manipulate this file.Below example indicates a scenario for the same. import java.util.jar.*;import java.io.*; public class RetrievingJarEntry{   public static void main(String args[])   {      RetrievingJarEntry retrievingJarEntry = new RetrievingJarEntry();      retrievingJarEntry.proceed();   }      private void proceed()   {      String sourceJarFile = “files/contacts.jar”;      String sourceFile = “2.txt”;      String destFile = “files/new2.txt”;      try{                  JarFile jarFile = new JarFile(sourceJarFile);         JarEntry jarEntry = jarFile.getJarEntry(sourceFile);         System.out.println(“Found entry: ” + jarEntry);         if ( jarEntry != null)         {            //Getting the jarEntry into the inputStream            InputStream inputStream = jarFile.getInputStream(jarEntry);             //Creating a output stream to a new file of our choice            FileOutputStream fileOutputStream = new java.io.FileOutputStream(destFile);            System.out.println(“Attempting to create file: ” + destFile);            while (inputStream.available()  0)             {                 fileOutputStream.write(inputStream.read());            }            System.out.println(“Created file: ” + destFile);            fileOutputStream.close();            inputStream.close();         }      }catch(IOException ioe)      {         System.out.println(“Exception: ” + ioe);      }   }} /* Expected output: [root@mypc]# java RetrievingJarEntryFound entry: 2.txtAttempting to create file: files/new2.txtCreated file: files/new2.txt */ //Please note: You have to create a folder with name files and a jar file contacts.jar which has files 1.txt, 2.txt and 3.txt

Navigating an enum

Enums are predefined place holders in Java. Knowing the contents of an enum will be handy in many instancesLet us look at how to navigate the elements of an enum public class NavigatingAnEnum{   public static void main(String args[])   {      NavigatingAnEnum navigatingAnEnum = new NavigatingAnEnum();      navigatingAnEnum.proceed();   }      enum Criteria {      LOW,      MEDIUM,      HIGH   }      private void proceed()   {      System.out.println(“Elements of the enum Criteria…”);      for (Criteria criteria : Criteria.values()) {         System.out.println(criteria);      }   }} /* Expected output: [root@mypc]# java NavigatingAnEnumElements of the enum Criteria…LOWMEDIUMHIGH */

Understandng java.net.PasswordAuthentication

PasswordAuthentication holds the data that will be used by the Authenticator. The username and password are stored in the PasswordAuthentication object. The methods getUserName() and getPassword() are made available that return the userName and password respectively. import java.net.PasswordAuthentication; public class UnderstandingPasswordAuthentication{   public static void main(String args[])   {      UnderstandingPasswordAuthentication understandingPasswordAuthentication = new UnderstandingPasswordAuthentication();      understandingPasswordAuthentication.proceed();   }      private void proceed()   {      //Initializing the user name      String userName = “devUser”;      //Initializing the password – This is a char array since the PasswordAuthentication supports this argument      char[] password = {‘d’,’e’,’v’,’U’,’s’,’e’,’r’};            PasswordAuthentication passwordAuthentication = new PasswordAuthentication(userName, password);      System.out.println(“Details being retrieved from PasswordAuthentication object post initializing”);      System.out.println(“UserName: ” + passwordAuthentication.getUserName());      //The below getPassword actually returns the reference to the password as per the Java API documentation.      System.out.println(“Password: ” + passwordAuthentication.getPassword());      //You can get the password in normal string       System.out.println(“Password: ” + String.copyValueOf(passwordAuthentication.getPassword()));   }} /* Expected output: [root@mypc]# java UnderstandingPasswordAuthenticationDetails being retrieved from PasswordAuthentication object post initializingUserName: devUserPassword: [C@15db9742Password: devUser */

Understandng HashMap.getOrDefault() method

HashMap is a class which which facilitates storing data in the form a key value pair. One thing to note of HashMap is that this is not synchronized and has to be used with caution in multi threaded environment. We may find cases where the key is not present and we maybe trying to perform operations using the key. Following method will help us in using a default value when the key in question is not available in the avaialble set of data. import java.util.HashMap; public class UnderstandingHashmapGetOrDefault{   public static void main(String args[])   {      UnderstandingHashmapGetOrDefault understandingHashmapGetOrDefault = new UnderstandingHashmapGetOrDefault();      understandingHashmapGetOrDefault.proceed();   }      private void proceed()   {      HashMap hashMap = initHashMap();      int currencyId = 12;      System.out.println(“Value of currency ” + currencyId + ” is ” + hashMap.getOrDefault(currencyId, “Unknown”));      currencyId = 100;      System.out.println(“Value of currency ” + currencyId + ” is ” + hashMap.getOrDefault(currencyId, “Unknown”));   }    private HashMap initHashMap() {      //HashMap declaration with 2 arguments (Integer and String)      HashMap hashMapCurrency = new HashMap();      //Adding predefined contents to the HashMap      hashMapCurrency.put(10, “Ten Dollars”);      hashMapCurrency.put(20, “Twenty Dollars”);      hashMapCurrency.put(50, “Fifty Dollars”);      hashMapCurrency.put(100, “Hundred Dollars”);      hashMapCurrency.put(200, “Two Hundred Dollars”);      return hashMapCurrency;   }   } /* Expected output: [root@mypc]# java UnderstandingHashmapGetOrDefaultValue of currency 12 is UnknownValue of currency 100 is Hundred Dollars */

Understandng toExactInt method in java.lang.Math package

java.lang.Math has numerous methods and our interest here is toIntExact() method.Consider the following example public class MathExact{   public static void main(String args[])   {      MathExact mathExact = new MathExact();      mathExact.proceed();   }      private void proceed()   {      long l = 100000000;      int i = (int) l;       System.out.println(“i: ” + i);            System.out.println(“Math.toIntExact(“+l+”);: ” + Math.toIntExact(l));   }} /* Expected output: [root@mypc]# java MathExacti: 100000000Math.toIntExact(100000000);: 100000000 */

Find error log location

It is quite easy to find the error log location through a quick query such as : SELECT SERVERPROPERTY(‘ErrorLogFileName’) AS ‘Error log file location’   This shows where your Error log file is stored


DBCC SHRINKDATABASE The command shrinks the size of the data and log files in a database. Here is a small example: DBCC SHRINKDATABASE (Database_Name, 10);  –This allows for 10 percent free space in the database.