https://github.com/haducloc/appslandia-common
Java Utilities
https://github.com/haducloc/appslandia-common
cryptography-utilities geography-utilities java-utilities jdbc-utilities jwt-token
Last synced: 6 months ago
JSON representation
Java Utilities
- Host: GitHub
- URL: https://github.com/haducloc/appslandia-common
- Owner: haducloc
- License: mit
- Created: 2023-01-25T22:39:15.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T19:41:03.000Z (6 months ago)
- Last Synced: 2024-10-29T21:40:40.385Z (6 months ago)
- Topics: cryptography-utilities, geography-utilities, java-utilities, jdbc-utilities, jwt-token
- Language: Java
- Homepage:
- Size: 1.83 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Java Utilities
## Features
- Cryptography utilities
- JDBC utilities (Named parameters, Array parameters, LIKE_ANY operator, etc.)
- JPA utilities (Array parameters, LIKE_ANY operator, etc.)
- Record framework for SQL databases
- JSON Web Signature/Json Web Token (HS/RS/ES/PS)
- Geographic utilities (distance, moving, DMS, etc.)
- CSV Utilities
- ToStringBuilder## Installation
### VERSIONS
- [appslandia-common](https://search.maven.org/search?q=a:appslandia-common)
- Java 21### Maven
```XML
com.appslandia
appslandia-common
{LATEST_VERSION}```
### Gradle
```
dependencies {
compile 'com.appslandia:appslandia-common:{LATEST_VERSION}'
}
```## Sample Usage
### ToString Builder
```java
new ToStringBuilder().toString(anyObject);
new ToStringBuilder().setTsDepthLevel(3).toString(anyObject);
new ToStringBuilder().setToOneLine(true).toString(anyObject);
```### JDBC Named Parameters
```java
// Can be reused / thread safe
final SqlQuery query = new SqlQuery("SELECT * FROM User WHERE status=:status");
try (ConnectionImpl conn = new ConnectionImpl(javax.sql.DataSource)) {try (StatementImpl stat = conn.prepareStatement(query)) {
stat.setInt("status", 1); // Named parameter
//
stat.executeQuery();
}
}
```### JDBC Named Array Parameters
```java
final SqlQuery query = new SqlQuery("SELECT * FROM User WHERE type IN :types");
try (ConnectionImpl conn = new ConnectionImpl(javax.sql.DataSource)) {try (StatementImpl stat = conn.prepareStatement(query)) {
// type = 1 OR type = 2
stat.setIntArray("types", 1, 2);
//
stat.executeQuery();
}
}
```### JDBC LIKE_ANY
```java
final SqlQuery query = new SqlQuery("SELECT * FROM User WHERE name LIKE_ANY :names");
try (ConnectionImpl conn = new ConnectionImpl(javax.sql.DataSource)) {try (StatementImpl stat = conn.prepareStatement(query)) {
// name LIKE '%a%' OR name LIKE '%b%'
stat.setLikeAny("names", "a", "b");
//
stat.executeQuery();
}
}
```### Record Framework
```java
try (ConnectionImpl connScoped = new ConnectionImpl(javax.sql.DataSource)) {
try (RecordContext db = new RecordContext()) {// Insert an user into the User table.
db.insert("UserTable", new DataRecord().set("FirstName", fName)
.set("LastName", lName)
.set("Email", email));
// db.update, delete, getRecord, exists, etc.
}
}
```### System.getProperty & getenv
```java
String password = SYS.resolve("{db.password, env.DB_PASSWORD}")
// resolving order: System.getProperty("db.password"), System.getenv("DB_PASSWORD")
```### Geography
```java
GeoLocation loc = new GeoLocation(longitudeX, latitudeY);
GeoLocation loc_east = loc.move(Direction.EAST, 10, DistanceUnit.MILE);
//
double distanceInMiles = loc.distanceTo(loc_east, DistanceUnit.MILE); // ~10 miles
```### JWT
```java
// JoseJsonb or JoseGson.newJsonProcessor() or your implementation
JsonProcessor jsonProcessor = JoseGson.newJsonProcessor();// JwtSigner - HS256/HS384/HS512
JwtSigner jwtSigner =
HsJwtSigner.HS256().setJsonProcessor(jsonProcessor)
.setSecret("secret".getBytes()).setIssuer("Issuer1").build();// OR JwtSigner - ES256/ES384/ES512 - RS256/RS384/RS512 - PS256/PS384/PS512
JwtSigner jwtSigner =
DsaJwtSigner.ES256().setJsonProcessor(jsonProcessor)
.setPrivateKey(privateKey).setPublicKey(publicKey).setIssuer("Issuer1").build();JoseHeader header = jwtSigner.newHeader();
JwtPayload payload = jwtSigner.newPayload().setExp(1, TimeUnit.DAYS);// Sign
String jwt = jwtSigner.sign(new JwtToken(header, payload));// Parse
JwtToken token = jwtSigner.parse(jwt);// Verify
jwtSigner.verify(token);token.getHeader();
token.getPayload();
```### CSV Reader
```java
// Can be reused/thread safe
CsvProcessor csv = new CsvProcessor();// BufferedReader
BufferedReader br = IOUtils.readerBOM("input.csv", "UTF-8");List records = csv.parseRecords(br, record0AsHeader);
records.get(0).getString(0);// getInt(), getBool(), getLocalDate(), ...
```### CSV Export
```java
try (ConnectionImpl conn = new ConnectionImpl(javax.sql.DataSource)) {CsvExporter exporter = new CsvExporter();
exporter.setConnection(conn);
exporter.setCsvOutput("output.csv", "UTF-8");// Set query and parameters
exporter.setPQuery("SELECT * FROM User WHERE type=:type");
exporter.setPQueryParams(new Params().set("type", 1));// Export CSV
exporter.execute();
}
```## License
This code is distributed under the terms and conditions of the [MIT license](LICENSE).