jSqlBox 4.0.8 发布,在 Java 里直接写 SQL 的 ORM 工具

jSqlBox主要特点是架构优、尺寸小、功能全,基本上所有与数据库操作相关的功能,jSqlBox都已提供。它的主要特点有:  
1.内核基于DbUtils并与之兼容。  
2.提倡在java里拼写SQL,独创参数内嵌式SQL写法, 而且任意CRUD方法里都可以混插SQl片段,例如:  
  new Demo().setName("张三").insert().putField("age", 15).update(" and name=?", param("李四"), " or age>? ",param(20));
3.只有单个1M大小的jar包,不依赖任何第三方库,不依赖Spring。  
4.支持分库分表、声明式事务、分布式事务,缓存翻译。  
5.支持80多种数据库方言,支持DDL生成、实体或数据库结构导出Excel,分页、函数变换、实体源码生成。  
6.学习成本低,兼容主要的实体JPA注解。 

在Java中直接写SQL是jSqlBox的主要特点之一,可能有人问XML或其它模板方式写SQL不香吗? 是的,用XML之类的模板有以下几个缺点:
1. 需要与插件配合才可以定位SQL,而且通常不支持SQL标记符的重构。 
2. XML中的占位符,在实际调用时是需要赋值的,这相当于又重复敲了一遍代码。很多人一看模板方式写SQL很简洁,但不要忘记了,模板是需要赋值的,赋值语句也是要占用源码行数的,一旦变量名变动,需要同时在模板和赋值语句两处修改。   
3. XML 之类的模板如果要写自定义函数很困难,而使用Java则没有这个问题。 
4. XML需要单独的文件存放,而且如果要在前端直接写SQL,则XML文件没法保存。(参见本人GoSqlGo项目)  

本次(jSqlBox4.0.8.jre8)更新内容:

把实体结构或数据库结构导出到Excel中

1.实体结构导出
以下语句会扫描指定包domain,把此包下的所有实体类的结构输出为Excel的CSV格式:

 TableModelUtils.entityPackage2Excel("com.abc.domain", "d:/packageOutput.csv");

也可以指定具体的实体类导出,如:

TableModelUtils.entity2Excel("d:/entitiesOutput.csv", User.class, Customer.class, Order.class);

以下为导出的Excel示例:
entityToExcelDemo

2.将数据库结构导出为Excel的CSV格式,第二个参数为方言类型:

@Autowired
DataSource ds;

TableModelUtils.db2Excel(ds.getConnection(), Dialect.MySQL57Dialect, "d:/dbOutput.csv");

以下是导出的Excel示例:
db2ExcelDemo

导出Excel功能目前只有固定的这几个方法。如果有不同格式、语言的导出需求,可以参照jSqlBox中的TableModelUtilsOfExcel.java源码写一个你自已的工具类即可,TableModelUtilsOfExcel.java这个工具类只有168行源码,相信在这个基础上你可以很快写出你想要的Excel输出工具来。

导出Excel有专用的工具或专门的项目,为什么jSqlBox要开发这个功能?不为别的,只因为jSqlBox能做到,从架构上jSqlBox内含了jDialects方言子项目,能轻而易举实现导出Excel这个功能,这个是早就有的打算,源码中早就注明了会有这个功能,不是为了跟风。 

猜你喜欢

转载自www.oschina.net/news/117924/jsqlbox-4-0-8-released