??
BeeV1.11 企业版:
为了给大家提供更多更强大的功能,Bee团队与企业合作,推出企业版本.
新增特性
我们希望提供更多简单易用的Bee功能!进一步提高开发效率!?
- 1.降低金融计算型项目开发难度,简化金融数字计算等
- 2.@AutoSetString注解易用性改进,轻松处理像CreateBy,UpdateBy等自动填充功能
- 自动插入租户的值
- 3.@Desensitize,敏感信息模糊处理
- 4.@Dict具体字段字典数值转化
- 5.@DictI18n多语言国际化字典转化,全局统一设置,无需逐个设置,省时省力
- 6.@MultiTenancy多租户
- 7.@Column实现Javabean属性与表列名不一致时,定义映射关系(新系统不建议使用,主要是为了兼容旧系统)
- 8.@Json实体属性是Javabean与DB表Json类型字段在参数设置与查询结果时自动转换
- 9.支持EDI XML电子报文自动生成
1.简化金融数字计算
System.out.println(BeeFinancialCalculator.calculate("(4+5)*(3-2)")); //9
System.out.println(BeeFinancialCalculator.calculate("(4+5)*(3/2)")); //13.50
不再需要重复使用BigDecimal手工编码实现.
2.@AutoSetString注解,自动填充值
易用性改进,轻松处理像CreateBy,UpdateBy等自动填充功能
以下以自动填充创建人为例:
实体字段:
handler=CreateByHandler.class 用于指定处理逻辑的类
@AutoSetString(handler=CreateByHandler.class,suidType=SuidType.INSERT)
private String createBy;
处理器:
public class CreateByHandler implements AnnotationHandler{
@Override
public String process() {
return "Admin"; //自动填充创建人. 如,可根据自己项目,获取当前用户作为创建人.
}
// 可以检测输入的值,然后决定是否要覆盖.
@Override
//不作任何处理
public String process(String s) {
return s;
}
@Override
@SuppressWarnings("rawtypes")
public String process(Map para) {
return null;
}
}
3.@Desensitize,敏感信息模糊处理
@Desensitize(start=5, size=2, mask="*")
private String sequence;
sequence in the database is: 0123456789
after process:
sequence=01234**789
start=5, size=2, mask="*"? ?指定从第5位开始, 用*替换2位字符.
4.@Dict具体字段字典数值转化
比如 0 转化为 女, 1 转化为 男,? null转为未知
// @Dict(map = "0=女,1=男")
@Dict(map = "0=女,1=男",nullToValue="未知")
private String sex;
5.@DictI18n多语言国际化字典转化,全局统一设置,无需逐个设置,省时省力
@DictI18n
private String majorid;
在实体javabean中只需加@DictI18n, 不用写映射关系.??
映射关系可在数据中配置,并加载到系统.
具体使用,可加群咨询.?Bee的技术QQ群:992650213
6.@MultiTenancy多租户
根据id的值为租户寻找所在的数据库和表.? id为null时,默认选择默认的库和表
// @MultiTenancy(dsRule = "id%2",dsName = "bee",tabRule = "id%2",tabName = "student_") //student_1
// @MultiTenancy(dsRule = "id%2",dsName = "bee",tabRule = "id%3",tabName = "student") //student2
@MultiTenancy(dsRule = "id%2",dsName = "bee",tabRule = "id%3") //student2
private Long id;
dsRule是配置数据源名称规则,默认是后缀;?tabRule是表名规则,默认是表后缀
7.@Column
@Column实现Javabean属性与表列名不一致时,定义映射关系(新系统不建议使用,主要是为了兼容旧系统)
@Column("place")
private String place2;
8.@Json实体属性是Javabean与DB表Json类型字段在参数设置与查询结果时自动转换
@Json
private JsonValue jsonValue;
public class Dept implements Serializable {
private static final long serialVersionUID = 1599384498761L;
private Integer id;
private String deptName;
@Json
private JsonValue jsonValue;
//...
}
直接查询Json数据,由Bee负责转化
// 直接查询Json数据,由Bee负责转化.
List<Dept> list=suid.select(new Dept());
Logger.info(list.get(0).getJsonValue().getDeptId());
Logger.info(list.get(0).getJsonValue().getDeptName());
Printer.printList(list);
插入操作:
JsonValue jsonValue=new JsonValue();
jsonValue.setDeptName("test Json");
jsonValue.setDeptLeaderId("test Json");
Dept d=new Dept();
d.setJsonValue(jsonValue);
d.setId(11118);
suid.insert(d);
[INFO] [Bee] select SQL: select id,dept_name,json_value from dept [values]:
[INFO] [Bee] select SQL: ( ExecutableSql )
select id,dept_name,json_value from dept
[INFO] [Bee] insert SQL: insert into dept(id,json_value) values (?,?) [values]: 11118,{"deptId":null,"deptName":"test Json","deptLeaderId":"test Json"}
[INFO] [Bee] insert SQL: ( ExecutableSql )
insert into dept(id,json_value) values (11118,'{"deptId":null,"deptName":"test Json","deptLeaderId":"test Json"}')
插入时,自动将javabean结构转成Json字段串;
查询时,自动将Json字段串转成属性对应的javabean实体结构.
@Json ?private List<JsonValue> list;
List结构的, 具体使用,可加群咨询.?Bee的技术QQ群:992650213
9.支持EDI XML电子报文自动生成
将实体结构数据,自动转成xml报文
Clazz1 clazz1=new Clazz1();
clazz1.setId(1);
Student1 student=new Student1();
student.setAge(11);
clazz1.setStudent(student);
XmlConfig config=new XmlConfig();
config.setNullAndEmpty(NullAndEmpty.NullToEmpty);
System.err.println(XmlUtil.toXML(clazz1,config));
生成的xml报文:
<?xml version="1.0" encoding="UTF-8"?>
<Clazz1>
<id>1</id>
<classname></classname>
<place></place>
<teachername></teachername>
<remark></remark>
<Student1>
<id></id>
<sid></sid>
<name></name>
<age>11</age>
<sex></sex>
<majorid></majorid>
<flag></flag>
<classno></classno>
<StudentHobby>
<id></id>
<stuId></stuId>
<hobby></hobby>
<remark></remark>
</StudentHobby>
</Student1>
</Clazz1>
|