Advant ORM

Object/Relational Mapping Framework that provide data persistence (via JDBC) to simplify developer work with RDBMS

License

License

Categories

Categories

Ant Build Tools ORM Data
GroupId

GroupId

io.advant
ArtifactId

ArtifactId

advant-orm
Last Version

Last Version

1.0
Release Date

Release Date

Type

Type

jar
Description

Description

Advant ORM
Object/Relational Mapping Framework that provide data persistence (via JDBC) to simplify developer work with RDBMS
Project URL

Project URL

https://github.com/advantio/advant-orm
Project Organization

Project Organization

Advant I/O
Source Code Management

Source Code Management

http://github.com/advantio/advant-orm.git

Download advant-orm

How to add to project

<!-- https://jarcasting.com/artifacts/io.advant/advant-orm/ -->
<dependency>
    <groupId>io.advant</groupId>
    <artifactId>advant-orm</artifactId>
    <version>1.0</version>
</dependency>
// https://jarcasting.com/artifacts/io.advant/advant-orm/
implementation 'io.advant:advant-orm:1.0'
// https://jarcasting.com/artifacts/io.advant/advant-orm/
implementation ("io.advant:advant-orm:1.0")
'io.advant:advant-orm:jar:1.0'
<dependency org="io.advant" name="advant-orm" rev="1.0">
  <artifact name="advant-orm" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.advant', module='advant-orm', version='1.0')
)
libraryDependencies += "io.advant" % "advant-orm" % "1.0"
[io.advant/advant-orm "1.0"]

Dependencies

test (8)

Group / Artifact Type Version
junit : junit jar 4.12
org.postgresql : postgresql jar 9.4.1208.jre7
mysql : mysql-connector-java jar 5.1.6
org.apache.derby : derby jar 10.12.1.1
org.hsqldb : hsqldb jar 2.3.4
com.h2database : h2 jar 1.4.192
org.xerial : sqlite-jdbc jar 3.8.11.2
net.sourceforge.jtds : jtds jar 1.3.1

Project Modules

There are no modules declared in this project.

Advant ORM

Build Status
Maven Repository: advant-orm-1.0.jar
Wiki: User Guide 1.0
Documentation: Javadocs 1.0
License: Apache 2.0

Getting Started

This is the simplest ORM (Object Relational Mapping) to work with all popular databases (RDBMS)

  • Mysql
  • Postgres
  • SQLite
  • H2
  • HSQLDB
  • Derby
  • Oracle
  • DB2

Prerequisites

You must comply with these requirements before implement Advant ORM in your application:

  • JVM >= 7
  • JDBC dependencies correctly configured in your project
  • Database correctly installed and accessible with your credentials

Example with Mysql

Create a db schema if you haven't yet

CREATE DATABASE advantorm;

Create table with ID (AUTO_INCREMENT) and VERSION columns

CREATE TABLE person
(
  id BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
  version BIGINT DEFAULT NULL,
  name varchar(255) NOT NULL,
);

Create Table class extending io.advant.orm.AbstractTable with @Table and @Column annotations

@Table(name = "person")
public class PersonTable extends AbstractTable {
    @Column(name = "name")
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

Create Entity class extending PersonTable and implementing io.advant.orm.Entity

public class PersonEntity extends Personable implements Entity {}

Create DAO interface extending io.advant.orm.DAO with generics

public interface PersonDAO<T> extends DAO<T> {}

Create DAO implementation class extending io.advant.orm.AbstractDAO and generics configured with entity class

public class PersonDAOImpl extends AbstractDAO<PersonEntity> implements PersonDAO<PersonEntity> {}

Configure advantorm.properties file with entities, database credentials and parameters

db.type=mysql
db.host=localhost
db.port=3306
db.database=advantorm
db.user=root
db.password=
entity.1=com.example.entity.PersonEntity

Now you can select() insert() update() and delete() from Person table

public static void main() throws ConnectionException, OrmException {
    // Load DB instance from advantorm.properties
    DB db = DBFactory.getInstance();
    
    // Initialize DAO with DBConnection
    PersonDAO<PersonEntity> dao = new PersonDAOImpl(db.getConnection());
    
    //Create your entity and set values
    PersonEntity entity = new PersonEntity();
    entity.setName("Marco");
    
    // test DAO functionality
    dao.insert(entity);
    dao.find(1L);
    entity.setName("Marco2");
    dao.update(entity);
    dao.delete(entity);
    
    // Disconnect
    DB.getInstance().disconnect();
}

You can also use io.advant.orm.GenericDAO by using entity on fly without create DAOs for each entity

Insight

if you want to increase your Advant ORM knowledge follow this link

Versions

Version
1.0