类 AnsiDialect
- java.lang.Object
-
- ai.yue.library.data.jdbc.client.DbBase
-
- ai.yue.library.data.jdbc.client.dialect.impl.AnsiDialect
-
- 所有已实现的接口:
Dialect,Serializable,Cloneable
- 直接已知子类:
DmDialect,MysqlDialect,PostgresqlDialect
public class AnsiDialect extends DbBase implements Dialect
ANSI SQL- 从以下版本开始:
- 2020年6月13日
- 作者:
- ylyue
- 另请参阅:
- 序列化表格
-
-
字段概要
字段 修饰符和类型 字段 说明 protected JdbcPropertiesjdbcPropertiesprotected org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplatenamedParameterJdbcTemplateprotected Wrapperwrapper
-
构造器概要
构造器 构造器 说明 AnsiDialect(org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate namedParameterJdbcTemplate, JdbcProperties jdbcProperties)
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 AnsiDialectclone()DialectcloneDialect()克隆方言DialectNameEnumdialectName()方言名StringgetPageJoinSql()获得用于SQL字符串拼接的SQL分页字符串LonginsertOrUpdate(String tableName, com.alibaba.fastjson.JSONObject paramJson, String[] conditions, DbUpdateEnum dBUpdateEnum)插入或更新 表中必须存在数据唯一性约束<T> PageVO<T>page(String tableName, PageIPO pageIPO, SortEnum sortEnum, Class<T> mappedClass)单表分页查询<T> PageVO<T>pageSql(String querySql, PageIPO pageIPO, Class<T> mappedClass)复杂SQL分页查询<T> PageVO<T>pageSql(String countSql, String querySql, PageIPO pageIPO, Class<T> mappedClass)复杂SQL分页查询<T> PageVO<T>pageWhere(String tableName, String whereSql, PageIPO pageIPO, Class<T> mappedClass)单表分页查询PagetoPage(PageIPO pageIPO)转换为经过方言处理的分页查询参数,用于SQL分页查询-
从类继承的方法 ai.yue.library.data.jdbc.client.DbBase
aop, getDataSource, getDeleteWhereSql, getJdbcProperties, getJdbcTemplate, getNamedParameterJdbcTemplate, getRowMapper, isDataSize, isUpdateAndExpectedEqual, isUpdateAndExpectedGreaterThanEqual, listResultToGetResult, paramFormat, paramToWhereSql, paramToWhereSql, paramValidate, paramValidate, paramValidate, paramValidate, paramValidate, paramValidate, paramValidate, paramValidate, queryForJson, queryForList, queryForList, queryForObject, queryForRowSet, resultToJson, resultToObject, setDataSource, updateAndExpectedEqual, updateAndExpectedGreaterThanEqual, updateBatchAndExpectedEqual
-
从类继承的方法 java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
从接口继承的方法 ai.yue.library.data.jdbc.client.dialect.Dialect
getJdbcProperties, getNamedParameterJdbcTemplate, getWrapper, setJdbcProperties, setNamedParameterJdbcTemplate, setWrapper
-
-
-
-
字段详细资料
-
wrapper
protected Wrapper wrapper
-
jdbcProperties
protected JdbcProperties jdbcProperties
-
namedParameterJdbcTemplate
protected org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate namedParameterJdbcTemplate
-
-
构造器详细资料
-
AnsiDialect
public AnsiDialect(org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate namedParameterJdbcTemplate, JdbcProperties jdbcProperties)
-
-
方法详细资料
-
cloneDialect
public Dialect cloneDialect()
从接口复制的说明:Dialect克隆方言- 指定者:
cloneDialect在接口中Dialect- 返回:
- 克隆方言
-
clone
public AnsiDialect clone()
-
dialectName
public DialectNameEnum dialectName()
从接口复制的说明:Dialect方言名- 指定者:
dialectName在接口中Dialect- 返回:
- 方言名
-
getPageJoinSql
public String getPageJoinSql()
获得用于SQL字符串拼接的SQL分页字符串默认实现MySQL标准,如:
- LIMIT 0,10(从第一条数据开始,查询10条数据)
- 指定者:
getPageJoinSql在接口中Dialect- 返回:
- 用于SQL字符串拼接的SQL分页字符串(带具名参数的SQL字符串,非SQL拼接)
-
insertOrUpdate
public Long insertOrUpdate(String tableName, com.alibaba.fastjson.JSONObject paramJson, String[] conditions, DbUpdateEnum dBUpdateEnum)
从接口复制的说明:Dialect插入或更新 表中必须存在数据唯一性约束更新触发条件:此数据若存在唯一性约束则更新,否则便执行插入数据
MySQL执行示例:
INSERT INTO table (param1, param2, ...)
VALUES
(:param1, :param2, ...)
ON DUPLICATE KEY UPDATE
condition = condition + :condition, ...- 指定者:
insertOrUpdate在接口中Dialect- 参数:
tableName- 表名paramJson- 插入或更新所用到的参数conditions- 更新条件(对应paramJson内的key值)dBUpdateEnum- 更新类型 DbUpdateEnum- 返回:
- 受影响的行数
-
page
public <T> PageVO<T> page(String tableName, PageIPO pageIPO, SortEnum sortEnum, Class<T> mappedClass)
从接口复制的说明:Dialect单表分页查询
阿里最优SQL示例:
SELECT a.* FROM 表1 a, (select id from 表1 where 条件 ORDER BY id LIMIT 100000,20 ) b where a.id=b.id
-
pageWhere
public <T> PageVO<T> pageWhere(String tableName, String whereSql, PageIPO pageIPO, Class<T> mappedClass)
从接口复制的说明:Dialect单表分页查询
阿里最优SQL示例:
SELECT a.* FROM 表1 a, (select id from 表1 where 条件 LIMIT 100000,20 ) b where a.id=b.id
-
pageSql
public <T> PageVO<T> pageSql(String querySql, PageIPO pageIPO, Class<T> mappedClass)
从接口复制的说明:Dialect复杂SQL分页查询
阿里最优查询SQL示例:
SELECT a.* FROM 表1 a, (select id from 表1 where 条件 LIMIT :page, :limit) b where a.id=b.id
-
pageSql
public <T> PageVO<T> pageSql(@Nullable String countSql, String querySql, PageIPO pageIPO, Class<T> mappedClass)
从接口复制的说明:Dialect复杂SQL分页查询
统计SQL示例:
SELECT count(*) count FROM 表1 a, (select id from 表1 where 条件) b where a.id=b.id
阿里最优查询SQL示例:
SELECT a.* FROM 表1 a, (select id from 表1 where 条件 LIMIT :page, :limit) b where a.id=b.id
-
-