public class AnsiSqlDialect extends Object implements Dialect
Modifier and Type | Field and Description |
---|---|
protected DbConfig |
dbConfig |
protected QuoteWrapper |
quoteWrapper |
Constructor and Description |
---|
AnsiSqlDialect(DbConfig dbConfig)
构造
|
Modifier and Type | Method and Description |
---|---|
String |
dialectName()
方言名
|
QuoteWrapper |
getWrapper() |
PreparedStatement |
psForDelete(Connection conn,
Query query)
构建用于删除的
PreparedStatement 用户实现需按照数据库方言格式,将 Query 转换为带有占位符的SQL语句及参数列表Query 中包含了删除所需的表名、查询条件等信息,可借助SqlBuilder完成SQL语句生成。 |
PreparedStatement |
psForFind(Connection conn,
Query query)
构建用于获取多条记录的
PreparedStatement 用户实现需按照数据库方言格式,将 Query 转换为带有占位符的SQL语句及参数列表Query 中包含了查询所需的表名、查询条件等信息,可借助SqlBuilder完成SQL语句生成。 |
PreparedStatement |
psForInsert(boolean returnGeneratedKey,
Connection conn,
Entity entity)
|
PreparedStatement |
psForInsertBatch(Connection conn,
Entity... entities)
构建用于批量插入的PreparedStatement
用户实现需按照数据库方言格式,将 Entity 转换为带有占位符的SQL语句及参数列表 |
PreparedStatement |
psForPage(Connection conn,
Query query)
构建用于分页查询的
PreparedStatement 用户实现需按照数据库方言格式,将 Query 转换为带有占位符的SQL语句及参数列表Query 中包含了分页查询所需的表名、查询条件、分页等信息,可借助SqlBuilder完成SQL语句生成。 |
PreparedStatement |
psForPage(Connection conn,
SqlBuilder sqlBuilder,
Page page)
|
PreparedStatement |
psForUpdate(Connection conn,
Entity entity,
Query query)
构建用于更新的
PreparedStatement 用户实现需按照数据库方言格式,将 Entity 配合Query 转换为带有占位符的SQL语句及参数列表其中 Entity 中包含需要更新的数据信息,Query 包含更新的查找条件信息。 |
PreparedStatement |
psForUpsert(Connection conn,
Entity entity,
String... keys)
|
void |
setWrapper(QuoteWrapper quoteWrapper)
设置包装器
|
protected SqlBuilder |
wrapPageSql(SqlBuilder find,
Page page)
根据不同数据库在查询SQL语句基础上包装其分页的语句
各自数据库通过重写此方法实现最小改动情况下修改分页语句 |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
psForCount, psForCount
protected DbConfig dbConfig
protected QuoteWrapper quoteWrapper
public AnsiSqlDialect(DbConfig dbConfig)
dbConfig
- 数据库配置public QuoteWrapper getWrapper()
getWrapper
in interface Dialect
public void setWrapper(QuoteWrapper quoteWrapper)
Dialect
setWrapper
in interface Dialect
quoteWrapper
- 包装器public PreparedStatement psForInsert(boolean returnGeneratedKey, Connection conn, Entity entity)
Dialect
psForInsert
in interface Dialect
returnGeneratedKey
- 是否返回自增主键conn
- 数据库连接对象entity
- 数据实体类(包含表名)public PreparedStatement psForInsertBatch(Connection conn, Entity... entities)
Dialect
Entity
转换为带有占位符的SQL语句及参数列表psForInsertBatch
in interface Dialect
conn
- 数据库连接对象entities
- 数据实体,实体的结构必须全部一致,否则插入结果将不可预知public PreparedStatement psForDelete(Connection conn, Query query) throws DbException
Dialect
PreparedStatement
Query
转换为带有占位符的SQL语句及参数列表Query
中包含了删除所需的表名、查询条件等信息,可借助SqlBuilder完成SQL语句生成。psForDelete
in interface Dialect
conn
- 数据库连接对象query
- 查找条件(包含表名)DbException
- SQL执行异常public PreparedStatement psForUpdate(Connection conn, Entity entity, Query query) throws DbException
Dialect
PreparedStatement
Entity
配合Query
转换为带有占位符的SQL语句及参数列表Entity
中包含需要更新的数据信息,Query
包含更新的查找条件信息。psForUpdate
in interface Dialect
conn
- 数据库连接对象entity
- 数据实体类(包含表名)query
- 查找条件(包含表名)DbException
- SQL执行异常public PreparedStatement psForUpsert(Connection conn, Entity entity, String... keys) throws DbException
Dialect
psForUpsert
in interface Dialect
conn
- 数据库连接对象entity
- 数据实体类(包含表名)keys
- 查找字段,某些数据库此字段必须,如H2,某些数据库无需此字段,如MySQL(通过主键)DbException
- SQL执行异常,或方言数据不支持此操作public PreparedStatement psForFind(Connection conn, Query query)
Dialect
PreparedStatement
Query
转换为带有占位符的SQL语句及参数列表Query
中包含了查询所需的表名、查询条件等信息,可借助SqlBuilder完成SQL语句生成。public PreparedStatement psForPage(Connection conn, Query query)
Dialect
PreparedStatement
Query
转换为带有占位符的SQL语句及参数列表Query
中包含了分页查询所需的表名、查询条件、分页等信息,可借助SqlBuilder完成SQL语句生成。public PreparedStatement psForPage(Connection conn, SqlBuilder sqlBuilder, Page page)
Dialect
psForPage
in interface Dialect
conn
- 数据库连接对象sqlBuilder
- SQL构建器,可以使用SqlBuilder.of(CharSequence)
包装普通SQLpage
- 分页对象protected SqlBuilder wrapPageSql(SqlBuilder find, Page page)
find
- 标准查询语句page
- 分页对象public String dialectName()
Dialect
dialectName
in interface Dialect
Copyright © 2025. All rights reserved.