@Preview(value="3.9.1")
public interface SqlDialect
用于处理不同数据库在标识符转义、分页语法、元数据读取以及给 AI 的特定指令差异
| 限定符和类型 | 方法和说明 |
|---|---|
default SqlDialect |
adaptDialect(java.sql.Connection conn)
根据连接信息动态适配方言(如 H2 的兼容模式判断)
|
java.lang.String |
applyPagination(java.lang.String sql,
int maxRows)
为 SQL 增加分页限制
|
default java.lang.String |
findSchema(java.sql.Connection conn)
获取当前连接的 Schema
|
default java.lang.String |
getColumnName(java.lang.String tableName,
java.sql.ResultSet rs)
读取列名
|
default boolean |
getColumnNullable(java.lang.String tableName,
java.sql.ResultSet rs)
判断列是否允许为空
|
default int |
getColumnSize(java.lang.String tableName,
java.sql.ResultSet rs)
读取列长度
|
default java.lang.String |
getColumnType(java.lang.String tableName,
java.sql.ResultSet rs)
读取列类型名称
|
java.lang.String |
getCustomInstruction()
获取给 AI 的方言特定提示(例如:日期函数的使用习惯)
|
java.lang.String |
getErrorHint(java.sql.SQLException e)
根据异常信息提供纠错建议
|
java.lang.String |
getName()
获取方言名称
|
default java.lang.String |
getRelation(java.lang.String tableName,
java.sql.ResultSet rs)
获取外键关系描述
|
default java.lang.String |
getRemark(java.lang.String tableName,
java.sql.ResultSet rs)
读取表或列的注释备注
|
default boolean |
hasLimit(java.lang.String upperSql)
判断 SQL 是否已包含限制语句
|
boolean |
matched(java.lang.String product)
是否区配
|
java.lang.String |
quoteIdentifier(java.lang.String name)
包装标识符(如加反引号或双引号),防止关键字冲突
|
java.lang.String getName()
boolean matched(java.lang.String product)
java.lang.String quoteIdentifier(java.lang.String name)
java.lang.String applyPagination(java.lang.String sql,
int maxRows)
java.lang.String getCustomInstruction()
java.lang.String getErrorHint(java.sql.SQLException e)
default java.lang.String findSchema(java.sql.Connection conn)
throws java.sql.SQLException
java.sql.SQLExceptiondefault boolean hasLimit(java.lang.String upperSql)
default java.lang.String getRemark(java.lang.String tableName,
java.sql.ResultSet rs)
throws java.sql.SQLException
java.sql.SQLExceptiondefault java.lang.String getColumnName(java.lang.String tableName,
java.sql.ResultSet rs)
throws java.sql.SQLException
java.sql.SQLExceptiondefault java.lang.String getColumnType(java.lang.String tableName,
java.sql.ResultSet rs)
throws java.sql.SQLException
java.sql.SQLExceptiondefault int getColumnSize(java.lang.String tableName,
java.sql.ResultSet rs)
throws java.sql.SQLException
java.sql.SQLExceptiondefault boolean getColumnNullable(java.lang.String tableName,
java.sql.ResultSet rs)
throws java.sql.SQLException
java.sql.SQLExceptiondefault java.lang.String getRelation(java.lang.String tableName,
java.sql.ResultSet rs)
throws java.sql.SQLException
java.sql.SQLExceptiondefault SqlDialect adaptDialect(java.sql.Connection conn)