https://github.com/pharosnet/vertx-pg-dal
vertx postgres database access layer
https://github.com/pharosnet/vertx-pg-dal
code-generator dal maven-plugin vertx
Last synced: about 1 month ago
JSON representation
vertx postgres database access layer
- Host: GitHub
- URL: https://github.com/pharosnet/vertx-pg-dal
- Owner: pharosnet
- License: apache-2.0
- Created: 2019-07-26T11:27:31.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2020-10-13T14:57:14.000Z (over 5 years ago)
- Last Synced: 2025-09-11T03:13:51.148Z (9 months ago)
- Topics: code-generator, dal, maven-plugin, vertx
- Language: Java
- Size: 91.8 KB
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# vertx-pg-dal
Postgres database access layer, base on vertx-pg-client (3.8.0).
## Features
* async
* simple
* no reflect-code cost
## usage
* add dependency
```xml
io.vertx
vertx-pg-client
${vertx.version}
org.pharosnet
vertx-pg-dal
1.5.8
```
* update pom.xml
```xml
maven-compiler-plugin
3.8.0
11
11
UTF-8
true
src/main/generatedsrc/test/generated
default-compile
io.vertx.codegen.CodeGenProcessor
org.pharosnet.vertx.pg.dal.gen.PgCodeGenProcessor
src/main/generated
-Acodegen.output=${project.basedir}/src/main
default-testCompile
io.vertx.codegen.CodeGenProcessor
org.pharosnet.vertx.pg.dal.gen.PgCodeGenProcessor
src/test/generated
-Acodegen.output=${project.basedir}/src/test
```
* CREATE A TABLE ROW CLASS
```JAVA
@Table(schema = "CDST", name = "USER")
public class User extends AbstractRow {
@Column(name = "ID", kind = ColumnKind.ID)
private String id;
@Column(name = "data")
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
```
* CREATE A DAL INTERFACE
```java
@Dal
public interface UserDAL extends AbstractDAL {
@Query("select * from \"cdst\".\"user\" where \"id\" = $1 or \"id\" = $2 offset $3 limit $4")
void query01(
@Arg({1, 2}) String id,
@Arg({3})Integer offset,
@Arg({4})Integer length,
Handler>>> handler);
@Query("select * from \"cdst\".\"user\" where \"id\" = $1 ")
void query02(
@Arg({1}) String id,
@Arg({2})Integer offset,
@Arg({3})Integer length,
Handler>> handler);
// support sql placeholder
@Query("select * from \"cdst\".\"user\" where \"id\" = $1 and \"name\" in (%names) offset $2 limit $3")
void query03(
@Arg({1}) String id,
@Arg(kind = ArgKind.PLACEHOLDER) List names,
@Arg({2})Integer offset,
@Arg({3})Integer length,
Handler>>> handler);
}
```
* Get dal from PostgresDALs.
```java
// init postgres dal holder.
PostgresDALs.INIT(client);
// get UserDAL from PostgresDALs
UserDAL dal = PostgresDALs.get(UserDAL.class);
```
* RUN MAVEN COMPILE, THEN IT WILL GENERATE DAL JAVA FILES.
* HAPPY TO USE THEM.
## THANKS
* vertx-pg-client