https://github.com/piotr-kalanski/dbtable2class
Generate Scala case class based on database table metadata
https://github.com/piotr-kalanski/dbtable2class
database generator reverse-engineering scala
Last synced: 6 months ago
JSON representation
Generate Scala case class based on database table metadata
- Host: GitHub
- URL: https://github.com/piotr-kalanski/dbtable2class
- Owner: piotr-kalanski
- License: apache-2.0
- Created: 2017-07-13T18:54:54.000Z (over 8 years ago)
- Default Branch: development
- Last Pushed: 2018-04-19T07:50:59.000Z (almost 8 years ago)
- Last Synced: 2025-06-12T03:52:15.123Z (10 months ago)
- Topics: database, generator, reverse-engineering, scala
- Language: Scala
- Size: 48.8 KB
- Stars: 1
- Watchers: 1
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# dbtable2class
Generate Scala case class based on database table metadata
[](https://api.travis-ci.org/piotr-kalanski/dbtable2class.png?branch=development)
[](http://codecov.io/github/piotr-kalanski/dbtable2class/coverage.svg?branch=development)
[
](http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22dbtable2class_2.11%22)
[](https://waffle.io/piotr-kalanski/dbtable2class)
[](http://www.apache.org/licenses/LICENSE-2.0.txt)
# Table of contents
- [Goals](#goals)
- [Getting started](#getting-started)
- [Examples](#examples)
# Goals
- Generate Scala case class based on database table metadata
# Getting started
## Include dependencies
```scala
"com.github.piotr-kalanski" % "dbtable2class_2.11" % "0.3.1"
```
or
```xml
com.github.piotr-kalanski
dbtable2class_2.11
0.3.1
```
# Examples
## Generate from H2
Example table in H2:
```sql
PEOPLE(
NAME VARCHAR,
AGE INT
)
```
```scala
val url = "jdbc:h2:mem:test"
ClassGenerator.generateClass(url, null, H2Dialect, TableClassMapping(database="TEST", schema="PUBLIC", table="PEOPLE", packageName="com.datawizards.model", className="Person"))
```
Result:
```scala
package com.datawizards.model
case class Person(
NAME: String,
AGE: Int
)
```
## Generate output to directory
```scala
ClassGenerator.generateClassesToDirectory(
"target", url, null, H2Dialect, Seq(
TableClassMapping(database="TEST", schema="PUBLIC", table="T11", packageName="com.datawizards.model", className="Person"),
TableClassMapping(database="TEST", schema="PUBLIC", table="T22", packageName="com.datawizards.model", className="Book")
)
)
```