This repository has been archived on 2025-03-19. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file

Contributors Forks Stargazers Issues MIT License


Logo

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
    <repositories>
       <repository>
          <id>jitpack.io</id>
          <url>https://jitpack.io</url>
       </repository>
    </repositories>
    
  2. Add the dependency to your pom.xml
    <dependency>
         <groupId>com.github.gnmyt</groupId>
         <artifactId>sqltoolkit</artifactId>
         <version>master-SNAPSHOT</version>
    </dependency>
    

Usage Examples

  1. Create a connection
    • Example of a constructor without optional specifications
    MySQLConnection connection = new MySQLConnection(hostname, username, password, database).connect();
    
    • Example of a constructor with optional login parameters
    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
      connection.getResultSet("SELECT * FROM example WHERE test = ?", "test1");
      
    • Perform an update
      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
      String value = connection.getResult("query", "parameters")
                               .getString("column");
      
    2. Getting a list from the table
      ArrayList<String> list = connection.getResult("query", "parameters")
                                         .getList("column");
      
      or
      ArrayList<HashMap<String, Object>> list = connection.getResult("query", "parameters")
                                         .getList();
      
    3. Choosing Results
      connection
            .selectFrom("table")
            .where("column", "value")
            .limit(10)
            .getResult();
      
    4. Choosing Results with custom parameters
      connection.select()
             .from("table")
             .where("column", "value")
             .add("LIMIT 2,5")
             .getResult();
      
  4. Perform an update using managers
    1. Update a Table
      connection
            .updateTo("table")
            .where("column", "value")
            .set("column", "newValue")
            .execute();
      
    2. Generate a Table
      connection
            .generateTable("table")
            .addField(SQLType.STRING, "column", 999)
            .addField(SQLType.STRING, "column2", 25)
            .create();
      
    3. Delete something from a table
      connection
            .deleteFrom("table")
            .where("column", "value")
            .execute();
      
  5. The use of the table factory
    1. Create a new table class
      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() {
               custom("test").type(SQLType.STRING).length(255).add();
               string("column1", 255, "default");
               string("colum2", 100, "test2");
               integer("colum3", 2, "");
           }
      
           public void addSomething() {
               insert()
                   .value("column1", "test")
                   .value("colum3", 52)
                   .execute();
           }
      
           public void deleteSomething() {
               delete()
                   .where("column3", "test")
                   .execute();
           }
      }
      
    2. Register your table
      connection.getTableFactory().register(new ExampleTable(connection));
      
    3. Now you can access your table from everywhere
      ((ExampleTable) connection.getTableFactory().getTable(ExampleTable.class))
                   .addSomething();
      
  6. The use of the table factory with storage mediums
    1. Create a new storage medium class
      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
      connection.getTableFactory().register(new ExampleStorage(connection));
      
    3. Now you can access your storage medium from everywhere. Try something like that:
      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!

Description
This is a small wrapper for quickly managing a MySQL database in Java. It makes everyday life with a database much easier.
Readme MIT 285 KiB
2021-11-21 01:53:18 +00:00
Languages
Java 100%