Пришлось мне как-то разрабатывать на Java проект, который был завязан на работе с базой данных MySQL. Я нашёл в Сети класс, который удобно работает с SQLite, и переделал его для работы с MySQL, собственно сделать это было нетрудно, дополнительно в этот класс можно добавить несколько методов для удобной работы, но это уже на Ваше пожелание. Собственно, для своих задач эти методы я создавал, а Вам они будут скорее всего не пригодятся, оставлю самые общие лишь.
Добавлены некоторые методы, возвращающие массив объектов из базы данных, переделать можно по своему усмотрению.
Уточняю, этот класс работает с базой данных минуя ORM, т.е. не использует ORM.
package example.Database; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; public class MySQLConnect { private Connection con = null; public MySQLConnect() { //для того, чтобы подключение можно было сделать позже } public MySQLConnect(String url, String port, String dbName, String login, String pass) { setConnection(url, port, dbName, login, pass); } public MySQLConnect(String url, String dbName, String login, String pass) { setConnection(url, "3306", dbName, login, pass); } public void setConnection(String url, String port, String dbName, String login, String pass) { try { if (port == null) { port = "3306"; // если порт не указан, то порт по умолчанию } Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql://" + url + ":" + port + "/" + dbName, login, pass); } catch (ClassNotFoundException ex) { System.err.println("MySQLdb: Cannot find this db driver classes. Install com.mysql.jdbc driver!"); } catch (SQLException e) { System.err.println("MySQLdb: Cannot connect to " + dbName); } if (con != null) { System.out.println("Connection to DB established successfully."); } } public Connection getConnection() { return con; } /* метод, выполняющий просмотр базы данных, по сути не нужный, * т.к возвращает лишь успешно ли выполнена операция, но для * примера выполнения запроса, оставлю */ public boolean executeQuery(String query) { try { Statement st = con.createStatement(); ResultSet rs = st.executeQuery(query); rs.close(); st.close(); return true; } catch (SQLException e) { System.err.println("There are problems with the query " + query + " in method "executeQuery""); e.printStackTrace(); return false; } } public void executeUpdate(String query) { //метод, выполняющий изменения в БД try { PreparedStatement statement = con.prepareStatement(query); statement.executeUpdate(); } catch (SQLException e) { System.err.println("There are problems with the query " + query + " in method "executeUpdate""); e.printStackTrace(); } } public Object[][] getQueryResultByParam(String query, String idColumnName, String param) { try { Statement st = con.createStatement(); ResultSet rs = st.executeQuery(query); ArrayList idArrayList = new ArrayList(); ArrayList dataArrayList = new ArrayList(); while (rs.next()) { idArrayList.add(rs.getString(idColumnName)); dataArrayList.add(rs.getString(param)); } Object[][] result = new Object[2][]; result[0] = idArrayList.toArray(); result[1] = dataArrayList.toArray(); rs.close(); st.close(); return result; } catch (SQLException e) { System.err.println("There are problems with the query " + query + " in method "getQueryResultByParam""); e.printStackTrace(); return null; } } public Object[][] getQueryResultByParam(String query, String param) { return this.getQueryResultByParam(query, "id", param); } public Object[][] getParam(String tableName, String param) { return this.getQueryResultByParam("SELECT id, " + param + " FROM " + tableName + " WHERE deleted = '0' ORDER BY id", "id", param); } }