91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaFX程序初次運行創建數據庫并執行建表SQL詳解

發布時間:2020-09-04 23:08:38 來源:腳本之家 閱讀:153 作者:楊超杰 欄目:編程語言

在我的第一個JavaFX程序完成安裝的時候才突然發現,不能要用這個軟件還要手動執行Sql來建表吧?

于是我的想法是在Main程序中執行時檢測數據庫連接狀況,如果沒有檢測到數據庫或者連接異常,那么出現錯誤提示,如果數據庫連接沒有問題那么自動創建數據庫并執行建表Sql進行初始化。

package oa.util; 
import java.io.IOException;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties; 
import org.apache.ibatis.jdbc.ScriptRunner;
import com.ibatis.common.resources.Resources;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement; 
public class CreateMySqlDatabase { 
  public static void createDatabase() throws SQLException {
    Connection conn;
    conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/", "root", "1234");
    Statement stmt = (Statement) conn.createStatement();
    String sql = "CREATE DATABASE UTILITY";
    stmt.executeUpdate(sql);
  }     
  public static void executeSql() throws IOException, SQLException {
    Properties props = Resources.getResourceAsProperties("mysql.properties");
    String url = props.getProperty("jdbc.url");
    String username = props.getProperty("jdbc.username");
    String password = props.getProperty("jdbc.password");
    Connection conn = (Connection) DriverManager.getConnection(url, username, password);
    ScriptRunner runner = new ScriptRunner(conn);
    runner.setErrorLogWriter(null);
    runner.setLogWriter(null);
    runner.runScript(Resources.getResourceAsReader("sql/utility.sql"));
    conn.close();
    System.out.println("==SUCCESS==");
  }
}

需要用到 ibatis-common-2.jar讀取mysql.properties文件中的JDBC信息。

MAIN做判斷:

try {
      DriverManager.getConnection("jdbc:mysql://localhost:3306/utility", "root", "1234");
      isError = false;
    } catch (MySQLSyntaxErrorException e) {
      primaryStage.setTitle("正在創建Utility數據庫……");
      Label error = new Label("正在創建Utility數據庫……");
      error.setFont(new Font("Cambria", 100));
      Pane pane = new Pane();
      pane.getChildren().add(error);
      Scene scene = new Scene(pane);
      primaryStage.setScene(scene);
      primaryStage.show();
      try {
        CreateMySqlDatabase.createDatabase();
        CreateMySqlDatabase.executeSql();
        isError = false;
        primaryStage.close();
      } catch (SQLException | IOException e1) {
        primaryStage.close();
        e1.printStackTrace();
      }
 
    } catch (SQLException se) {
      Thread.sleep(3000);
      primaryStage.close();
      se.printStackTrace();
    }
 
    if (!isError) {
      run();
    }
 
  } 
  public static void main(String[] args) {
    launch(args);
  }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

若尔盖县| 岳池县| 合川市| 墨竹工卡县| 黄浦区| 枣庄市| 三门县| 潍坊市| 卢龙县| 宝兴县| 榆树市| 和政县| 上蔡县| 杂多县| 芜湖市| 东乡族自治县| 麦盖提县| 高邮市| 东方市| 图们市| 荣昌县| 革吉县| 洛扎县| 岳普湖县| 昔阳县| 南通市| 富顺县| 蓬安县| 乌苏市| 普格县| 阳春市| 鹰潭市| 延吉市| 扎兰屯市| 依兰县| 察哈| 鹤山市| 汝南县| 石家庄市| 麻栗坡县| 兴仁县|