All Downloads are FREE. Search and download functionalities are using the official Maven repository.

pha.java.util.db.MysqlSession Maven / Gradle / Ivy

package pha.java.util.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


public class MysqlSession {
	
	private static final String MYSQL_DRIVER = "com.mysql.jdbc.Driver";
	
	private static final Logger logger = LoggerFactory.getLogger(MysqlSession.class);
	
	private MysqlConfig config = null;
	
	private Connection conn = null;
	
	private Statement stmt = null;

	
	public MysqlSession(MysqlConfig config) {
		this.config = config;
		assert(config != null);
	}
	
	public boolean connect() {
		boolean ret = false;
		
		try {
			Class.forName(MYSQL_DRIVER);
			DriverManager.setLoginTimeout(60);
			conn = DriverManager.getConnection("jdbc:mysql://" 
					+ config.ip + ":"+ config.port 
					+ "/" + config.db + "?socketTimeout=360000", 
					config.user, config.passwd);
			if (conn != null) {
				stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
						ResultSet.CONCUR_UPDATABLE);
				ret = true;
			}
		} catch (Exception e) {
			logger.warn(e.getMessage());
		}
		
		return ret;
	}
	
	public ResultSet executeQuery(String sql) {
		ResultSet rs = null;
		
		try {
			if (stmt != null) {
				rs = stmt.executeQuery(sql);
			}
		} catch (SQLException e) {
			logger.warn(e.getMessage());
		}
		
		return rs;
	}
	
	public boolean executeUpdate(String sql) {
		boolean ret = false;
		
		try {
			if (stmt != null) {
				stmt.executeUpdate(sql);
				ret = true;
			}
		} catch (SQLException e) {
			logger.warn(e.getMessage());
		}
		
		return ret;
	}
	
	public void disconnect() {
		if (stmt != null) {
			try {
				stmt.close();
				stmt = null;
			} catch (Exception e) {
				logger.warn(e.getMessage());
			}
		}
		
		if (conn != null) {
			try {
				conn.close();
				conn = null;
			} catch (Exception e) {
				logger.warn(e.getMessage());
			}
		}
	}

}
 




© 2015 - 2025 Weber Informatics LLC | Privacy Policy