Java code generator for calling PL/SQL.

Overview

OBridge

PayPal donate button

OBridge provides a simple Java source code generator for calling Oracle PL/SQL package procedures.

Supported input, output parameters and return values are:

  • BINARY_INTEGER
  • BOOLEAN
  • CHAR
  • CLOB
  • BLOB
  • DATE
  • NCHAR
  • NUMBER
  • NVARCHAR2
  • OBJECT - Oracle Object Type
  • PLS_INTEGER
  • TABLE - Table of Oracle Object Type
  • TIMESTAMP
  • VARCHAR2
  • RAW

The following types cannot be implemented, because JDBC driver does not supports them:

  • Types declared in source code
  • %ROWTYPE parameters

Generated code compiles with Java 1.6.

Usage

Download the latest version from releases.

After downloading, create an XML configuration file:

<configuration>
	<jdbcUrl>jdbc:oracle:thin:scott/tiger@localhost:1521:xe</jdbcUrl> <!-- jdbc connection string for obridge -->
	<sourceOwner>SCOTT</sourceOwner> <!-- owner of the database objects -->
	<sourceRoot>.</sourceRoot> <!-- where to generate sources - related to this configuration file -->
	<rootPackageName>hu.obridge.test</rootPackageName> <!-- root Java package, generator builds the directory structure -->
	<packages>
		<entityObjects>objects</entityObjects> <!-- object types are going to this package -->
		<converterObjects>converters</converterObjects> <!-- converter util classes are going to this package -->
		<procedureContextObjects>context</procedureContextObjects> <!-- procedure parameter entities are going to this package -->
		<packageObjects>packages</packageObjects> <!-- procedure calling utility classes are going to this package -->
	</packages>
</configuration>

Run the generator:

java -jar obridge.jar -c <obridge-config.xml>

OBridge connects to the specified database and generates the required classes.

Calling a PL/SQL procedure

For example you have the following PL/SQL code:

Create Or Replace Package simple_procedures is
  Function simple_func(a In Varchar2,
					   b In Out Varchar2,
					   c Out Varchar2) Return Number;
End simple_procedures;

Generated source:

public class SimpleProcedures {
	public static SimpleProceduresSimpleFunc simpleFunc(String a, String b,  Connection connection) throws SQLException { ... }
}

You can call the SimpleProcedures.simpleFunc method:

SimpleProceduresSimpleFunc ret = SimpleProcedures.simpleFunc("hello", "world", conn); // conn is the database connection

Return object will hold the input and output parameters, converted to Java types.

public class SimpleProceduresSimpleFunc {

	private BigDecimal functionReturn;
	private String a;
	private String b;
	private String c;
	
	// getters, setters

}
Comments
  • Support for Functions or don't generate source code

    Support for Functions or don't generate source code

    OBridge creates function calls, e.g. for:

    create or replace function execFunction(pNumber in out number, pInText in varchar2, pOutText out varchar2) return varchar2 is
      res varchar2(200);
      nr number := pNumber;
    begin
      pOutText := 'Out: '|| pOutText ||' In: '|| pInText;
    
      pNumber := pNumber + pNumber;
    
      return 'IN-Param Nr: '|| nr;
    end execFunction;
    

    But the generated code:

    CallableStatement ocs = connection.prepareCall(                "" +
                            "DECLARE " +
                            "BEGIN " +
                            "  \"EXECFUNCTION\"( " +
                            "    \"PNUMBER\" => :PNUMBER" +
                            "   ,\"PINTEXT\" => :PINTEXT" +
                            "   ,\"POUTTEXT\" => :POUTTEXT" +
                            "   );" +
                            "END;" +
                            "");
    

    doesn't work because it doesn't recognize the return value. And you don't support OUT parameter in your call!

    Simply ignore functions and OUT parameter functions/procedures, because your project description:

    code generator for calling Oracle PL/SQL package procedures

    doesn't contain functions - or support both :)

    bug 
    opened by rjahn 9
  • Generated converter code `getObjectList(Array array)` missing `null` parameter handling

    Generated converter code `getObjectList(Array array)` missing `null` parameter handling

    There are non-exception cases wherein procedures' out-table-types are returned null. The generated code's array.getResultSet(); throws NullPointerException:

        public static List<TheObjectType> getObjectList(Array array) throws SQLException {
            List<TheObjectType> result = new ArrayList<TheObjectType>();
            ResultSet rs = null;
            try {
                rs = array.getResultSet();
                while (rs.next()) {
                    result.add(TheObjectTypeConverter.getObject((Struct) rs.getObject(2)));
                }
            } finally {
                if (rs != null) {
                    rs.close();
                }
            }
            return result;
        }
    

    Please add:

            if (array == null) {
                return null;
            }
    

    so:

        public static List<TheObjectType> getObjectList(Array array) throws SQLException {
            if (array == null) {
                return null;
            }
            List<TheObjectType> result = new ArrayList<TheObjectType>();
            ResultSet rs = null;
            try {
                rs = array.getResultSet();
                while (rs.next()) {
                    result.add(TheObjectTypeConverter.getObject((Struct) rs.getObject(2)));
                }
            } finally {
                if (rs != null) {
                    rs.close();
                }
            }
            return result;
        }
    
    bug 
    opened by jpbaking 2
  • Bump log4j-core from 2.14.1 to 2.17.0 in /obridge-main

    Bump log4j-core from 2.14.1 to 2.17.0 in /obridge-main

    Bumps log4j-core from 2.14.1 to 2.17.0.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump log4j-api from 2.14.1 to 2.17.0 in /obridge-main

    Bump log4j-api from 2.14.1 to 2.17.0 in /obridge-main

    Bumps log4j-api from 2.14.1 to 2.17.0.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump log4j-core from 2.14.1 to 2.16.0 in /obridge-main

    Bump log4j-core from 2.14.1 to 2.16.0 in /obridge-main

    Bumps log4j-core from 2.14.1 to 2.16.0.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump log4j-api from 2.14.1 to 2.16.0 in /obridge-main

    Bump log4j-api from 2.14.1 to 2.16.0 in /obridge-main

    Bumps log4j-api from 2.14.1 to 2.16.0.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump log4j-core from 2.14.1 to 2.15.0 in /obridge-main

    Bump log4j-core from 2.14.1 to 2.15.0 in /obridge-main

    Bumps log4j-core from 2.14.1 to 2.15.0.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump log4j-api from 2.14.1 to 2.15.0 in /obridge-main

    Bump log4j-api from 2.14.1 to 2.15.0 in /obridge-main

    Bumps log4j-api from 2.14.1 to 2.15.0.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump xstream from 1.4.15 to 1.4.18 in /obridge-main

    Bump xstream from 1.4.15 to 1.4.18 in /obridge-main

    Bumps xstream from 1.4.15 to 1.4.18.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump xstream from 1.4.15 to 1.4.17 in /obridge-main

    Bump xstream from 1.4.15 to 1.4.17 in /obridge-main

    Bumps xstream from 1.4.15 to 1.4.17.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump commons-io from 2.5 to 2.7 in /obridge-main

    Bump commons-io from 2.5 to 2.7 in /obridge-main

    Bumps commons-io from 2.5 to 2.7.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Table of table of <> is not supported?

    Table of table of <> is not supported?

    Hi, Here're my db objects:

    CREATE OR REPLACE TYPE tt_dummmy AS OBJECT ( id NUMBER ) /

    CREATE OR REPLACE TYPE tt_dummmy_arr as table of tt_dummmy /

    CREATE OR REPLACE TYPE tt_dummmy_arr_arr as table of tt_dummmy_arr /

    CREATE OR REPLACE TYPE tt_dummmy_type AS OBJECT ( dummy NUMBER, arr tt_dummmy_arr_arr ) /

    CREATE OR REPLACE PACKAGE get_dummy AS FUNCTION get RETURN tt_dummmy_type; END; /

    CREATE OR REPLACE PACKAGE BODY get_dummy AS FUNCTION get RETURN tt_dummmy_type IS BEGIN RETURN tt_dummmy_type(dummy => 1, arr => tt_dummmy_arr_arr(tt_dummmy_arr(tt_dummmy(42)))); END; END; /

    Select works:

    SELECT get_dummy.get FROM dual;

    When those objects are converted to Java, I get references to TtDummmyArrConverter, which is not automatically created.

    bug enhancement 
    opened by eriksaleksans 1
  • should use all_procedures instead of user procedures

    should use all_procedures instead of user procedures

    Requirements:

    • should use all procedures instead of user procedures, etc.
    • should put the schema name in the call string, if it is not the same as the connected username.
    • schemas/users should be configurable to scan for executable procedures.
    • if nothing is configured, should only generate procedures for connected user
    • should work the same for types
    • type names should begin with username if it is not the connected users type
    enhancement 
    opened by karsany 0
Releases(v1.4)
  • v1.4(Oct 15, 2018)

    Final version of OBridge v1.4

    • ojdbc version change
    • mustache version change
    • new obridge.xml parameters: packagesLike and sourceOwner
    • new ARRAY() --> connection.createOracleArray()
    • obridge-maven-plugin works again is dev. env.
    • java version change: 1.6 -> 1.8 (generated code is still 1.6 compatible)
    Source code(tar.gz)
    Source code(zip)
    obridge.jar(6.61 MB)
  • v1.3.1(Mar 16, 2017)

  • v1.3(Jan 23, 2017)

    Final version of OBridge 1.3

    • some code cleaning and refactoring
    • support for RAW and BLOB datatypes
    • configurable logging in xml configuration
        <logging>
            <initializer>private static final java.util.logging.Logger LOGGER = java.util.logging.Logger.getLogger(%s.class.getName());</initializer>
            <method>LOGGER.info</method>
        </logging>
    
    Source code(tar.gz)
    Source code(zip)
    obridge.jar(8.13 MB)
  • v1.2(Apr 2, 2016)

    Final version of OBridge 1.2

    • using Generated annotation in generated files
    • handling list of primitive types fixed + testcase
    • changed exception handling in generated code
    • new type of database calls: [storedprocedure](Datasource ds, [Storedprocedure] ctx)
    • created some new testcases
    • [FIX] #21 code generation for functions: handle return value
    • [DOC] licence header for files
    • some code refactoring
    Source code(tar.gz)
    Source code(zip)
    obridge.jar(8.02 MB)
  • v1.1(Jan 24, 2016)

    Final version of OBridge 1.1

    • generates code for calling procedures and functions not in a plsql package
    • source code refactored
    • generated package classes are final and have a private constructor
    • sonar metrics enhancement
    Source code(tar.gz)
    Source code(zip)
    obridge.jar(5.88 MB)
  • v1.0(May 10, 2015)

  • v1.0-alpha3(Mar 23, 2015)

    • automatic output code formatting (thanks for https://github.com/stephenc/jastyle )
    • handling tables of primitive oracle types #16
    • source code refactor - sonarqube
    • [FIX] #12 (procedures with quotation marks)
    • [FIX] #14 (boolean return values)
    Source code(tar.gz)
    Source code(zip)
    obridge.jar(7.38 MB)
  • v1.0-alpha2(Mar 9, 2015)

    • test cases created for generated code
    • generated code can handle its own database connection
    • spring-jdbc and google guava (Joiner class) dependency removed and replaced with own implemented version - compiled unified jar size decreased
    • handles collection types without the naming convention ..._LIST
    • [FIX] null handling for in/out parameters
    • [FIX] date handling
    • [FIX] column index problem with function returns #11
    Source code(tar.gz)
    Source code(zip)
    obridge.jar(7.31 MB)
  • v1.0-alpha1(Feb 12, 2015)

Owner
Ferenc Karsany
Ferenc Karsany
🚀flink-sql-submit is a custom SQL submission client

??flink-sql-submit is a custom SQL submission client This is a customizable extension of the client, unlike flink's official default client.

ccinn 3 Mar 28, 2022
requery - modern SQL based query & persistence for Java / Kotlin / Android

A light but powerful object mapping and SQL generator for Java/Kotlin/Android with RxJava and Java 8 support. Easily map to or create databases, perfo

requery 3.1k Jan 5, 2023
jOOQ is the best way to write SQL in Java

jOOQ's reason for being - compared to JPA Java and SQL have come a long way. SQL is an "ancient", yet established and well-understood technology. Java

jOOQ Object Oriented Querying 5.3k Jan 4, 2023
jdbi is designed to provide convenient tabular data access in Java; including templated SQL, parameterized and strongly typed queries, and Streams integration

The Jdbi library provides convenient, idiomatic access to relational databases in Java. Jdbi is built on top of JDBC. If your database has a JDBC driv

null 1.7k Dec 27, 2022
A Java library to query pictures with SQL-like language

PicSQL A Java library to query pictures with SQL-like language. Features : Select and manipulate pixels of pictures in your disk with SQL-like dialect

Olivier Cavadenti 16 Dec 25, 2022
A Java library to query pictures with SQL-like language.

PicSQL A Java library to query pictures with SQL-like language. Features : Select and manipulate pixels of pictures in your disk with SQL-like dialect

null 16 Dec 25, 2022
Official repository of Trino, the distributed SQL query engine for big data, formerly known as PrestoSQL (https://trino.io)

Trino is a fast distributed SQL query engine for big data analytics. See the User Manual for deployment instructions and end user documentation. Devel

Trino 6.9k Dec 31, 2022
The official home of the Presto distributed SQL query engine for big data

Presto Presto is a distributed SQL query engine for big data. See the User Manual for deployment instructions and end user documentation. Requirements

Presto 14.3k Dec 30, 2022
CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of machine data in real-time.

About CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of machine data in real-time. CrateDB offers the

Crate.io 3.6k Jan 2, 2023
Persistent priority queue over sql

queue-over-sql This projects implement a persistent priority queue (or a worker queue) (like SQS, RabbitMQ and others) over sql. Why? There are some c

Shimon Magal 13 Aug 15, 2022
SQL tasarım komutları ve Backend yazıldı. Projeye yıldız Vermeyi Unutmayın 🚀 Teşekkürler! ❤️

HumanResourcesManagementSystem-HRMS SQL tasarım komutları ve Backend yazıldı. Projeye yıldız Vermeyi Unutmayın ?? Teşekkürler! ❤️ insan kaynakları yön

samet akca 7 Nov 6, 2022
The public release repository for SUSTech SQL (CS307) course project 2.

CS307 Spring 2021 Database Project 2 1. Source code Download link: For java: https://github.com/NewbieOrange/SUSTech-SQL-Project2-Public For python: h

null 16 Dec 26, 2022
SQL made uagliò.

GomorraSQL is an easy and straightforward interpreted SQL dialect that allows you to write simpler and more understandable queries in Neapolitan Langu

Donato Rimenti 1.1k Dec 22, 2022
Multi-DBMS SQL Benchmarking Framework via JDBC

BenchBase BenchBase (formerly OLTPBench) is a Multi-DBMS SQL Benchmarking Framework via JDBC. Table of Contents Quickstart Description Usage Guide Con

CMU Database Group 213 Dec 29, 2022
HasorDB is a Full-featured database access tool, Providing object mapping,Richer type handling than Mybatis, Dynamic SQL

HasorDB is a Full-featured database access tool, Providing object mapping,Richer type handling than Mybatis, Dynamic SQL, stored procedures, more dialect 20+, nested transactions, multiple data sources, conditional constructors, INSERT strategies, multiple statements/multiple results. And compatible with Spring and MyBatis usage.

赵永春 17 Oct 27, 2022
An open source SQL database designed to process time series data, faster

English | 简体中文 | العربية QuestDB QuestDB is a high-performance, open-source SQL database for applications in financial services, IoT, machine learning

QuestDB 9.9k Jan 1, 2023
Free universal database tool and SQL client

DBeaver Free multi-platform database tool for developers, SQL programmers, database administrators and analysts. Supports any database which has JDBC

DBeaver 29.8k Jan 1, 2023