Skip to content

Mapepire-IBMi/mapepire-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mapepire Java Client SDK

Maven Central Maven Build License

Overview

mapepire-java is a Java client SDK that leverages the mapepire-server to provide a new and convenient way to access Db2 on IBM i.

Full Documentation: https://mapepire-ibmi.github.io

Setup

Requirements

  • Java 8 or later

Install with maven

Add mapepire-sdk as a dependency in your project and make sure to use the latest version on the Maven Central Repository:

<dependency>
    <groupId>io.github.mapepire-ibmi</groupId>
    <artifactId>mapepire-sdk</artifactId>
    <version>0.1.2</version>  <!-- Use the latest version -->
</dependency>

Server Component Setup

In order for applications to use Db2 for i through this Java client SDK, the mapepire-server daemon must be installed and started-up on each IBM i. Follow the instructions here to learn about the installation and startup process of the server component.

Example Usage

The following Java program initializes a DaemonServer object that will be used to connect with the Server Component. A single SqlJob object is created to facilitate this connection from the client side. A query object is then initialized with a simple SELECT query which is finally executed with 3 rows being fetched and the results being printed.

Note

To run this Java program, replace the credentials which are passed into the DaemonServer object.

package io.github.app;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

import io.github.mapepire_ibmi.Query;
import io.github.mapepire_ibmi.SqlJob;
import io.github.mapepire_ibmi.types.DaemonServer;
import io.github.mapepire_ibmi.types.QueryResult;

public final class App {
    public static void main(String[] args) throws Exception {
        // Initialize credentials
        DaemonServer creds = new DaemonServer("HOST", 8076, "USER", "PASSWORD");

        // Create a single job and connect
        SqlJob job = new SqlJob();
        job.connect(creds).get();

        // Initialize and execute query
        Query query = job.query("SELECT * FROM SAMPLE.DEPARTMENT");
        QueryResult<Object> result = query.execute(3).get();

        // Close query and job
        query.close().get();
        job.close();

        // Convert to JSON string and output
        ObjectMapper mapper = new ObjectMapper();
        mapper.enable(SerializationFeature.INDENT_OUTPUT);
        String jsonString = mapper.writeValueAsString(result);
        System.out.println(jsonString);
    }
}

Output:

{
  "id" : "query3",
  "success" : true,
  "error" : null,
  "sql_rc" : 0,
  "sql_state" : null,
  "execution_time" : 174,
  "metadata" : {
    "column_count" : 5,
    "columns" : [ 
      { "display_size" : 3, "label" : "DEPTNO", "name" : "DEPTNO", "type" : "CHAR", "precision" : 3, "scale" : 0 },
      { "display_size" : 36, "label" : "DEPTNAME", "name" : "DEPTNAME", "type" : "VARCHAR", "precision" : 36, "scale" : 0 },
      { "display_size" : 6, "label" : "MGRNO", "name" : "MGRNO", "type" : "CHAR", "precision" : 6, "scale" : 0 },
      { "display_size" : 3, "label" : "ADMRDEPT", "name" : "ADMRDEPT", "type" : "CHAR", "precision" : 3, "scale" : 0 },
      { "display_size" : 16, "label" : "LOCATION", "name" : "LOCATION", "type" : "CHAR", "precision" : 16, "scale" : 0 }
    ],
    "job" : "058971/QUSER/QZDASOINIT",
    "parameters" : null
  },
  "is_done" : false,
  "has_results" : true,
  "update_count" : -1,
  "data" : [ 
    { "DEPTNO" : "A00", "DEPTNAME" : "SPIFFY COMPUTER SERVICE DIV.", "MGRNO" : "000010", "ADMRDEPT" : "A00", "LOCATION" : null },
    { "DEPTNO" : "B01", "DEPTNAME" : "PLANNING", "MGRNO" : "000020", "ADMRDEPT" : "A00", "LOCATION" : null },
    { "DEPTNO" : "C01", "DEPTNAME" : "INFORMATION CENTER", "MGRNO" : "000030", "ADMRDEPT" : "A00", "LOCATION" : null }
  ],
  "parameter_count" : 0,
  "output_parms" : null
}

Sample Projects

Check out all the Java Sample Projects that showcase how this client SDK can be used in various applications.

About

Mapepire Java Client SDK

Resources

License

Code of conduct

Contributing

Stars

5 stars

Watchers

2 watching

Forks

Packages

 
 
 

Contributors

Languages