import org.mariadb.jdbc.MySQLDataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.LinkedList; import java.util.Calendar; import java.util.Date; import java.util.List; import java.util.ArrayList; public class DBInsertQueryCommand extends Node { public Parser parser; public DBInsertQueryCommand() {} public DBInsertQueryCommand(Parser parser) { this.parser = parser; } public Object eval() { String dbInfo = (String) parser.getVariable("dbInfo"); String query = (String) parser.getVariable("query"); List queryParams = (List) parser.getVariable("queryParams"); MySQLDataSource dataSource = SetDBInfo(dbInfo.split(";")); int result = 0; try (Connection connection = dataSource.getConnection()) { try (PreparedStatement st = connection.prepareStatement(query)) { if (queryParams != null) { int index = 1; for (Object param: queryParams) { st.setObject(index++, param); } } result = st.executeUpdate(); } } catch (SQLException e) { System.out.println("Error in DBInsertQueryCommand.java--->eval(). " + e); System.exit(0); } return new Integer(result); } public static MySQLDataSource SetDBInfo(String[] dbInfoParts) { MySQLDataSource dataSource = new MySQLDataSource(); dataSource.setURL(dbInfoParts[0]); dataSource.setDatabaseName(dbInfoParts[1]); dataSource.setUserName(dbInfoParts[2]); dataSource.setPassword(dbInfoParts[3]); return dataSource; } }