Today is Friday, 13th January 2017

Archive for the ‘How-To’ Category


How To View Hibernate SQL Parameter Values

When using Hibernate, if you log the Hibernate SQL statements, you will see this:

However, for debugging your application, you want to see the actual parameter values in the Hibernate logs. Basically, you want to get rid of the question marks in the Hibernate logs.

You can view the actual parameters by viewing the low-level trace of the Hibernate logs. This is not set up by default. However, we can add log4j to allow us to see these low-level logs.

Here is an overview of the process:

1. Add log4j to your project classpath
2. Add log4j.properties to your “src” directory


Here are the detailed steps:

1. Add log4j to your project classpath

1a. Download log4j v1.2.17 from this link:
http://central.maven.org/maven2/log4j/log4j/1.2.17/log4j-1.2.17.jar

1b. Copy this file to your project’s lib directory

bind-parameters-log4j-jar-file

1c. Right-click your Eclipse project and select Properties

1d. Select Build Path > Libraries > Add JARS…

1e. Select the log4j-1.2.17.jar file from the lib directory

bind-parameters-log4j-jar-build-path

 

2. Add log4j.properties to your “src” directory

2a. Copy the text from below

2b. Save this file in your “src” directory

bind-parameters-log4j-properties

Note: This file has an important setting:

This allows you see a low-level trace of Hibernate and this allows you see the real SQL parameter values.


Now run your application. You will see a lot of low-level TRACE logs in the Eclipse Console window.

Right-click in the Eclipse Console window and select Find/Replace…

Search for: binding parameter

You will see the logs with the real parameter values. Congrats!

bind-parameters-output

Share


JDBC and MySQL: Getting rid of the dreaded message – WARN: Establishing SSL connection without server’s identity verification is not recommended

When connecting to a MySQL database, you may encounter this scary warning message.

Thu Feb 04 14:49:25 IST 2016 WARN: Establishing SSL connection without server’s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn’t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false’. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

Your app will continue to work fine … it is just the MySQL database yelling at you.

To get rid of the warning message. Append ?useSSL=false to the end of your database connection string.

For example,

Replace – jdbc:mysql://localhost:3306/demo

With – jdbc:mysql://localhost:3306/demo?useSSL=false

Note that I appended ?useSSL=false to the end.

That will get rid of the pesky message … whew!

Share


FAQ: What is the difference between JSF and JSP?

In a nutshell, JSP is suitable for small web projects and JSF is best for large scale enterprise projects.

JSP is an older technology … but it is still viable for smaller web apps. I like to use it for training since it is very similar to PHP. Most Java newbies can pick it up with no problem because it is simple and straight-forward.

Think of JSP as your low-end, economy car. It will get you to your destination but no special bells and whistles. It is ike flying “economy/coach” class.

If you are building a modern, large-scale, enterprise app then I’d recommend JSF. The framework provides data binding, validation, bean support etc.

Think of JSF as your luxury vehicle. It will get you to your destination in style … however with additional up-front luxury costs. It is like flying “first class”.

Hopefully this helps.

 

Share