最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaFX程序初次運行創(chuàng)建數(shù)據(jù)庫并執(zhí)行建表SQL詳解

 更新時間:2019年08月07日 08:53:04   作者:楊超杰  
這篇文章主要介紹了JavaFX程序初次運行創(chuàng)建數(shù)據(jù)庫并執(zhí)行建表SQL詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

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

于是我的想法是在Main程序中執(zhí)行時檢測數(shù)據(jù)庫連接狀況,如果沒有檢測到數(shù)據(jù)庫或者連接異常,那么出現(xiàn)錯誤提示,如果數(shù)據(jù)庫連接沒有問題那么自動創(chuàng)建數(shù)據(jù)庫并執(zhí)行建表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("正在創(chuàng)建Utility數(shù)據(jù)庫……");
      Label error = new Label("正在創(chuàng)建Utility數(shù)據(jù)庫……");
      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);
  }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

岳阳市| 行唐县| 永靖县| 诏安县| 道孚县| 东乌珠穆沁旗| 昌黎县| 邵东县| 邻水| 淮北市| 色达县| 晋中市| 东丽区| 时尚| 昌江| 休宁县| 如东县| 星座| 岳池县| 太谷县| 翁源县| 新邵县| 明水县| 宁津县| 十堰市| 广安市| 威远县| 冀州市| 乌海市| 宾川县| 郑州市| 汪清县| 绥芬河市| 黑水县| 柘荣县| 海盐县| 嘉峪关市| 阳原县| 宜黄县| 辛集市| 广宗县|