时间:2021-05-19
在我的第一个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); }以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文主要介绍了SpringBootService和Dao的编写详解,分享给大家,具体如下:效果图配置环境创建数据库数据库中文编码建表createtable`st
Access数据库中通过SQL语句找到某一表是否存在的确是一件困难的事,按照下面的步骤执行并在程序中通过SQL语句查询表是否存在。 Access数据库虽然
sql语句查询数据库中的表名/列名/主键/自动增长值----查询数据库中用户创建的表----jsj01为数据库名selectnametablenamefromj
下面给大家分享下sqlserver建库、建表、建约束技巧,下文介绍有文字有代码。--创建School数据库之前:首先判断数据库是否存在,若存在则删除后再创建,若
所有的JDBC应用程序都具有下面的基本流程: 1、加载数据库驱动并建立到数据库的连接。 2、执行SQL语句。 3、处理结果。 4、从数据库断开连接释放资