私は少しのMinecraftプラグインを開発中です。私はDatabaseManager
クラスを使ってデータベースにデータを挿入しようとしていますが、なんらかの理由でそれが動作しません。エラーメッセージはなく、パスワードとユーザー名は正しいです。また、データベースにSQLコードを手動で挿入しようとしましたが、SQL文のエラーは発生しません。私にとっては、何らかの理由で声明が実行されないようですが、失敗を見つけることはできません。以下は私のクラスのコードです。JDBC文が実行されません(エラーなし)
import java.sql.*;
public class DatabaseManager {
Connection conn = null;
Statement stmt = null ;
ResultSet result = null;
String user = "root" ;
String pass = "";
public ResultSet executeQuery(String query) throws SQLException{
try{
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/metrocraft",user,pass);
stmt = conn.createStatement();
result = stmt.executeQuery(query);
}catch (Exception ex){
ex.printStackTrace();
}finally{
if(result != null)
result.close();
if(stmt != null)
stmt.close();
if(conn != null)
conn.close();
}
return result ;
}
//Metrocraft relevant code
public void addZone(double p1X , double p1Y,double p2X,double p2Y) throws SQLException{
String sql = "INSERT INTO `zones`(`p1X`, `p1Y`,`p2X`, `p2Y`) VALUES (" + p1X + ","+ p1Y+","+p2X+","+p2Y+"); ";
System.out.print(sql);
executeQuery(sql);
}
}
[こちら](http://stackoverflow.com/a/3226433/1008671)をチェックしてみてください。 – budwiser
クエリを実行する必要があるたびに、データベース接続の開始と終了を再検討することができます。オープニングは非常に高価で(時間がかかる)、クエリーが必要なときはいつでもmodが遅くなります。代わりに、最初にクエリを行う(またはあなたのmodが起動したときに)接続を開いて、開いたままにしてから、modがシャットダウンしたら接続を閉じることをお勧めします。この方法で、接続を複数回再利用して、継続的に再オープンするコストを節約できます。 – SnakeDoc
ええ、これについて病気になっていただきありがとうございます! – TBrauwers