Fragment is a Java library for working with SQL-type databases.
Features ✅
- Easy to use
- Simple SQL queries
- SQL queries with callback
- Transactions
- Uses prepared statements
- Easily works with database pools
To use it, it is recommended to create a separate class and initialize the database with a static field.
First, configure the database configuration.
public static DatabaseConfig DB_CONFIG = new DatabaseConfig.Builder() .setHost("localhost") .setPort(3306) .setUser("root") .setPassword("") .setDatabaseName("test_db") .build();
By default:
Key | Value |
---|---|
databaseType | mysql |
host | 127.0.0.1 (localhost) |
port | 3306 |
user | root |
password | (empty) |
databaseName | test_db |
Param | Value |
---|---|
autoReconnect | true |
useSSL | true |
serverTimeZone | UTC |
Example with advanced setup
public static DatabaseConfig DB_CONFIG = new DatabaseConfig.Builder() .setDatabaseType("mysql") .setHost("database.test.host") .setPort(3307) .setUser("admin") .setPassword("adminTestPass") .setDatabaseName("videos") .setParams( new SQLParam("serverTimeZone", "UTC"), new SQLParam("autoReconnect", true)) .build();
Next, initialize the database.
public static Database MYSQL_DATABASE = new Mysql(DB_CONFIG);
public static Database DATABASE = new Hikari(DB_CONFIG, new HikariConfig2() .addProperty("cachePrepStmts","true") .addProperty("prepStmtCacheSize","250") .addProperty("prepStmtCacheSqlLimit","2048"));
Create new instance of the SQL module
public static ModuleSQL SQL = new ModuleSQL(DATABASE);
We can import the static SQL module
In my case, it's:
import static ua.juniffiro.sql.lib.test.Data.SQL;
Then we can send the SQL query
SQL.async("CREATE TABLE IF NOT EXISTS `video` (id int(11), name varchar(36))");
We can also use a callback SQL query
SQL.asyncQuery(con -> con.prepareStatement("SELECT * FROM `videos`"), new Callback<ResultSet>() { @Override public void onSuccess(ResultSet rs) throws SQLException { while (rs.next()) { System.out.println(rs.getString("title")); } } @Override public void onFail(Throwable throwable) { throwable.printStackTrace(); } });
At the end of the program you need to call the shutdown method.
SQL.shutdown();
Full example you can find in example package.
Fragment is an open source project distributed under the Apache License 2.0
- Download the latest build from releases
- Read the FAQ and examples
- Enjoy!
Fragment is in beta release.