Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package mysql_connector;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.sql.ResultSetMetaData;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.sql.Types;
- import com.google.gson.JsonArray;
- import com.google.gson.JsonElement;
- import com.google.gson.JsonParser;
- import com.google.gson.JsonPrimitive;
- public class MySQL {
- private Connection connection;
- public MySQL(String host, String port, String database, String user, String password) throws SQLException {
- // constructor
- this.connection = DriverManager.getConnection("jdbc:mysql://" + host + ":" + port + "/" + database, user, password);
- }
- public ResultSet execute(String sql, String parameters) throws SQLException {
- ResultSet rs;
- if (parameters != null && !parameters.isEmpty())
- {
- // PreparedStatement
- PreparedStatement ps = this.getConnection().prepareStatement(sql);
- JsonArray jo = new JsonParser().parse(parameters).getAsJsonArray();
- int parameterIndex = 0;
- for (final JsonElement je : jo)
- {
- if (je.isJsonPrimitive())
- {
- JsonPrimitive jp = je.getAsJsonPrimitive();
- if (jp.isBoolean())
- {
- // Boolean
- ps.setBoolean(parameterIndex, jp.getAsBoolean());
- }
- else if (jp.isJsonNull())
- {
- // Null
- ps.setNull(parameterIndex, Types.NULL);
- }
- else if (jp.isNumber())
- {
- // Number
- // ... jp.getAsNumber();
- }
- else
- {
- // String
- ps.setString(parameterIndex, jp.getAsString());
- }
- }
- parameterIndex++;
- }
- rs = ps.executeQuery();
- }
- else
- {
- // Statement
- Statement st = this.getConnection().createStatement();
- rs = st.executeQuery(sql);
- }
- return rs;
- }
- private enum ColumnTypes { NUMBER, BOOLEAN, STRING }
- public String fetch(ResultSet rs) throws SQLException, ClassNotFoundException {
- ResultSetMetaData md = rs.getMetaData();
- ColumnTypes[] types = null;
- int l = md.getColumnCount();
- for (int i = 0; i < l; i++)
- {
- Class<?> ColumnClass = Class.forName(md.getColumnClassName(i));
- if (Number.class.isAssignableFrom(ColumnClass))
- {
- // Number
- types[i] = ColumnTypes.NUMBER;
- }
- else if (Boolean.class.isAssignableFrom(ColumnClass))
- {
- // Boolean
- types[i] = ColumnTypes.BOOLEAN;
- }
- else
- {
- // String
- types[i] = ColumnTypes.STRING;
- }
- }
- // Collection ...?
- return null;
- }
- public void close() throws SQLException {
- // destructor
- this.connection.close();
- }
- public Connection getConnection() {
- return connection;
- }
- public void setConnection(Connection connection) {
- this.connection = connection;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement