在我的第一个JavaFX程序完成安装的时候才突然发现,不能要用这个软件还要手动执行Sql来建表吧?
于是我的想法是在主程序中执行时检测数据库连接状况,如果没有检测到数据库或者连接异常,那么出现错误提示,如果数据库连接没有问题那么自动创建数据库并执行建表的Sql进行初始化。
包oa.util; 进口java.io.IOException; 进口java.sql.DriverManager; 进口java.sql.SQLException; 进口java.util.Properties; 进口org.apache.ibatis.jdbc.ScriptRunner; 进口com.ibatis.common.resources.Resources; 进口com.mysql.jdbc.Connection; 进口com.mysql.jdbc.Statement; 公开课CreateMySqlDatabase { 公共静态孔隙createDatabase()抛出SQLException { 康涅狄格州连接; 康涅狄格州=DriverManager(连接)。getConnection (" jdbc: mysql://localhost: 3306/", "根"," 1234 "); 声明支撑=(声明)conn.createStatement (); 字符串sql=按唇ㄊ菘馐涤贸绦颉? stmt.executeUpdate (sql); } 公共静态孔隙executeSql()抛出IOException SQLException { 属性道具=Resources.getResourceAsProperties (“mysql.properties”); 字符串url=props.getProperty (“jdbc.url”); 字符串的用户名=props.getProperty (“jdbc.username”); 字符串密码=props.getProperty (“jdbc.password”); DriverManager连接康涅狄格州=(连接)。getConnection (url、用户名、密码); ScriptRunner跑=new ScriptRunner(康涅狄格州); runner.setErrorLogWriter(空); runner.setLogWriter(空); runner.runScript (Resources.getResourceAsReader (sql/utility.sql)); conn.close (); System.out.println(“====成功”); } }
需要用到ibatis -常见的- 2. - jar读取mysql.properties文件中的JDBC信息。
主要做判断:
尝试{ DriverManager。getConnection (" jdbc: mysql://localhost: 3306/效用”,“根”,“1234”); 返回错误=false; }捕捉(MySQLSyntaxErrorException e) { primaryStage.setTitle(“正在创建效用数据库……”); 标签错误=新标签(“正在创建效用数据库……”); 错误。setFont(新字体(“威尔士”,100)); 面板面板=new窗格(); pane.getChildren阀门()(错误); 现场场景=新场景(面板); primaryStage.setScene(现场); primaryStage.show (); 尝试{ CreateMySqlDatabase.createDatabase (); CreateMySqlDatabase.executeSql (); 返回错误=false; primaryStage.close (); }捕捉(SQLException | IOException e1) { primaryStage.close (); e1.printStackTrace (); } }捕捉(SQLException se) { thread . sleep (3000); primaryStage.close (); se.printStackTrace (); } 如果(!返回错误){ run (); } } 公共静态void main (String [] args) { 发射(args); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。