[![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. Clone the repo
```sh
git clone https://github.com/gnmyt/sqltoolkit.git
```
2. Move the project into a package of your project (in most cases "sql")
3. Ready! Have fun
#### Maven coming soon
### 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 standard SQL query
- Get a ResultSet
```java
connection.getResultSet("default query", "parameters");
```
- Perform an update
```java
connection.update("query", "parameters");
```
3. Get something from a table with managers
1. Getting a Result (For one result)
```java
String value = connection.getResult("query", "parameters")
.getString("column");
```
2. Getting Results (For more than one)
```java
ArrayList list = connection.getResult("query", "parameters")
.getList("column");
```
3. Choosing Results
```java
connection
.selectFrom("table")
.where("column", "value")
.limit(10)
.getResult();
```
4. Choosing Results + Print the current statement
```java
connection.select()
.from("table")
.where("column", "value")
.add("LIMIT 2,5")
.printStatement();
```
4. Perform an update using managers
1. Update a Table
```java
connection
.update()
.toTable("table")
.where("column", "value")
.set("column", "newValue")
.update();
```
2. Generate a Table
```java
connection
.update()
.generateTable("table")
.useID()
.addField(new SQLField(SQLType.STRING, "column", 999))
.addField(new SQLField(SQLType.STRING, "column2", 25))
.create();
```
## 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