储存不知道什么时候就会用到的工具类
名称 | 位置 |
---|---|
密码 | pwd |
对list排序 | sort |
对list进行分页操作 | page |
entity之间的转化 | converter |
从sql生成框架需要的文件 | frameworkFile |
aop实现类 | aop |
分布式ID生成类 | snowflake |
全国高等学校名单(2019/6/15) | college |
mybatis column配置生成 | mybatisColumns |
如果有测试的代码请新建"/test"目录, 在此目录下进行测试
public class GenerateID
{
public static long nextID()
{
Snowflake idGen = new Snowflake(1, 1, 1566885913535L);
return idGen.nextId();
}
}
// if you do not use default callback
public class CustomSnowflake extends Snowflake
{
public CustomSnowflake(long dataCenterId, long workerId, long projectStartEpoch)
{
super(dataCenterId, workerId, projectStartEpoch);
}
@Override
protected boolean timeBackwardsCallback(long timestamp, long lastTimestamp)
{
// do something
return true;
}
}
@Slf4j
public class ExampleConverter implements Converter
{
/**
* 自定义拷贝
*
* @param value 源对象
* @param target 目标对象的class
* @param context context目标对象set方法(就是个String类型的, 不知道为什么要用Object)
* @return 目标对象
*/
@Override
@SuppressWarnings("unchecked")
public Object convert(Object value, Class target, Object context)
{
log.info("value: {}", value.getClass().toString());
log.info("target: {}", target.getName());
log.info("context: {}", context.getClass().toString());
if (value instanceof InnerModelDO)
{
InnerModelDTO obj = new InnerModelDTO();
WrapperConverter.copy(value, obj, false, null);
return obj;
}
if (value instanceof List)
{
List list = (List) value;
if (!list.isEmpty() && list.get(0) instanceof InnerModelDO)
{
return WrapperConverter.copyList(list, InnerModelDTO.class, false, null);
}
else
{
return Collections.emptyList();
}
}
return value;
}
}
public class gen
{
public static void main(String[] args)
{
String path = "C:\\Users\\Desktop\\script.sql";
String formerColumnsResult = "<id column=\"id\" jdbcType=\"BIGINT\" property=\"id\"/>\n" +
"<result column=\"comment\" jdbcType=\"VARCHAR\" property=\"comment\"/>\n" +
"<result column=\"creator_id\" jdbcType=\"BIGINT\" property=\"creatorId\"/>\n" +
"<result column=\"creator_name\" jdbcType=\"VARCHAR\" property=\"creatorName\"/>\n" +
"<result column=\"create_time\" jdbcType=\"TIMESTAMP\" property=\"createTime\"/>";
CompleteFullColumns.generate(path, formerColumnsResult);
}
/*
result will like:
comment.id as comment_id,
comment.comment as comment_comment,
comment.creator_id as comment_creator_id,
comment.creator_name as comment_creator_name,
comment.create_time as comment_create_time,
<id column="comment_id" jdbcType="BIGINT" property="id"/>
<result column="comment_comment" jdbcType="VARCHAR" property="comment"/>
<result column="comment_creator_id" jdbcType="BIGINT" property="creatorId"/>
<result column="comment_creator_name" jdbcType="VARCHAR" property="creatorName"/>
<result column="comment_create_time" jdbcType="TIMESTAMP" property="createTime"/>
*/
}
<dependency>
<groupId>com.github.luomingxuorg</groupId>
<artifactId>JavaUtil</artifactId>
<version>$version</version>
<!-- if you have "SLF4J: Class path contains multiple SLF4J bindings." warning
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
-->
</dependency>