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.
2021-08-19 23:18:51 +02:00
2021-05-22 15:51:33 +02:00
2021-01-04 12:23:42 +01:00
2021-08-19 16:52:17 +02:00
2021-08-19 23:18:51 +02:00

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() {
               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
      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%