前提・実現したいこと
javaとデータベースを繋げて、大学の偏差値ランキングを作成しています。
コンパイルは通るのですが、取り出したいデータベースの内容が表示されません。
該当のソースコード
java
1package WorkMysql; 2import java.sql.Connection; 3import java.sql.ResultSet; 4import java.sql.SQLException; 5import java.sql.Statement; 6 7public class DBManagerMain { 8 public static void main(String[] args) throws SQLException { 9 System.out.println("2019年全国大学偏差値一覧 [1位~30位]\n"); 10 Connection con = DBManager.getConnection(); 11 Statement stm = con.createStatement(); 12 String sql = "select * from university"; 13 ResultSet rs = stm.executeQuery(sql); 14 while (rs.next()) { 15 System.out.println(rs.getInt("deviation_mini") + "~" + 16 rs.getInt("deviation_max") + "\t " + 17 rs.getString("name") + "\t " + 18 rs.getString("type") + "\t " + 19 rs.getString("region") + "\t " + 20 rs.getString("prefecture")); 21 } 22 Introduction i = new Introduction(); 23 System.out.println(Introduction.introduction(con)); 24 25 rs.close(); 26 stm.close(); 27 con.close(); 28 } 29} 30
package WorkMysql; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBManager { private static String driverName = "org.mariadb.jdbc.Driver"; private static String url = "jdbc:mariadb://localhost/db1"; private static String user = "root"; private static String pass = "1234"; public static Connection getConnection() { Connection con = null; try { Class.forName(driverName); con = DriverManager.getConnection(url,user,pass); } catch ( ClassNotFoundException e) { e.printStackTrace(); } catch ( SQLException e) { e.printStackTrace(); } return con; } }
package WorkMysql; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Scanner; public class Introduction { public static String introduction(Connection con) { // Introduction i = new Introduction(); // Deviation d = new Deviation(); // Type t = new Type(); // Region r = new Region(); System.out.println("\n検索したい方は、該当番号を入力してください。\n"); String sql = null; String s1 = ""; Scanner s = new Scanner(System.in); try { System.out.println("希望の番号を入力してください。\n"); System.out.println("1,偏差値から 2,国公私立から 3,全国地方区分から\n"); while (s.hasNext()) { String number = s.next(); System.out.println(number); switch (number) { case "1": sql = Deviation.deviation(); case "2": sql = Type.type(); case "3": sql = Region.region(); default: sql = ("該当しません。もう一度"); break; } Statement stm = con.createStatement(); ResultSet rs = stm.executeQuery(sql); rs.first(); s1 = rs.getInt("deviation_mini") + "~" + rs.getInt("deviation_max") + "\t " + rs.getString("name") + "\t " + rs.getString("type") + "\t " + rs.getString("region") + "\t " + rs.getString("prefecture"); } } catch (IllegalArgumentException | SQLException e) { } s.close(); return s1; } }
package WorkMysql; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import java.util.Scanner; public class Region { public static String region() { String sql = null; Scanner s = new Scanner(System.in); try { System.out.println("希望の番号を入力してください。\n"); System.out.println("1,北海道 2,東北 3,関東 4,中部 5,近畿 6,四国 7,中国 8,九州 9,沖縄\n"); while (s.hasNext()) { String number = s.next(); System.out.println(new StringBuilder(number).reverse()); Connection con = DBManager.getConnection(); Statement stm = con.createStatement(); switch (number) { case "1": sql = "select * from university where region = '北海道'"; case "2": sql = "select * from university where region = '東北'"; case "3": sql = "select * from university where region = '関東'"; case "4": sql = "select * from university where region = '中部'"; case "5": sql = "select * from university where region = '近畿'"; case "6": sql = "select * from university where region = '四国'"; case "7": sql = "select * from university where region = '中国'"; case "8": sql = "select * from university where region = '九州'"; case "9": sql = "select * from university where region = '沖縄'"; default: sql = ("該当しません。もう一度"); break; } } } catch (IllegalArgumentException | SQLException e) { } s.close(); return sql; } }
package WorkMysql; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; import java.util.Scanner; public class Type { public static String type() { String sql = null; Scanner s = new Scanner(System.in); try { System.out.println("希望の番号を入力してください。\n"); System.out.println("1,国立 2,公立 3,私立\n"); while (s.hasNext()) { String number = s.next(); System.out.println(new StringBuilder(number).reverse()); Connection con = DBManager.getConnection(); Statement stm = con.createStatement(); switch (number) { case "1": sql = "select * from university where type = '国立'"; case "2": sql = "select * from university where type = '公立'"; case "3": sql = "select * from university where type = '私立'"; default: sql = ("該当しません。もう一度"); break; } } } catch (IllegalArgumentException | SQLException e) { } s.close(); return sql; } }
package WorkMysql; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Scanner; public class Deviation { public static String deviation() { String str = null; Scanner s = new Scanner(System.in); try { System.out.println("希望の偏差値を入力してください。"); while (s.hasNext()) { int figure = s.nextInt(); System.out.println(new StringBuilder(figure).reverse()); Connection con = DBManager.getConnection(); Statement stm = con.createStatement(); String sql = "select * from university where deviation_max >=figure"; ResultSet rs = stm.executeQuery(sql); try { while(rs.next()) { rs.getInt("deviation_max"); str = String.valueOf(rs); } } catch (SQLException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } } } catch (IllegalArgumentException | SQLException e) { } s.close(); return str; } }
試したこと
各メソッドの引数をいれてみたり、、、
正直プログラミングが苦手で、メソッドの引数などの仕組みが一人ではどうしてもわかりません。