[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
MySQL Toolkit
## About The Project
This is a small project for quickly managing a MySQL database in Java. It makes everyday life with a database much easier.
### Installation
1. Add the jitpack repository to your `pom.xml`
```xml
jitpack.io
https://jitpack.io
```
2. Add the dependency to your `pom.xml`
```xml
com.github.gnmyt
sqltoolkit
master-SNAPSHOT
```
### Usage Examples
1. Create a connection
- Example of a constructor without optional specifications
```java
MySQLConnection connection = new MySQLConnection(hostname, username, password, database).connect();
```
- Example of a constructor with optional login parameters
```java
MySQLConnection connection = new MySQLConnection(hostname, username, password, database, LoginParam.AUTO_RECONNECT, LoginParam.NO_SSL).connect();
```
#### Login Parameters
- DEFAULT *(useSSL=false&autoReconnect=true&useUnicode=yes&characterEncoding=UTF-8&useTimezone=true&serverTimezone=UTC)*
- NO_SSL *(useSSL=false)*
- USE_SSL *(useSSL=true)*
- AUTO_RECONNECT *(autoReconnect=true)*
- UTF8_ENCODING *(characterEncoding=UTF-8)*
- USE_UNICODE *(useUnicode=yes)*
- USE_TIMEZONE *(useTimezone=true)*
- TIMEZONE_UTC *(serverTimezone=UTC)*
2. Perform a default SQL query
- Get a ResultSet
```java
connection.getResultSet("SELECT * FROM example WHERE test = ?", "test1");
```
- Perform an update
```java
connection.update("UPDATE example SET test = ? WHERE abc = ?", "test1", "test2");
```
3. Get something from a table with managers
1. Getting a string from the table
```java
String value = connection.getResult("query", "parameters")
.getString("column");
```
2. Getting a list from the table
```java
ArrayList list = connection.getResult("query", "parameters")
.getList("column");
```
or
```java
ArrayList> list = connection.getResult("query", "parameters")
.getList();
```
4. Choosing Results
```java
connection
.selectFrom("table")
.where("column", "value")
.limit(10)
.getResult();
```
5. Choosing Results with custom parameters
```java
connection.select()
.from("table")
.where("column", "value")
.add("LIMIT 2,5")
.getResult();
```
4. Perform an update using managers
1. Update a Table
```java
connection
.updateTo("table")
.where("column", "value")
.set("column", "newValue")
.execute();
```
2. Generate a Table
```java
connection
.generateTable("table")
.addField(SQLType.STRING, "column", 999)
.addField(SQLType.STRING, "column2", 25)
.create();
```
3. Delete something from a table
```java
connection
.deleteFrom("table")
.where("column", "value")
.execute();
```
5. The use of the table factory
1. Create a new table class
```java
import de.gnmyt.SQLToolkit.drivers.MySQLConnection;
import de.gnmyt.SQLToolkit.storage.SQLTable;
public class ExampleTable extends SQLTable {
public ExampleTable(MySQLConnection connection) {
super(connection);
}
@Override
protected String tableName() {
return "example";
}
@Override
protected void tableFields() {
string("column1", 255, "default");
string("colum2", 100, "test2");
integer("colum3", 2, "");
}
public void addSomething() {
insert()
.value("column1", "test")
.value("colum3", 52)
.execute();
}
public void deleteUser() {
delete()
.where("column1", "test")
.execute();
}
}
```
2. Register your table
```java
connection.getTableFactory().register(new ExampleTable(connection));
```
3. Now you can access your table from everywhere
```java
((ExampleTable) connection.getTableFactory().getTable(ExampleTable.class))
.addSomething();
```
6. The use of the table factory with storage mediums
1. Create a new storage medium class
```java
import de.gnmyt.SQLToolkit.drivers.MySQLConnection;
import de.gnmyt.SQLToolkit.storage.SQLStorageMedium;
public class ExampleStorage extends SQLStorageMedium {
public ExampleStorage(MySQLConnection connection) {
super(connection);
}
@Override
protected String tableName() {
return "example_storage";
}
}
```
2. Register your storage
```java
connection.getTableFactory().register(new ExampleStorage(connection));
```
3. Now you can access your storage medium from everywhere.
Try something like that:
```java
SQLStorageMedium storage = connection.getTableFactory().getStorage(ExampleStorage.class);
storage.insert("username", "test");
String username = storage.get("username");
storage.delete("username");
storage.insertOrUpdate("version", "1.0.0");
storage.getEntries();
```
## License
Distributed under the MIT License. See `LICENSE` for more information.
## End
Currently there are not many features yet, so feel free to write me some suggestions!
[contributors-shield]: https://img.shields.io/github/contributors/gnmyt/sqltoolkit.svg?style=for-the-badge
[contributors-url]: https://github.com/gnmyt/sqltoolkit/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/gnmyt/sqltoolkit.svg?style=for-the-badge
[forks-url]: https://github.com/gnmyt/sqltoolkit/network/members
[stars-shield]: https://img.shields.io/github/stars/gnmyt/sqltoolkit.svg?style=for-the-badge
[stars-url]: https://github.com/gnmyt/sqltoolkit/stargazers
[issues-shield]: https://img.shields.io/github/issues/gnmyt/sqltoolkit.svg?style=for-the-badge
[issues-url]: https://github.com/gnmyt/sqltoolkit/issues
[license-shield]: https://img.shields.io/github/license/gnmyt/sqltoolkit.svg?style=for-the-badge
[license-url]: https://github.com/gnmyt/sqltoolkit/blob/master/LICENSE.txt