Paste #20063

package com.dengyu.mysql;

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 org.bukkit.command.CommandSender;

public class MySQLManager {
	private String ip;
	private String databaseName;
	private String userName;
	private String userPassword;
	private Connection connection;
	private int port;
	public static MySQLManager instance = null;

	public static MySQLManager get() {
		return instance == null ? instance = new MySQLManager() : instance;
	}

	public void enableMySQL()
	{
		ip = Main.getConfigString("mysql.ip");
		databaseName = Main.getConfigString("mysql.databasename");
		userName = Main.getConfigString("mysql.username");
		userPassword = Main.getConfigString("mysql.password");
		port = Main.getConfigInt("mysql.port");
		connectMySQL();
		String cmd = SQLCommand.CREATE_TABLE1.commandToString();
		try {
			PreparedStatement ps = connection.prepareStatement(cmd);
			doCommand(ps);
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

	private void connectMySQL()
	{
		try {
			connection = DriverManager.getConnection("jdbc:mysql://" + ip + ":" + port + "/" + databaseName + "?autoReconnect=true", userName, userPassword);
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
	}
	public void doCommand(PreparedStatement ps)
	{
		try {
			ps.executeUpdate();
		} catch (SQLException e) {
			System.out.println("执行指令失败,以下为错误提示");
			e.printStackTrace();
		}
	}
	public void shutdown() {
		try {
			connection.close();
		} catch (SQLException e) {
			//断开连接失败
			e.printStackTrace();
		}
	}

	public void insertData(String data1, String data2) {
		try {
			PreparedStatement ps;
			String s = SQLCommand.ADD_DATA.commandToString();
			ps = connection.prepareStatement(s);
			ps.setInt(1, Integer.parseInt(data1));
			ps.setString(2, data2);
			doCommand(ps);
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (NumberFormatException e) {
			System.out.println("输入的不是整数,插入失败");
		}
	}
	public void deleteData(String data1) {
		try {
			PreparedStatement ps;
			String s = SQLCommand.DELETE_DATA.commandToString();
			ps = connection.prepareStatement(s);
			ps.setInt(1, Integer.parseInt(data1));
			doCommand(ps);
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (NumberFormatException e) {
			System.out.println("输入的不是整数,删除失败");
		}
	}

	public void findData(String data1, CommandSender sender) {
		try {
			String s = SQLCommand.SELECT_DATA.commandToString();
			PreparedStatement ps = connection.prepareStatement(s);
			ps.setInt(1, Integer.parseInt(data1));
			ResultSet rs = ps.executeQuery(s);
			while (rs.next())
			{
				String str = rs.getString("string");
				sender.sendMessage(str);
			}
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
			sender.sendMessage("查询失败");
		} catch (NumberFormatException e) {
			System.out.println("输入的不是整数,删除失败");
		}
	}
}
Raw