java提高服务器性能,为java服务器优化数据库性能

我有一个活的java服务器。它有一个用于数据库连接,操作和关闭的DatabaseManager类。但是有很多数据库活动正在进行(甚至超过50个客户端同时连接和投票)。 executeQuery方法返回一个ResultSet,所以并不是每个打开的连接都关闭,因为在返回之前关闭将会清空ResultSet。有没有更好的方法来解决这个问题?为java服务器优化数据库性能

public class DatabaseManager {

private Connection conn;

public static Logger logger;

public static String user = "root";

public static String pass = "";

public DatabaseManager() {

logger = LoggerFactory.getLogger("Utilities.DatabaseManager");

try {

Class.forName("com.mysql.jdbc.Driver");

} catch (ClassNotFoundException e) {

logger.error(e.getMessage());

}

}

public void startConnection() {

try {

conn = DriverManager.getConnection("jdbc:mysql:///youspinvotes",

user, pass);

logger.debug("Database connected");

} catch (SQLException e) {

logger.error("Unable to connect to Database");

logger.error(e.getMessage());

}

}

public ResultSet exececuteQuery(final String query) {

logger.debug("Executing query:" + query);

ResultSet resultSet = null;

try {

final Statement stmt = conn.createStatement();

resultSet = stmt.executeQuery(query);

logger.debug("Query executed");

} catch (Exception e) {

logger.error("Unable to execute query."+e.getLocalizedMessage());

resultSet = null;

}

return resultSet;

}

public int executeUpdate(final String query) {

logger.debug("Executing update query:" + query);

int rowsAffected = -1;

try {

final Statement stmt = conn.createStatement();

rowsAffected = stmt.executeUpdate(query);

stmt.close();

logger.debug("Update performed with "+rowsAffected+" rows changed.");

} catch (Exception e) {

logger.error(query + ": Unable to execute query. \n"+ e.getMessage());

}

return rowsAffected;

}

public void endConnection() {

logger.debug("Closing database connection");

try {

conn.close();

} catch (Exception e) {

logger.error("There was a problem closing the database connection.");

}

}

}

由于有很多创建和关闭连接,资源和时间消耗。有什么方法可以提高性能吗?连接池是否是此服务器的不错选择?什么是实现这种服务器的最有效的方式?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值