java 简单的H2数据库工具类详解编程语言

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); 
    } 
 
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10439.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论