Class DatabaseUtils
- java.lang.Object
-
- com.priint.pubserver.connector.jpa.api.DatabaseUtils
-
public class DatabaseUtils extends java.lang.ObjectDatabase utilities for working with JPA.Methods to support special queries that are vendor dependent.
Database types are "mysql", "oracle", "sqlserver", and "unknown".
-
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static java.lang.StringgetDatabaseDriverName(javax.persistence.EntityManager em)Deprecated.Either usegetDatabaseType(EntityManager)orgetMetaData(EntityManager)static java.lang.StringgetDatabaseType(javax.persistence.EntityManager em)Get the database type backing an JPA entity manager.static java.lang.StringgetForLikeStr(java.lang.String searchStr, java.lang.String databaseDriverName)Escapes a JPQL LIKE expression value.static java.lang.StringgetLikeStr(java.lang.String searchStr, java.lang.String databaseDriverName)Returns a JPQL LIKE expression value from an input string.
E.g.static java.sql.DatabaseMetaDatagetMetaData(javax.persistence.EntityManager em)Get the metadata of the database backing an JPA entity manager.static java.lang.StringgetStartWithStr(java.lang.String searchStr, java.lang.String databaseDriverName)Returns a JPQL LIKE expression value from an input string.
-
-
-
Field Detail
-
UNKNOWN
public static final java.lang.String UNKNOWN
The Constant UNKNOWN.- See Also:
- Constant Field Values
-
SQLSERVER
public static final java.lang.String SQLSERVER
The Constant SQLSERVER.- See Also:
- Constant Field Values
-
ORACLE
public static final java.lang.String ORACLE
The Constant ORACLE.- See Also:
- Constant Field Values
-
MYSQL
public static final java.lang.String MYSQL
The Constant MYSQL.- See Also:
- Constant Field Values
-
-
Method Detail
-
getLikeStr
public static java.lang.String getLikeStr(java.lang.String searchStr, java.lang.String databaseDriverName)Returns a JPQL LIKE expression value from an input string.
E.g. for Oracle this will escape the string and then prepend and append "%".No input (null) will return a "match all" expression.
Empty string will return an exact search for an empty string.
Note: This is currently not supported in the ison UI.You cannot specify a search for a database NULL value.
- Parameters:
searchStr- the search strdatabaseDriverName- the database driver name- Returns:
- the like str
-
getStartWithStr
public static java.lang.String getStartWithStr(java.lang.String searchStr, java.lang.String databaseDriverName)Returns a JPQL LIKE expression value from an input string. E.g. for Oracle this will escape the string and then append "%".No input (null) will return a "match all" expression.
Empty string will return an exact search for an empty string.
Note: This is currently not supported in the ison UI.You cannot specify a search for a database NULL value.
- Parameters:
searchStr- the search strdatabaseDriverName- the database driver name- Returns:
- the start with str
-
getForLikeStr
public static java.lang.String getForLikeStr(java.lang.String searchStr, java.lang.String databaseDriverName)Escapes a JPQL LIKE expression value.E.g. for Oracle this will escape the characters "_" and "%" by prepending them with "?".
No input (null) will return a "match all" expression.
Empty string will return an exact search for an empty string.
Note: This is currently not supported in the ison UI.You cannot specify a search for a database NULL value.
- Parameters:
searchStr- the search strdatabaseDriverName- the database driver name- Returns:
- the for like str
-
getDatabaseType
public static java.lang.String getDatabaseType(javax.persistence.EntityManager em)
Get the database type backing an JPA entity manager.Type is extracted from the JDBC URL as lowercase string. E.g. "sqlserver" from jdbc:sqlserver://127.0.0.1:1433;databaseName=priint_PublishingHubDB
Supported types are "mysql", "sqlserver", "oracle", and "unknown"
- Parameters:
em- the em- Returns:
- the database type
-
getMetaData
public static java.sql.DatabaseMetaData getMetaData(javax.persistence.EntityManager em)
Get the metadata of the database backing an JPA entity manager.Example usages of this method for an MSSQL
- getMetaData(em).getDatabaseProductName() => Microsoft SQL Server
- getMetaData(em).getDatabaseProductVersion() => 12.00.2269
- getMetaData(em).getDriverName() => Microsoft JDBC Driver 4.0 for SQL Server
- getMetaData(em).getDriverVersion() => 4.0.2206.100
- getMetaData(em).getURL() => jdbc:sqlserver://127.0.0.1:1433;databaseName=priint_PublishingHubDB;sendStringParametersAsUnicode=true;...
- Parameters:
em- the em- Returns:
- the meta data
-
getDatabaseDriverName
@Deprecated public static java.lang.String getDatabaseDriverName(javax.persistence.EntityManager em)
Deprecated.Either usegetDatabaseType(EntityManager)orgetMetaData(EntityManager)Gets the database driver name.- Parameters:
em- the em- Returns:
- the database driver name
-
-