me.zzp.ar.d.PostgreSQLDialect Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jactiverecord Show documentation
Show all versions of jactiverecord Show documentation
ActiveRecord of Ruby on Rails in Java
package me.zzp.ar.d;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import me.zzp.ar.ex.DBOpenException;
/**
* PostgreSQL方言。
*
* @since 1.0
* @author redraiment
*/
public class PostgreSQLDialect implements Dialect {
/**
* 判断当前数据库的名称里是否包含postgresql(忽略大小写)。
*
* @param c 数据库连接
* @return 如果数据库名称包含postgresql,则返回true;否则返回false。
*/
@Override
public boolean accept(Connection c) {
try {
DatabaseMetaData d = c.getMetaData();
String name = d.getDatabaseProductName(); // PostgreSQL
return name.toLowerCase().contains("postgresql");
} catch (SQLException e) {
throw new DBOpenException(e);
}
}
/**
* 返回PostgreSQL中定义自增长的整型主键语句。
*
* @return serial primary key。
*/
@Override
public String getIdentity() {
return "serial primary key";
}
/**
* 将标识转换成为小写。
*
* @param identifier 待转换的标识。
* @return 小写形式的标识。
*/
@Override
public String getCaseIdentifier(String identifier) {
return identifier.toLowerCase();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy