JavaからH2(組込み型)を接続する際に、H2 consoleのログイン画面を表示させないで、接続する方法を教えてください!!
import java.io.IOException; import java.util.*; public class DBmain{ public static void main( String[] args ){ // H2 console 起動処理 try { Runtime rt = Runtime.getRuntime(); rt.exec("java -jar C:\\Users\\ユーザファイル\\Desktop\\h2-2015-10-11\\h2\\bin\\h2-1.4.190.jar" ); Process p = Runtime.getRuntime().exec("C:\\Program Files\\Internet Explorer\\iexplore.exe"); try { Thread.sleep(5000); p.destroy(); } catch (InterruptedException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } } catch (IOException ex) { ex.printStackTrace(); }finally{ } H2o h2o = new H2o(); int num; @SuppressWarnings("resource") Scanner stdin = new Scanner( System.in ); //SQLの処理選択 System.out.print( "SELECT文:1 or INSERT文:2 or UPDATE文:3 or 終了:1,2,3以外" ); num = stdin.nextInt(); if( num == 1 ){ //SELECTの場合 h2o.select(); } else if( num == 2 ){ //INSERTの場合 System.out.println( "追加 商品ID " ); int id = stdin.nextInt(); System.out.println( "追加 商品名 " ); String name = stdin.next(); System.out.println( "追加 商品価格 " ); int price = stdin.nextInt(); h2o.insert2(id,name,price); } else if( num == 3){ System.out.println( "変更する値 : " ); String henkou = stdin.next(); System.out.println( "どの値を変更しますか :" ); String zyo = stdin.next(); h2o.Update(henkou, zyo); } } }
import java.sql.*;
public class H2o{
private Connection con = null;
private Statement stm;
private String sql1 = null;
public H2o() { try { // JDBCドライバのロード Class.forName("org.h2.Driver").newInstance(); // MySQLに接続 con = DriverManager.getConnection("jdbc:h2:tcp://localhost/~/test", "user", "1234"); stm = con.createStatement(); System.out.println("H2に接続できました。"); } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { System.out.println("JDBCドライバのロードに失敗しました。"); } catch (SQLException e) { // System.out.println("H2に接続できませんでした。"); } finally { if (con != null) { } } } public void insert2(int id,String name,int price){ try{ //ステートメント生成 stm = con.createStatement(); int ID = id; String NAME = name; int PRICE = price; // INSERT INTO 文 //sql1 = "INSERT INTO PRODUCTS (PRODUCTID,PRODUCTNAME,price)VALUES (204,'西山',245)"; sql1 = "INSERT INTO PRODUCTS (PRODUCTID,PRODUCTNAME,price)VALUES(" + String.valueOf(ID) + "," + "'" + NAME +"'"+ "," + String.valueOf(PRICE) + ")"; stm.executeUpdate(sql1); System.out.println("Insert完了!!"); } catch (SQLException e) { System.out.println("H2に接続できませんでした。1"); } finally { if (con != null) { //H2 クローズ処理 try { con.close(); } catch (SQLException e) { System.out.println("H2のクローズに失敗しました。"); } } }
}
public void select(){ try{ //ステートメント生成 stm = con.createStatement(); // SELECT 文 sql1 = "select * from products"; ResultSet rs = stm.executeQuery(sql1); while(rs.next()){ int code = rs.getInt(1); String name = rs.getString(2); int price = rs.getInt(3); System.out.println("取得結果 -> " + code + ":" + name + ":" + price ); } } catch (SQLException e) { System.out.println("H2に接続できませんでした。1"); } finally { if (con != null) { try { // H2 クローズ処理 con.close(); } catch (SQLException e) { System.out.println("H2のクローズに失敗しました。"); } } } } public void Update(String x,String z){ try{ //ステートメント生成 stm = con.createStatement(); String henkou = x; String zyo = z; // UPDATE 文 sql1 = "UPDATE PRODUCTS SET" + String.valueOf(henkou) + "(WHERE" + String.valueOf(zyo) + ")"; stm.executeUpdate(sql1); System.out.println("UPDATE完了!!"); } catch (SQLException e) { System.out.println("H2に接続できませんでした。1"); } finally { if (con != null) { //H2 クローズ処理 try { con.close(); } catch (SQLException e) { System.out.println("H2のクローズに失敗しました。"); } } }
}
}
rt.exec("java -jar C:\Users\ユーザファイル\Desktop\h2-2015-10-11\h2\bin\h2-1.4.190.jar" );
がないと、H2 consoleに接続できません。
実装環境は Eclipse です。
回答1件
あなたの回答
tips
プレビュー