package com.walker.jdbc; import com.walker.db.DatabaseType; public class Constants { public static final String SQL_ORDER_BY = " order by "; public static final String getJdbcUrl(DatabaseType databaseType, String databaseName, String ip, int port){ StringBuilder url = new StringBuilder(); if(databaseType == DatabaseType.DERBY){ url.append("jdbc:derby:").append(databaseName); } else if(databaseType == DatabaseType.MYSQL){ url.append("jdbc:mysql://").append(ip).append(":") .append(port == 0 ? Constants.DEFAULT_PORT_MYSQL : port) .append("/").append(databaseName); // 因为oracle不支持这样设置参数,所以位置调换到这里 2016-11-30 if(url.indexOf("?") >= 0){ // url.append("&autoReconnect=true"); //当数据库连接异常中断时,是否自动重新连接 // url.append("&failOverReadOnly=false"); //自动重连成功后,连接是否设置为只读 url.append("&autoReconnect=true"); //当数据库连接异常中断时,是否自动重新连接 url.append("&failOverReadOnly=false"); //自动重连成功后,连接是否设置为只读 } else { url.append("?autoReconnect=true"); // url.append("&failOverReadOnly=false"); url.append("&failOverReadOnly=false"); } } else if(databaseType == DatabaseType.ORACLE){ url.append("jdbc:oracle:thin:@").append(ip).append(":") .append(port == 0 ? Constants.DEFAULT_PORT_ORACLE : port) .append(":").append(databaseName); } else if(databaseType == DatabaseType.POSTGRES){ url.append("jdbc:postgresql://").append(ip).append(":") .append(port == 0 ? Constants.DEFAULT_PORT_POSTGRES : port) .append("/").append(databaseName); } else if(databaseType == DatabaseType.SQLSERVER){ url.append("jdbc:sqlserver://").append(ip).append(":") .append(port == 0 ? Constants.DEFAULT_PORT_POSTGRES : port) .append(";DatabaseName=").append(databaseName); } else if(databaseType == DatabaseType.DAMENG){ url.append("jdbc:dm://").append(ip).append(":") .append(port == 0 ? Constants.DEFAULT_PORT_POSTGRES : port) .append("?SCHEMA=").append(databaseName); } else throw new IllegalArgumentException("unsupported database type: " + databaseType); return url.toString(); } public static final String getDriverClassName(DatabaseType databaseType){ String driverName = null; if(databaseType == DatabaseType.DERBY){ driverName = Constants.DRIVER_NAME_DERBY; } else if(databaseType == DatabaseType.MYSQL){ driverName = Constants.DRIVER_NAME_MYSQL; } else if(databaseType == DatabaseType.ORACLE){ driverName = Constants.DRIVER_NAME_ORACLE; } else if(databaseType == DatabaseType.POSTGRES){ driverName = Constants.DRIVER_NAME_POSTGRES; } else if(databaseType == DatabaseType.SQLSERVER){ driverName = Constants.DRIVER_NAME_SQLSERVER; } else if(databaseType == DatabaseType.DAMENG){ driverName = Constants.DRIVER_NAME_DAMENG; } else throw new IllegalArgumentException("unsupported database type: " + databaseType); return driverName; } public static final String DRIVER_NAME_DERBY = "org.apache.derby.jdbc.EmbeddedDriver"; // public static final String DRIVER_NAME_MYSQL = "com.mysql.jdbc.Driver"; public static final String DRIVER_NAME_MYSQL = "com.mysql.cj.jdbc.Driver"; public static final String DRIVER_NAME_ORACLE = "oracle.jdbc.driver.OracleDriver"; public static final String DRIVER_NAME_POSTGRES = "org.postgresql.Driver"; public static final String DRIVER_NAME_SQLSERVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; public static final String DRIVER_NAME_DAMENG = "dm.jdbc.driver.DmDriver"; public static final int DEFAULT_PORT_DERBY = 0; public static final int DEFAULT_PORT_MYSQL = 3306; public static final int DEFAULT_PORT_ORACLE = 1521; public static final int DEFAULT_PORT_POSTGRES = 5432; public static final int DEFAULT_PORT_SQLSERVER = 1433; public static final int DEFAULT_PORT_DAMENG = 5236; /** * PO中加入的'parameter'(Map)字段名字。 * @date 2023-03-24 */ public static final String PO_FIELD_PARAMETER = "parameter"; public static final String SQL_NAME_WHERE = "where"; public static final String SQL_NAME_AND = "and"; public static final String SQL_NAME_LIKE = "like"; }