zoukankan      html  css  js  c++  java
  • validationQuery验证数据库连接

    validationQuery是用来验证数据库连接的查询语句,这个查询语句必须是至少返回一条数据的SELECT语句。每种数据库都有各自的验证语句,下表中收集了几种常见数据库的validationQuery。

    DataBasevalidationQuery
    hsqldb select 1 from INFORMATION_SCHEMA.SYSTEM_USERS
    Oracle select 1 from dual
    DB2 select 1 from sysibm.sysdummy1
    MySql select 1
    Microsoft SqlServer select1
    postgresql select version()
    ingres select 1
    derby values 1
    H2 select 1


    如果你想支持多种数据库,你可以根据JDBC驱动来获取validationQuery,这里有个简单的类,根据JDBC驱动名称来获取validationQuery

    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Properties;
    
    public class ValidationQuery {
    
        public String getValidationQuery(String driver) {
            Properties properties = loadProperties();
            return properties.getProperty(driver, "");
        }
    
        private Properties loadProperties() {
            String propertyFilename = "db.validation.properties";
            try {
                Properties props = new Properties();
                InputStream resourceAsStream = this.getClass().
                getClassLoader().getResourceAsStream(propertyFilename);
                props.load(resourceAsStream);
                resourceAsStream.close();
                return props;
            } catch (IOException e) {
                throw new RuntimeException("Cannot load properties file '" + propertyFilename + "'.", e);
            }
        }
    
        //Example: Get validationQuery for hsqldb
        public static void main(String[] args) {
            System.out.println(new ValidationQuery().getValidationQuery("org.hsqldb.jdbcDriver"));
        }
    }

    创建“db.validation.properties”文件,并放置在classpath目录下

    #hsqldb
    org.hsqldb.jdbcDriver=select 1 from INFORMATION_SCHEMA.SYSTEM_USERS
    #Oracle
    oracle.jdbc.driver.OracleDriver=select 1 from dual
    #DB2
    com.ibm.db2.jcc.DB2Driver=select 1 from sysibm.sysdummy1
    #mysql
    com.mysql.jdbc.Driver=select 1
    org.gjt.mm.mysql.Driver=select 1
    #microsoft sql
    com.microsoft.sqlserver.jdbc.SQLServerDriver=select 1
    #postgresql
    org.postgresql.Driver=select version();
    #ingres
    com.ingres.jdbc.IngresDriver=select 1
    #derby
    org.apache.derby.jdbc.ClientDriver=values 1
    #H2
    org.h2.Driver=select 1
  • 相关阅读:
    Linux关机命令详解
    这二个月都在失眠中。
    GMAIL绑定自己的域名MX解析出现错误
    又上火了。
    FTP命令
    怎样做反向域名解析?
    linux 一些常用到的命令。
    LINUX怎么换IP。
    关于 MOD 和 \ 选择
    WIN2000和WIN2003连备份机的疑问
  • 原文地址:https://www.cnblogs.com/histlyb/p/7515564.html
Copyright © 2011-2022 走看看