The Application: Getting Started

Take a look at the basics of the application, what it does, and the SQL queries that the application will be using.

We'll cover the following

The application

The application just starts a standard supervisor without children. This is how it’s done.

-module(bookstore_app).
-behaviour(application).

%% Application callbacks
-export([start/2, stop/1]).

start(_StartType, _StartArgs) ->
    bookstore_sup:start_link().

stop(_State) ->
    ok.

And now for the supervisor. Let’s look at how that works.

The supervisor

This is what our supervisor would look like.

-module(bookstore_sup).
-behaviour(supervisor).

-export([start_link/0]).
-export([init/1]).

start_link() ->
    supervisor:start_link({local, ?MODULE}, ?MODULE, []).

init([]) ->
    bookstore_db:load_queries(),
    {ok, {{one_for_all, 0, 1}, []}}.

Note that bookstore_db:load_queries() gets called. This function is not yet defined. Its role, though, will be to find all the SQL queries within a file we’ll define in priv/queries.sql, which are labeled by name in the comments.

Queries

Get hands-on with 1200+ tech skills courses.