· 8 years ago · Feb 17, 2018, 12:20 PM
1package <name>;
2
3import org.bukkit.Bukkit;
4import org.bukkit.configuration.file.YamlConfiguration;
5
6import java.io.*;
7import java.sql.*;
8import java.text.DateFormat;
9import java.text.SimpleDateFormat;
10import java.util.Date;
11
12public class MySQLManager {
13
14 private static Connection con;
15
16 public static boolean isConnected ( ) {
17 return con != null;
18 }
19
20 private static String host;
21 private static String port;
22 private static String database;
23 private static String username;
24 private static String password;
25
26 public static void connect ( ) {
27
28 createFile ();
29
30 if( ! ( host == "Test" ) ){
31
32 if ( ! isConnected ( ) ) {
33 try {
34 con = DriverManager.getConnection ( "jdbc:mysql://" +
35 host + ":" + port + "/" + database , username ,
36 password );
37 Bukkit.getConsoleSender ().sendMessage ( "§aVerbunden!" );
38 } catch ( SQLException ex ) {
39 Bukkit.getConsoleSender ().sendMessage ( "§cMYSQL §7konnte keine Verbindung aufbauen!" );
40
41 Writer writer = new StringWriter();
42 ex.printStackTrace(new PrintWriter (writer));
43 String s = writer.toString();
44
45 DateFormat dateFormat = new SimpleDateFormat ("dd MM yyyy HH mm ss");
46 Date date = new Date ();
47
48 Bukkit.getConsoleSender ().sendMessage ( date.toString () );
49
50 File file = new File ( "plugins//beastapi//mysql//mysql_error_" + dateFormat.format(date).toString ().replace ( " ", "_" ) + ".yml" );
51 YamlConfiguration cfg = YamlConfiguration.loadConfiguration ( file );
52
53 cfg.set ( "error", s );
54
55 if(file.exists ()){
56
57 file.delete ();
58
59 try {
60 cfg.save ( file );
61 } catch ( IOException e ) {
62 e.printStackTrace ( );
63 }
64
65 }else {
66
67 try {
68 cfg.save ( file );
69 } catch ( IOException e ) {
70 e.printStackTrace ( );
71 }
72
73 }
74
75 }
76 }
77
78 }else {
79
80 Bukkit.getConsoleSender ().sendMessage ( "§cBITTE GIB DIE MYSQL DATEN AN!" );
81
82 }
83 }
84
85 private static void createFile(){
86
87 File file = new File ( "plugins//beastapi//mysql//config.yml" );
88 YamlConfiguration cfg = YamlConfiguration.loadConfiguration ( file );
89
90 if(!file.exists ()){
91
92 cfg.options ().header ( "Diese API gehört BeastSide.net & ist unter Copyright! \n© 2018 by BeastSide!\n" );
93
94 cfg.set ( "host", "Test" );
95 cfg.set ( "port", "3306" );
96 cfg.set ( "database", "beastapi" );
97 cfg.set ( "username", "root" );
98 cfg.set ( "password", "password" );
99 }
100
101 host = ( String ) cfg.get ( "host" );
102 port = ( String ) cfg.get ( "port" );
103
104 database = ( String ) cfg.get ( "database" );
105 username = ( String ) cfg.get ( "username" );
106 password = ( String ) cfg.get ( "password" );
107
108 try {
109 cfg.save ( file );
110 } catch ( IOException ignore ) {
111
112 }
113 }
114
115 public static void disconnect ( ) {
116 try {
117 if ( con != null ) {
118 con.close ( );
119 Bukkit.getConsoleSender ().sendMessage ( "§cMySQL Verbindung getrennt!" );
120 }
121 } catch ( SQLException ignore ) {
122
123 }
124 }
125
126 public static void update ( String qry ) {
127 try {
128 Statement st = con.createStatement ( );
129 st.executeUpdate ( qry );
130 st.close ( );
131 } catch ( SQLException ex ) {
132 connect ( );
133 ex.printStackTrace ();
134 }
135 }
136
137 public static ResultSet query ( String qry ) {
138 ResultSet rs = null;
139 try {
140 Statement st = con.createStatement ( );
141 rs = st.executeQuery ( qry );
142 } catch ( SQLException ex ) {
143 connect ( );
144 ex.printStackTrace ( );
145 }
146 return rs;
147 }
148
149 public static void createTable ( String table , String data ) {
150 update ( "CREATE TABLE IF NOT EXISTS " + table + "(" + data + ");" );
151 }
152}