# Step 1: Database Definition

> The first step in using the eXtremeDB Java Native Interface (JNI) is to define the classes that you’ll want to manage in the eXtremeDB database. The JNI uses the Java class syntax, with annotations. At run-time, Java reflection is used to discover the classes with their annotations and build up an eXtremeDB database dictionary. Once created, the dictionary is subsequently used by the eXtremeDB runtime. Therefore, Java reflection is a one-time event when the database is first created or opened.

> SDK sample `samples/java/open/Open` illustrates how to open a simple In-Memory database. The database class is annotated with `@Persistent` to indicate that this class is to be managed by the eXtremeDB runtime. For example:

>         @Persistent // Class will be stored in eXtremeDB database
>         class OpenObj
>         {
>             int i4;
>         };