public class HanaDialect extends AnsiSqlDialect
wrapper| Constructor and Description |
|---|
HanaDialect()
构造
|
| Modifier and Type | Method and Description |
|---|---|
String |
dialectName()
方言名
|
PreparedStatement |
psForUpsert(Connection conn,
Entity entity,
String... keys)
构建用于upsert的
PreparedStatement。 |
protected SqlBuilder |
wrapPageSql(SqlBuilder find,
Page page)
根据不同数据库在查询SQL语句基础上包装其分页的语句
各自数据库通过重写此方法实现最小改动情况下修改分页语句 |
getWrapper, psForDelete, psForFind, psForInsert, psForInsertBatch, psForPage, psForPage, psForUpdate, setWrapperclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitpsForCount, psForCountpublic String dialectName()
DialectdialectName in interface DialectdialectName in class AnsiSqlDialectprotected SqlBuilder wrapPageSql(SqlBuilder find, Page page)
AnsiSqlDialectwrapPageSql in class AnsiSqlDialectfind - 标准查询语句page - 分页对象public PreparedStatement psForUpsert(Connection conn, Entity entity, String... keys) throws SQLException
PreparedStatement。
SAP HANA 使用 MERGE INTO 语法来实现 UPSERT 操作。
生成 SQL 语法为:
MERGE INTO demo AS target
USING (SELECT ? AS a, ? AS b, ? AS c FROM DUMMY) AS source
ON target.id = source.id
WHEN MATCHED THEN
UPDATE SET target.a = source.a, target.b = source.b, target.c = source.c
WHEN NOT MATCHED THEN
INSERT (a, b, c) VALUES (source.a, source.b, source.c);
conn - 数据库连接对象entity - 数据实体类(包含表名)keys - 主键字段数组,通常用于确定匹配条件(联合主键)SQLException - SQL 执行异常Copyright © 2025. All rights reserved.