Package | Description |
---|---|
cn.hutool.db |
Hutool-db是一个在JDBC基础上封装的数据库操作工具类,通过包装,使用ActiveRecord思想操作数据库。
|
cn.hutool.db.dialect |
数据库方言封装,包括数据库方言以及方言自动识别等
|
cn.hutool.db.dialect.impl |
数据库方言实现,包括MySQL、Oracle、PostgreSQL、Sqlite3、H2、SqlServer2012等
|
cn.hutool.db.handler |
JDBC结果集(ResultSet)转换封装,通过实现RsHandler接口,将ResultSet转换为我们想要的数据类型
|
cn.hutool.db.meta |
JDBC数据表元数据信息封装,包括表结构、列信息的封装,入口为MetaUtil
|
cn.hutool.db.sql |
SQL语句和Statement构建封装
|
Modifier and Type | Class and Description |
---|---|
class |
ActiveEntity
动态实体类
提供了针对自身实体的增删改方法 |
Modifier and Type | Method and Description |
---|---|
Entity |
Entity.addFieldNames(String... fieldNames)
添加字段列表
|
Entity |
Entity.clone() |
static Entity |
Entity.create()
创建Entity
|
static Entity |
Entity.create(String tableName)
创建Entity
|
Entity |
Entity.filter(String... keys)
过滤Map保留指定键值对,如果键不存在跳过
|
Entity |
DaoTemplate.get(Entity where)
根据条件实体查询单个记录,当有多条返回时,只显示查询到的第一条
|
Entity |
AbstractDb.get(Entity where)
根据条件实体查询单个记录,当有多条返回时,只显示查询到的第一条
|
<T> Entity |
AbstractDb.get(String tableName,
String field,
T value)
根据某个字段(最好是唯一字段)查询单个记录
当有多条返回时,只显示查询到的第一条 |
<T> Entity |
DaoTemplate.get(String field,
T value)
根据某个字段(最好是唯一字段)查询单个记录
当有多条返回时,只显示查询到的第一条 |
<T> Entity |
DaoTemplate.get(T pk)
根据主键获取单个记录
|
static <T> Entity |
Entity.parse(T bean)
将PO对象转为Entity
|
static <T> Entity |
Entity.parse(T bean,
boolean isToUnderlineCase,
boolean ignoreNullValue)
将PO对象转为Entity
|
<T> Entity |
Entity.parseBean(T bean)
将值对象转换为Entity
类名会被当作表名,小写第一个字母 |
<T> Entity |
Entity.parseBean(T bean,
boolean isToUnderlineCase,
boolean ignoreNullValue)
将值对象转换为Entity
类名会被当作表名,小写第一个字母 |
static <T> Entity |
Entity.parseWithUnderlineCase(T bean)
将PO对象转为Entity,并采用下划线法转换字段
|
Entity |
AbstractDb.queryOne(String sql,
Object... params)
查询单条记录
|
Entity |
Entity.removeNew(String... keys)
过滤Map去除指定键值对,如果键不存在跳过
|
Entity |
Entity.set(String field,
Object value) |
Entity |
Entity.setFieldNames(Collection<String> fieldNames)
设置字段列表,用于限制加入的字段的值
|
Entity |
Entity.setFieldNames(String... fieldNames)
设置字段列表,用于限制加入的字段的值
|
Entity |
Entity.setFields(Func0<?>... fields)
通过lambda批量设置值
|
Entity |
Entity.setIgnoreNull(String field,
Object value) |
Entity |
Entity.setTableName(String tableName)
设置表名
|
Modifier and Type | Method and Description |
---|---|
List<Entity> |
AbstractDb.find(Collection<String> fields,
Entity where)
查询
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
List<Entity> |
SqlConnRunner.find(Connection conn,
Entity where)
查询数据列表,返回字段在where参数中定义
|
List<Entity> |
DaoTemplate.find(Entity where)
根据某个字段值查询结果
|
List<Entity> |
AbstractDb.find(Entity where)
查询数据列表,返回字段由where参数指定
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
<T> List<Entity> |
DaoTemplate.find(String field,
T value)
根据某个字段值查询结果
|
List<Entity> |
DaoTemplate.findAll()
查询当前表的所有记录
|
List<Entity> |
SqlConnRunner.findAll(Connection conn,
Entity where)
查询数据列表,返回所有字段
|
List<Entity> |
SqlConnRunner.findAll(Connection conn,
String tableName)
查询数据列表,返回所有字段
|
List<Entity> |
AbstractDb.findAll(Entity where)
查询数据列表,返回所有字段
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
List<Entity> |
AbstractDb.findAll(String tableName)
查询数据列表,返回所有字段
|
List<Entity> |
SqlConnRunner.findBy(Connection conn,
String tableName,
String field,
Object value)
根据某个字段名条件查询数据列表,返回所有字段
|
List<Entity> |
AbstractDb.findBy(String tableName,
Condition... wheres)
根据多个条件查询数据列表,返回所有字段
|
List<Entity> |
AbstractDb.findBy(String tableName,
String field,
Object value)
根据某个字段名条件查询数据列表,返回所有字段
|
List<Entity> |
DaoTemplate.findBySql(String sql,
Object... params)
根据SQL语句查询结果
SQL语句可以是非完整SQL语句,可以只提供查询的条件部分(例如WHERE部分) 此方法会自动补全SELECT * FROM [tableName] 部分,这样就无需关心表名,直接提供条件即可 |
List<Entity> |
SqlConnRunner.findIn(Connection conn,
String tableName,
String field,
Object... values)
根据某个字段名条件查询数据列表,返回所有字段
|
List<Entity> |
SqlConnRunner.findLike(Connection conn,
String tableName,
String field,
String value,
Condition.LikeType likeType)
根据某个字段名条件查询数据列表,返回所有字段
|
List<Entity> |
AbstractDb.findLike(String tableName,
String field,
String value,
Condition.LikeType likeType)
根据某个字段名条件查询数据列表,返回所有字段
|
PageResult<Entity> |
AbstractDb.page(CharSequence sql,
Page page,
Object... params)
分页查询
|
PageResult<Entity> |
AbstractDb.page(Collection<String> fields,
Entity where,
int pageNumber,
int pageSize)
分页查询
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
PageResult<Entity> |
AbstractDb.page(Collection<String> fields,
Entity where,
Page page)
分页查询
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
PageResult<Entity> |
SqlConnRunner.page(Connection conn,
Collection<String> fields,
Entity where,
int page,
int numPerPage)
分页查询
此方法不会关闭Connection |
PageResult<Entity> |
SqlConnRunner.page(Connection conn,
Collection<String> fields,
Entity where,
Page page)
分页查询
此方法不会关闭Connection |
PageResult<Entity> |
SqlConnRunner.page(Connection conn,
Entity where,
Page page)
分页全字段查询
此方法不会关闭Connection |
PageResult<Entity> |
SqlConnRunner.page(Connection conn,
SqlBuilder sqlBuilder,
Page page)
分页查询
此方法不会关闭Connection |
PageResult<Entity> |
AbstractDb.page(Entity where,
int page,
int numPerPage)
分页查询
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
PageResult<Entity> |
DaoTemplate.page(Entity where,
Page page)
分页
|
PageResult<Entity> |
AbstractDb.page(Entity where,
Page page)
分页查询
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
PageResult<Entity> |
DaoTemplate.page(Entity where,
Page page,
String... selectFields)
分页
|
List<Entity> |
AbstractDb.pageForEntityList(Entity where,
int page,
int numPerPage)
分页查询,结果为Entity列表,不计算总数
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
List<Entity> |
AbstractDb.pageForEntityList(Entity where,
Page page)
分页查询,结果为Entity列表,不计算总数
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
List<Entity> |
AbstractDb.query(String sql,
Map<String,Object> params)
查询
|
List<Entity> |
AbstractDb.query(String sql,
Object... params)
查询
|
Modifier and Type | Method and Description |
---|---|
int |
DaoTemplate.add(Entity entity)
添加
|
Long |
DaoTemplate.addForGeneratedKey(Entity entity)
添加
|
List<Object> |
DaoTemplate.addForGeneratedKeys(Entity entity)
添加
|
int |
DaoTemplate.addOrUpdate(Entity entity)
增加或者更新实体
|
long |
DialectRunner.count(Connection conn,
Entity where)
获取结果总数,生成类似于select count(1) from XXX wher XXX=?
|
long |
DaoTemplate.count(Entity where)
满足条件的数据条目数量
|
long |
AbstractDb.count(Entity where)
结果的条目数
|
int |
DialectRunner.del(Connection conn,
Entity where)
删除数据
此方法不会关闭Connection |
int |
AbstractDb.del(Entity where)
删除数据
|
<T> int |
DaoTemplate.del(Entity where)
删除
|
boolean |
DaoTemplate.exist(Entity where)
指定条件的数据是否存在
|
List<Entity> |
AbstractDb.find(Collection<String> fields,
Entity where)
查询
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
<T> T |
AbstractDb.find(Collection<String> fields,
Entity where,
RsHandler<T> rsh)
查询
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
<T> T |
SqlConnRunner.find(Connection conn,
Collection<String> fields,
Entity where,
RsHandler<T> rsh)
查询
此方法不会关闭Connection |
List<Entity> |
SqlConnRunner.find(Connection conn,
Entity where)
查询数据列表,返回字段在where参数中定义
|
<T> T |
SqlConnRunner.find(Connection conn,
Entity where,
RsHandler<T> rsh,
String... fields)
查询,返回指定字段列表
此方法不会关闭Connection |
List<Entity> |
DaoTemplate.find(Entity where)
根据某个字段值查询结果
|
List<Entity> |
AbstractDb.find(Entity where)
查询数据列表,返回字段由where参数指定
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
<T> List<T> |
AbstractDb.find(Entity where,
Class<T> beanClass)
查询数据列表,返回字段由where参数指定
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
<T> T |
AbstractDb.find(Entity where,
RsHandler<T> rsh,
String... fields)
查询,返回所有字段
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
List<Entity> |
SqlConnRunner.findAll(Connection conn,
Entity where)
查询数据列表,返回所有字段
|
List<Entity> |
AbstractDb.findAll(Entity where)
查询数据列表,返回所有字段
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
<T> List<T> |
AbstractDb.findAll(Entity where,
Class<T> beanClass)
查询数据列表,返回所有字段
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
Entity |
DaoTemplate.get(Entity where)
根据条件实体查询单个记录,当有多条返回时,只显示查询到的第一条
|
Entity |
AbstractDb.get(Entity where)
根据条件实体查询单个记录,当有多条返回时,只显示查询到的第一条
|
int[] |
DialectRunner.insert(Connection conn,
Entity... records)
批量插入数据
批量插入必须严格保持Entity的结构一致,不一致会导致插入数据出现不可预知的结果 此方法不会关闭Connection |
int |
SqlConnRunner.insert(Connection conn,
Entity record)
插入数据
此方法不会关闭Connection |
<T> T |
DialectRunner.insert(Connection conn,
Entity record,
RsHandler<T> generatedKeysHandler)
插入数据
此方法不会关闭Connection |
int |
AbstractDb.insert(Entity record)
插入数据
|
Long |
SqlConnRunner.insertForGeneratedKey(Connection conn,
Entity record)
插入数据
此方法不会关闭Connection |
Long |
AbstractDb.insertForGeneratedKey(Entity record)
插入数据
|
List<Object> |
SqlConnRunner.insertForGeneratedKeys(Connection conn,
Entity record)
插入数据
此方法不会关闭Connection |
List<Object> |
AbstractDb.insertForGeneratedKeys(Entity record)
插入数据
|
int |
DialectRunner.insertOrUpdate(Connection conn,
Entity record,
String... keys)
插入或更新数据
此方法不会关闭Connection |
int |
AbstractDb.insertOrUpdate(Entity record,
String... keys)
插入或更新数据
根据给定的字段名查询数据,如果存在则更新这些数据,否则执行插入 |
PageResult<Entity> |
AbstractDb.page(Collection<String> fields,
Entity where,
int pageNumber,
int pageSize)
分页查询
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
<T> T |
AbstractDb.page(Collection<String> fields,
Entity where,
int page,
int numPerPage,
RsHandler<T> rsh)
分页查询
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
PageResult<Entity> |
AbstractDb.page(Collection<String> fields,
Entity where,
Page page)
分页查询
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
<T> T |
AbstractDb.page(Collection<String> fields,
Entity where,
Page page,
RsHandler<T> rsh)
分页查询
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
PageResult<Entity> |
SqlConnRunner.page(Connection conn,
Collection<String> fields,
Entity where,
int page,
int numPerPage)
分页查询
此方法不会关闭Connection |
<T> T |
SqlConnRunner.page(Connection conn,
Collection<String> fields,
Entity where,
int pageNumber,
int numPerPage,
RsHandler<T> rsh)
分页查询
此方法不会关闭Connection |
PageResult<Entity> |
SqlConnRunner.page(Connection conn,
Collection<String> fields,
Entity where,
Page page)
分页查询
此方法不会关闭Connection |
<T> T |
SqlConnRunner.page(Connection conn,
Collection<String> fields,
Entity where,
Page page,
RsHandler<T> handler)
分页查询
此方法不会关闭Connection |
PageResult<Entity> |
SqlConnRunner.page(Connection conn,
Entity where,
Page page)
分页全字段查询
此方法不会关闭Connection |
PageResult<Entity> |
AbstractDb.page(Entity where,
int page,
int numPerPage)
分页查询
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
<T> T |
AbstractDb.page(Entity where,
int page,
int numPerPage,
RsHandler<T> rsh)
分页查询
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
PageResult<Entity> |
DaoTemplate.page(Entity where,
Page page)
分页
|
PageResult<Entity> |
AbstractDb.page(Entity where,
Page page)
分页查询
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
<T> T |
AbstractDb.page(Entity where,
Page page,
RsHandler<T> rsh)
分页查询
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
PageResult<Entity> |
DaoTemplate.page(Entity where,
Page page,
String... selectFields)
分页
|
List<Entity> |
AbstractDb.pageForEntityList(Entity where,
int page,
int numPerPage)
分页查询,结果为Entity列表,不计算总数
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
List<Entity> |
AbstractDb.pageForEntityList(Entity where,
Page page)
分页查询,结果为Entity列表,不计算总数
查询条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
static PreparedStatement |
StatementUtil.prepareStatementForBatch(Connection conn,
String sql,
Iterable<String> fields,
Entity... entities)
创建批量操作的
PreparedStatement |
int |
DialectRunner.update(Connection conn,
Entity record,
Entity where)
更新数据
此方法不会关闭Connection |
int |
DaoTemplate.update(Entity entity)
更新
|
int |
DaoTemplate.update(Entity record,
Entity where)
按照条件更新
|
int |
AbstractDb.update(Entity record,
Entity where)
更新数据
更新条件为多个key value对表示,默认key = value,如果使用其它条件可以使用:where.put("key", " > 1"),value也可以传Condition对象,key被忽略 |
int |
DialectRunner.upsert(Connection conn,
Entity record,
String... keys)
更新或插入数据
此方法不会关闭Connection 如果方言未实现此方法则内部自动使用insertOrUpdate来替代功能 |
int |
AbstractDb.upsert(Entity record,
String... keys)
使用upsert语义插入或更新数据
根据给定的字段名查询数据,如果存在则更新这些数据,否则执行插入 如果方言未实现本方法,内部会自动调用insertOrUpdate来实现功能,由于upsert和insert使用有区别,为了兼容性保留原有insertOrUpdate不做变动 |
Modifier and Type | Method and Description |
---|---|
int[] |
AbstractDb.insert(Collection<Entity> records)
批量插入数据
需要注意的是,批量插入每一条数据结构必须一致。 |
int[] |
SqlConnRunner.insert(Connection conn,
Collection<Entity> records)
批量插入数据
需要注意的是,批量插入每一条数据结构必须一致。 |
Constructor and Description |
---|
ActiveEntity(Db db,
Entity entity)
构造
|
ActiveEntity(Entity entity)
构造
|
Modifier and Type | Method and Description |
---|---|
PreparedStatement |
Dialect.psForInsert(Connection conn,
Entity entity)
|
PreparedStatement |
Dialect.psForInsertBatch(Connection conn,
Entity... entities)
构建用于批量插入的PreparedStatement
用户实现需按照数据库方言格式,将 Entity 转换为带有占位符的SQL语句及参数列表 |
PreparedStatement |
Dialect.psForUpdate(Connection conn,
Entity entity,
Query query)
构建用于更新的
PreparedStatement 用户实现需按照数据库方言格式,将 Entity 配合Query 转换为带有占位符的SQL语句及参数列表其中 Entity 中包含需要更新的数据信息,Query 包含更新的查找条件信息。 |
default PreparedStatement |
Dialect.psForUpsert(Connection conn,
Entity entity,
String... keys)
|
Modifier and Type | Method and Description |
---|---|
PreparedStatement |
AnsiSqlDialect.psForInsert(Connection conn,
Entity entity) |
PreparedStatement |
AnsiSqlDialect.psForInsertBatch(Connection conn,
Entity... entities) |
PreparedStatement |
PhoenixDialect.psForUpdate(Connection conn,
Entity entity,
Query query) |
PreparedStatement |
AnsiSqlDialect.psForUpdate(Connection conn,
Entity entity,
Query query) |
PreparedStatement |
PostgresqlDialect.psForUpsert(Connection conn,
Entity entity,
String... keys) |
PreparedStatement |
PhoenixDialect.psForUpsert(Connection conn,
Entity entity,
String... keys) |
PreparedStatement |
MysqlDialect.psForUpsert(Connection conn,
Entity entity,
String... keys)
构建用于upsert的
PreparedStatement MySQL通过主键方式实现Upsert,故keys无效,生成SQL语法为: INSERT INTO demo(a,b,c) values(? |
PreparedStatement |
H2Dialect.psForUpsert(Connection conn,
Entity entity,
String... keys) |
PreparedStatement |
DmDialect.psForUpsert(Connection conn,
Entity entity,
String... keys) |
Modifier and Type | Method and Description |
---|---|
static <T extends Entity> |
HandleHelper.handleRow(T row,
int columnCount,
ResultSetMetaData meta,
ResultSet rs,
boolean withMetaInfo)
处理单条数据
|
static <T extends Collection<Entity>> |
HandleHelper.handleRs(ResultSet rs,
T collection)
处理多条数据
|
static <T extends Collection<Entity>> |
HandleHelper.handleRs(ResultSet rs,
T collection,
boolean caseInsensitive)
处理多条数据
|
Modifier and Type | Method and Description |
---|---|
Entity |
EntityHandler.handle(ResultSet rs) |
static Entity |
HandleHelper.handleRow(int columnCount,
ResultSetMetaData meta,
ResultSet rs)
处理单条数据
|
static Entity |
HandleHelper.handleRow(int columnCount,
ResultSetMetaData meta,
ResultSet rs,
boolean caseInsensitive)
处理单条数据
|
static Entity |
HandleHelper.handleRow(ResultSet rs)
处理单条数据
|
Modifier and Type | Method and Description |
---|---|
PageResult<Entity> |
PageResultHandler.handle(ResultSet rs) |
LinkedHashSet<Entity> |
EntitySetHandler.handle(ResultSet rs) |
List<Entity> |
EntityListHandler.handle(ResultSet rs) |
Modifier and Type | Method and Description |
---|---|
static PageResultHandler |
PageResultHandler.create(PageResult<Entity> pageResult)
创建一个 EntityHandler对象
结果集根据给定的分页对象查询数据库,填充结果 |
Constructor and Description |
---|
PageResultHandler(PageResult<Entity> pageResult)
构造
结果集根据给定的分页对象查询数据库,填充结果 |
PageResultHandler(PageResult<Entity> pageResult,
boolean caseInsensitive)
构造
结果集根据给定的分页对象查询数据库,填充结果 |
Modifier and Type | Method and Description |
---|---|
static Entity |
MetaUtil.createLimitedEntity(DataSource ds,
String tableName)
创建带有字段限制的Entity对象
此方法读取数据库中对应表的字段列表,加入到Entity中,当Entity被设置内容时,会忽略对应表字段外的所有KEY |
Modifier and Type | Method and Description |
---|---|
Entity |
Wrapper.wrap(Entity entity)
包装表名和字段名,此方法返回一个新的Entity实体类
有时字段与SQL的某些关键字冲突,导致SQL出错,因此需要将字段名用单引号或者反引号包装起来,避免冲突 |
Modifier and Type | Method and Description |
---|---|
static Condition[] |
SqlUtil.buildConditions(Entity entity)
通过实体对象构建条件对象
|
static String |
SqlUtil.buildEqualsWhere(Entity entity,
List<Object> paramValues)
构件相等条件的where语句
如果没有条件语句,泽返回空串,表示没有条件 |
SqlBuilder |
SqlBuilder.insert(Entity entity)
插入,使用默认的ANSI方言
|
SqlBuilder |
SqlBuilder.insert(Entity entity,
DialectName dialectName)
插入
插入会忽略空的字段名及其对应值,但是对于有字段名对应值为 null 的情况不忽略 |
SqlBuilder |
SqlBuilder.insert(Entity entity,
String dialectName)
插入
插入会忽略空的字段名及其对应值,但是对于有字段名对应值为 null 的情况不忽略 |
static Query |
Query.of(Entity where)
从
Entity 构建Query |
SqlBuilder |
SqlBuilder.update(Entity entity)
更新
|
static void |
SqlBuilder.validateEntity(Entity entity)
验证实体类对象的有效性
|
Entity |
Wrapper.wrap(Entity entity)
包装表名和字段名,此方法返回一个新的Entity实体类
有时字段与SQL的某些关键字冲突,导致SQL出错,因此需要将字段名用单引号或者反引号包装起来,避免冲突 |
Copyright © 2024. All rights reserved.