In todays tutorial, we will be setting up a postgreSQL database with a Java Spring Boot rest service.

Before we begin with the Java service, we will need to install PostgreSQL. You can find their latest downloads on their website. When you have downloaded and installed this on your machine, we will then set up the database and table.

First, check your PostgreSQL installation and that it is properly added onto your path. You can test this by opening up a command:

$ psql --version

This should return the version of PostgreSQL installed.

Depending on how you have installed PostgreSQL, you will have a default username and password of postgres.

Log into Postgres to check this, type:

$ psql postgres

postgres=# \du

this will list the current users that are installed. For more information about this, check out this link.

Presuming that is all installed, I will use the username and password Postgres for this tutorial and this will be a default user on the Postgres app for mac.

Log into Postgres with:

$ psql postgres

then, run the following SQL script:

postgres=# CREATE TABLE users (
id char(5),
username varchar(40)
);

This will create a table for users with columns id and username.

In part 2, we will create the Java app that will insert and remove data from the database.

/************************************************************************\
* You are about to change the GPIO settings of your computer. *
* Mess this up and it will stop working! *
* It might be a good idea to 'sync' before running this program *
* so at least you still have your code changes written to the SD-card! *
\************************************************************************/

// Set GPIO pins 7-11 to output
for (g=7; g<=11; g++)
{
INP_GPIO(g); // must use INP_GPIO before we can use OUT_GPIO
OUT_GPIO(g);
}

Unit tests are the smallest part of the application that can be tested and are tested in parts.

Why should I care?

Unit tests are important to show if parts of an application are working in the way they are expected to work. For example, if you had a method called int return4() and you expected 4 to be returned, a unit test is written to validate the method returns 4. If it doesn’t, the test fails and is shown up to the tester if written well.

Where can I start unit testing?

For Spring Boot applications, I would recommend the following tutorial. This integrates a unit test with Spring Boot. I would advise you experiment with the tests and see what you can make.

Have you ever looked at a piece of code, project or application and thought “what on earth is going on here”? I have many times and so have many other developers, so ages ago, Design Patterns were introduced to keep coding clean, and organised.

You probably organise your code already closely to a few design patterns without even realising. Today, I’ll introduce the Factory Pattern as a method of structuring your code.

The Factory Pattern allows objects of similar logic to be created to a common interface.

Summarising the example, you can have a shape factory that creates triangles, squares, circles.

This may seem rather abstract, but for example, you may want to make different types of database connection for customers and want to get their details, which they would have a Customer interface, but a Customer Factory for all the individual details so that they are not exposed to the client.

Spring Boot is a Java framework. Spring Boot shouldn’t be confused with Spring Framework and more information can be found here.

How do I get started?

The Spring Boot webpage is a great place to start. You can install via Maven (or Gradle).

Great, why should I do this?

Spring Boot is great for setting up web services and other applications quickly and without too much complication, but allows the developer to configure parts to make diverse applications without spending too much time setting up the project.

After the previous post to What is Java I will now provide a quick start up to installing Java, so you can start to develop your own applications.

Is Java Development Kit and Java Runtime Environment installed?

To check this, on linux and mac OS open terminal (for Windows, open cmd) and type:

javac -version
This will show the JDK version.

java -version
Will show the JRE version.

Please note – it is important that the JDK and JRE versions match – for example 1.8.X for both, where X can be any number, if it is 1.7.X and 1.8.X for the JDK or JRE (or vice versa), the code will not compile as Java needs to be the same version for compilation as running.

Typically, on a mac, it would be installed. If not, Oracle’s official installation JDK and JRE will provide the information to install it.

Quoting from Wikipedia – Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented.

So, what does that mean?

Java can execute several computations in overlapping time periods – for example, multithreading is used to execute several tasks at the same time.

Java has classes – therefore you can use inheritance and encapsulation.

Java has objects – you can define attributes of the object and use them in the code.

Other Features Developing Java

Java uses a compiler – when developing Java, you need to use a Java Development Kit (JDK) to compile the code into byte code that is run on a Java Virtual Machine (JVM)

Write once, run everywhere – Wikipedia, you can run Java bytecode on any JVM on any machine, what this means is you do not need different flavours of code to run on different systems like Linux and Microsoft – providing they have a JVM, you can run the code on all of them.