mirror of
https://gitee.com/dromara/hutool.git
synced 2025-05-06 05:38:00 +08:00
add test
This commit is contained in:
parent
858a90c8b7
commit
287800eeab
@ -1,13 +1,5 @@
|
|||||||
package cn.hutool.db;
|
package cn.hutool.db;
|
||||||
|
|
||||||
import java.nio.charset.Charset;
|
|
||||||
import java.sql.Blob;
|
|
||||||
import java.sql.Clob;
|
|
||||||
import java.sql.RowId;
|
|
||||||
import java.sql.Time;
|
|
||||||
import java.sql.Timestamp;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.lang.Dict;
|
import cn.hutool.core.lang.Dict;
|
||||||
import cn.hutool.core.util.ArrayUtil;
|
import cn.hutool.core.util.ArrayUtil;
|
||||||
@ -16,22 +8,33 @@ import cn.hutool.core.util.ReflectUtil;
|
|||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.db.sql.SqlUtil;
|
import cn.hutool.db.sql.SqlUtil;
|
||||||
|
|
||||||
|
import java.nio.charset.Charset;
|
||||||
|
import java.sql.Blob;
|
||||||
|
import java.sql.Clob;
|
||||||
|
import java.sql.RowId;
|
||||||
|
import java.sql.Time;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据实体对象<br>
|
* 数据实体对象<br>
|
||||||
* 数据实体类充当两个角色:<br>
|
* 数据实体类充当两个角色:<br>
|
||||||
* 1. 数据的载体,一个Entity对应数据库中的一个row<br>
|
* 1. 数据的载体,一个Entity对应数据库中的一个row<br>
|
||||||
* 2. SQL条件,Entity中的每一个字段对应一个条件,字段值对应条件的值
|
* 2. SQL条件,Entity中的每一个字段对应一个条件,字段值对应条件的值
|
||||||
*
|
|
||||||
* @author loolly
|
|
||||||
*
|
*
|
||||||
|
* @author loolly
|
||||||
*/
|
*/
|
||||||
public class Entity extends Dict {
|
public class Entity extends Dict {
|
||||||
private static final long serialVersionUID = -1951012511464327448L;
|
private static final long serialVersionUID = -1951012511464327448L;
|
||||||
|
|
||||||
// --------------------------------------------------------------- Static method start
|
// --------------------------------------------------------------- Static method start
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建Entity
|
* 创建Entity
|
||||||
*
|
*
|
||||||
* @return Entity
|
* @return Entity
|
||||||
*/
|
*/
|
||||||
public static Entity create() {
|
public static Entity create() {
|
||||||
@ -40,7 +43,7 @@ public class Entity extends Dict {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建Entity
|
* 创建Entity
|
||||||
*
|
*
|
||||||
* @param tableName 表名
|
* @param tableName 表名
|
||||||
* @return Entity
|
* @return Entity
|
||||||
*/
|
*/
|
||||||
@ -50,8 +53,8 @@ public class Entity extends Dict {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 将PO对象转为Entity
|
* 将PO对象转为Entity
|
||||||
*
|
*
|
||||||
* @param <T> Bean对象类型
|
* @param <T> Bean对象类型
|
||||||
* @param bean Bean对象
|
* @param bean Bean对象
|
||||||
* @return Entity
|
* @return Entity
|
||||||
*/
|
*/
|
||||||
@ -61,11 +64,11 @@ public class Entity extends Dict {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 将PO对象转为Entity
|
* 将PO对象转为Entity
|
||||||
*
|
*
|
||||||
* @param <T> Bean对象类型
|
* @param <T> Bean对象类型
|
||||||
* @param bean Bean对象
|
* @param bean Bean对象
|
||||||
* @param isToUnderlineCase 是否转换为下划线模式
|
* @param isToUnderlineCase 是否转换为下划线模式
|
||||||
* @param ignoreNullValue 是否忽略值为空的字段
|
* @param ignoreNullValue 是否忽略值为空的字段
|
||||||
* @return Entity
|
* @return Entity
|
||||||
*/
|
*/
|
||||||
public static <T> Entity parse(T bean, boolean isToUnderlineCase, boolean ignoreNullValue) {
|
public static <T> Entity parse(T bean, boolean isToUnderlineCase, boolean ignoreNullValue) {
|
||||||
@ -74,8 +77,8 @@ public class Entity extends Dict {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 将PO对象转为Entity,并采用下划线法转换字段
|
* 将PO对象转为Entity,并采用下划线法转换字段
|
||||||
*
|
*
|
||||||
* @param <T> Bean对象类型
|
* @param <T> Bean对象类型
|
||||||
* @param bean Bean对象
|
* @param bean Bean对象
|
||||||
* @return Entity
|
* @return Entity
|
||||||
*/
|
*/
|
||||||
@ -95,18 +98,18 @@ public class Entity extends Dict {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param tableName 数据表名
|
* @param tableName 数据表名
|
||||||
*/
|
*/
|
||||||
|
|
||||||
public Entity(String tableName) {
|
public Entity(String tableName) {
|
||||||
this.tableName = tableName;
|
this.tableName = tableName;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param tableName 数据表名
|
* @param tableName 数据表名
|
||||||
* @param caseInsensitive 是否大小写不敏感
|
* @param caseInsensitive 是否大小写不敏感
|
||||||
* @since 4.5.16
|
* @since 4.5.16
|
||||||
*/
|
*/
|
||||||
@ -117,6 +120,7 @@ public class Entity extends Dict {
|
|||||||
// --------------------------------------------------------------- Constructor end
|
// --------------------------------------------------------------- Constructor end
|
||||||
|
|
||||||
// --------------------------------------------------------------- Getters and Setters start
|
// --------------------------------------------------------------- Getters and Setters start
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return 获得表名
|
* @return 获得表名
|
||||||
*/
|
*/
|
||||||
@ -126,7 +130,7 @@ public class Entity extends Dict {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置表名
|
* 设置表名
|
||||||
*
|
*
|
||||||
* @param tableName 表名
|
* @param tableName 表名
|
||||||
* @return 本身
|
* @return 本身
|
||||||
*/
|
*/
|
||||||
@ -136,7 +140,6 @@ public class Entity extends Dict {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @return 字段集合
|
* @return 字段集合
|
||||||
*/
|
*/
|
||||||
public Set<String> getFieldNames() {
|
public Set<String> getFieldNames() {
|
||||||
@ -145,7 +148,7 @@ public class Entity extends Dict {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置字段列表,用于限制加入的字段的值
|
* 设置字段列表,用于限制加入的字段的值
|
||||||
*
|
*
|
||||||
* @param fieldNames 字段列表
|
* @param fieldNames 字段列表
|
||||||
* @return 自身
|
* @return 自身
|
||||||
*/
|
*/
|
||||||
@ -158,7 +161,7 @@ public class Entity extends Dict {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 设置字段列表,用于限制加入的字段的值
|
* 设置字段列表,用于限制加入的字段的值
|
||||||
*
|
*
|
||||||
* @param fieldNames 字段列表
|
* @param fieldNames 字段列表
|
||||||
* @return 自身
|
* @return 自身
|
||||||
*/
|
*/
|
||||||
@ -171,7 +174,7 @@ public class Entity extends Dict {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加字段列表
|
* 添加字段列表
|
||||||
*
|
*
|
||||||
* @param fieldNames 字段列表
|
* @param fieldNames 字段列表
|
||||||
* @return 自身
|
* @return 自身
|
||||||
*/
|
*/
|
||||||
@ -187,11 +190,12 @@ public class Entity extends Dict {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------- Getters and Setters end
|
// --------------------------------------------------------------- Getters and Setters end
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 将值对象转换为Entity<br>
|
* 将值对象转换为Entity<br>
|
||||||
* 类名会被当作表名,小写第一个字母
|
* 类名会被当作表名,小写第一个字母
|
||||||
*
|
*
|
||||||
* @param <T> Bean对象类型
|
* @param <T> Bean对象类型
|
||||||
* @param bean Bean对象
|
* @param bean Bean对象
|
||||||
* @return 自己
|
* @return 自己
|
||||||
*/
|
*/
|
||||||
@ -207,10 +211,10 @@ public class Entity extends Dict {
|
|||||||
* 将值对象转换为Entity<br>
|
* 将值对象转换为Entity<br>
|
||||||
* 类名会被当作表名,小写第一个字母
|
* 类名会被当作表名,小写第一个字母
|
||||||
*
|
*
|
||||||
* @param <T> Bean对象类型
|
* @param <T> Bean对象类型
|
||||||
* @param bean Bean对象
|
* @param bean Bean对象
|
||||||
* @param isToUnderlineCase 是否转换为下划线模式
|
* @param isToUnderlineCase 是否转换为下划线模式
|
||||||
* @param ignoreNullValue 是否忽略值为空的字段
|
* @param ignoreNullValue 是否忽略值为空的字段
|
||||||
* @return 自己
|
* @return 自己
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@ -221,10 +225,10 @@ public class Entity extends Dict {
|
|||||||
}
|
}
|
||||||
return (Entity) super.parseBean(bean, isToUnderlineCase, ignoreNullValue);
|
return (Entity) super.parseBean(bean, isToUnderlineCase, ignoreNullValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 过滤Map保留指定键值对,如果键不存在跳过
|
* 过滤Map保留指定键值对,如果键不存在跳过
|
||||||
*
|
*
|
||||||
* @param keys 键列表
|
* @param keys 键列表
|
||||||
* @return Dict 结果
|
* @return Dict 结果
|
||||||
* @since 4.0.10
|
* @since 4.0.10
|
||||||
@ -235,7 +239,7 @@ public class Entity extends Dict {
|
|||||||
result.setFieldNames(this.fieldNames);
|
result.setFieldNames(this.fieldNames);
|
||||||
|
|
||||||
for (String key : keys) {
|
for (String key : keys) {
|
||||||
if(this.containsKey(key)) {
|
if (this.containsKey(key)) {
|
||||||
result.put(key, this.get(key));
|
result.put(key, this.get(key));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -258,7 +262,7 @@ public class Entity extends Dict {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得Clob类型结果
|
* 获得Clob类型结果
|
||||||
*
|
*
|
||||||
* @param field 参数
|
* @param field 参数
|
||||||
* @return Clob
|
* @return Clob
|
||||||
*/
|
*/
|
||||||
@ -268,7 +272,7 @@ public class Entity extends Dict {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得Blob类型结果
|
* 获得Blob类型结果
|
||||||
*
|
*
|
||||||
* @param field 参数
|
* @param field 参数
|
||||||
* @return Blob
|
* @return Blob
|
||||||
* @since 3.0.6
|
* @since 3.0.6
|
||||||
@ -330,8 +334,8 @@ public class Entity extends Dict {
|
|||||||
/**
|
/**
|
||||||
* 获得字符串值<br>
|
* 获得字符串值<br>
|
||||||
* 支持Clob、Blob、RowId
|
* 支持Clob、Blob、RowId
|
||||||
*
|
*
|
||||||
* @param field 字段名
|
* @param field 字段名
|
||||||
* @param charset 编码
|
* @param charset 编码
|
||||||
* @return 字段对应值
|
* @return 字段对应值
|
||||||
* @since 3.0.6
|
* @since 3.0.6
|
||||||
@ -351,7 +355,7 @@ public class Entity extends Dict {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得rowid
|
* 获得rowid
|
||||||
*
|
*
|
||||||
* @return RowId
|
* @return RowId
|
||||||
*/
|
*/
|
||||||
public RowId getRowId() {
|
public RowId getRowId() {
|
||||||
@ -360,7 +364,7 @@ public class Entity extends Dict {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得rowid
|
* 获得rowid
|
||||||
*
|
*
|
||||||
* @param field rowid属性名
|
* @param field rowid属性名
|
||||||
* @return RowId
|
* @return RowId
|
||||||
*/
|
*/
|
||||||
|
@ -1,46 +1,57 @@
|
|||||||
package cn.hutool.db;
|
package cn.hutool.db;
|
||||||
|
|
||||||
|
import cn.hutool.db.pojo.User;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import cn.hutool.db.pojo.User;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Entity测试
|
* Entity测试
|
||||||
*
|
*
|
||||||
* @author looly
|
* @author looly
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class EntityTest {
|
public class EntityTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void parseTest() {
|
public void parseTest() {
|
||||||
User user = new User();
|
User user = new User();
|
||||||
user.setId(1);
|
user.setId(1);
|
||||||
user.setName("test");
|
user.setName("test");
|
||||||
|
|
||||||
Entity entity = Entity.create("testTable").parseBean(user);
|
Entity entity = Entity.create("testTable").parseBean(user);
|
||||||
Assert.assertEquals(Integer.valueOf(1), entity.getInt("id"));
|
Assert.assertEquals(Integer.valueOf(1), entity.getInt("id"));
|
||||||
Assert.assertEquals("test", entity.getStr("name"));
|
Assert.assertEquals("test", entity.getStr("name"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void parseTest2() {
|
public void parseTest2() {
|
||||||
User user = new User();
|
User user = new User();
|
||||||
user.setId(1);
|
user.setId(1);
|
||||||
user.setName("test");
|
user.setName("test");
|
||||||
|
|
||||||
Entity entity = Entity.create().parseBean(user);
|
Entity entity = Entity.create().parseBean(user);
|
||||||
Assert.assertEquals(Integer.valueOf(1), entity.getInt("id"));
|
Assert.assertEquals(Integer.valueOf(1), entity.getInt("id"));
|
||||||
Assert.assertEquals("test", entity.getStr("name"));
|
Assert.assertEquals("test", entity.getStr("name"));
|
||||||
Assert.assertEquals("user", entity.getTableName());
|
Assert.assertEquals("user", entity.getTableName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void parseTest3() {
|
||||||
|
User user = new User();
|
||||||
|
user.setName("test");
|
||||||
|
|
||||||
|
Entity entity = Entity.create().parseBean(user, false, true);
|
||||||
|
|
||||||
|
Assert.assertFalse(entity.containsKey("id"));
|
||||||
|
Assert.assertEquals("test", entity.getStr("name"));
|
||||||
|
Assert.assertEquals("user", entity.getTableName());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void entityToBeanIgnoreCaseTest() {
|
public void entityToBeanIgnoreCaseTest() {
|
||||||
Entity entity = Entity.create().set("ID", 2).set("NAME", "testName");
|
Entity entity = Entity.create().set("ID", 2).set("NAME", "testName");
|
||||||
User user = entity.toBeanIgnoreCase(User.class);
|
User user = entity.toBeanIgnoreCase(User.class);
|
||||||
|
|
||||||
Assert.assertEquals(Integer.valueOf(2), user.getId());
|
Assert.assertEquals(Integer.valueOf(2), user.getId());
|
||||||
Assert.assertEquals("testName", user.getName());
|
Assert.assertEquals("testName", user.getName());
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user