java 简单的H2数据库工具类

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
package db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.h2.tools.DeleteDbFiles;

public class DbUtil {
    private static Connection myConnection = null;

    static {
        try {
            Class.forName("org.h2.Driver");
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(DbUtil.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public static void setupConn(String theDbPath) throws SQLException {
        if(null == myConnection || myConnection.isClosed()) {
            myConnection = DriverManager.getConnection("jdbc:h2:"+theDbPath);
        }
    }

    public static Statement getStatement() throws SQLException {
        if(null==myConnection || myConnection.isClosed()) {
            SQLException ex = new SQLException("No valid database connection!");
            Logger.getLogger(DbUtil.class.getName()).log(Level.SEVERE, null, ex);
            throw ex;
        }

        return myConnection.createStatement();
    }

    public static void closeConn() throws SQLException {
        myConnection.close();
    }

    public static void setupDB(String theDbPath) throws SQLException  {

        setupConn(theDbPath);
        runScript("init.sql");
    }

    public static void runScript(String thePath) throws SQLException {

        Statement stat = getStatement();
        stat.execute("runscript from '"+thePath+"'");
        stat.close();
    }

    public static void resetDB(String theDbPath) throws Exception {
        // to separate the dbname from the path
        int lastSlash = theDbPath.lastIndexOf('/');

        DeleteDbFiles.execute(theDbPath.substring(0,lastSlash), 
                              theDbPath.substring(lastSlash), 
                              true);

        setupDB(theDbPath);
    }

}

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:java NIO 实现FileServlet

下一篇:jsoup 从 HTML 中提取所有链接的例子