HServer 2.9.82 已经发布,高性能 Webserver
HServer 2.9.82 已经发布,高性能 Webserver。 此版本更新内容包括: 1、升级Netty版本等 2、添加下载大文件的api 3、响应头添加RequestId 4、优化相关代码 详情查看:https://gitee.com/HServer/HServer/releases/2.9.82
QuickDAO4.1.10 版本已发布,可在maven中央仓库下载(阿里云仓库可能更新不及时),本次更新内容如下:
友情提示:每次更新版本时通常在线文档也会同步更新.请注意查看文档页面时清空缓存,以便获取最新文档
自定义适配数据库功能需要用户提供DatabaseProvider接口适配类即可。目前QuickDAO内置实现了MySQL,Oracle等数据库适配器。
例如若用户需要适配clickhouse数据库,clickhouse数据库的语法同mysql类似,因此我们可以继承MySQLDatabaseProvider,然后修改关于获取表结构的SQL语句。样例代码如下:
ClickHouseDDLBuilder.java
import cn.schoolwow.quickdao.builder.ddl.MySQLDDLBuilder;
import cn.schoolwow.quickdao.domain.Entity;
import cn.schoolwow.quickdao.domain.Property;
import cn.schoolwow.quickdao.domain.QuickDAOConfig;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class ClickHouseDDLBuilder extends MySQLDDLBuilder {
public ClickHouseDDLBuilder(QuickDAOConfig quickDAOConfig) {
super(quickDAOConfig);
}
@Override
public String hasIndexExists(String tableName, String indexName) {
throw new UnsupportedOperationException("不支持的的操作");
}
@Override
public String dropIndex(String tableName, String indexName) {
throw new UnsupportedOperationException("不支持的的操作");
}
@Override
protected void getIndex(List<Entity> entityList) throws SQLException {
}
@Override
protected void getEntityPropertyList(List<Entity> entityList) throws SQLException {
String getEntityPropertyListSQL = "select name,table from system.columns";
ResultSet resultSet = connectionExecutor.executeQuery("获取表字段信息",getEntityPropertyListSQL);
while (resultSet.next()) {
for(Entity entity : entityList){
if(!entity.tableName.equalsIgnoreCase(resultSet.getString("table"))){
continue;
}
//添加字段信息
Property property = new Property();
property.column = resultSet.getString("name");
entity.properties.add(property);
break;
}
}
resultSet.close();
}
@Override
protected List<Entity> getEntityList() throws SQLException {
String getEntityListSQL = "show tables;";
ResultSet resultSet = connectionExecutor.executeQuery("获取表列表",getEntityListSQL);
List<Entity> entityList = new ArrayList<>();
while (resultSet.next()) {
Entity entity = new Entity();
entity.tableName = resultSet.getString(1);
entityList.add(entity);
}
resultSet.close();
return entityList;
}
}
QuickDAO.addDatabaseProvider(new MySQLDatabaseProvider() {
@Override
public AbstractDDLBuilder getDDLBuilderInstance(QuickDAOConfig quickDAOConfig) {
return new ClickHouseDDLBuilder(quickDAOConfig);
}
@Override
public String name() {
return "clickhouse";
}
});
HikariDataSource hikariDataSource = new HikariDataSource();
hikariDataSource.setDriverClassName("com.clickhouse.jdbc.ClickHouseDriver");
hikariDataSource.setJdbcUrl("jdbc🇨🇭//127.0.0.1/ck?socket_timeout=120000");
dao = QuickDAO.newInstance()
.autoCreateTable(false)
.autoCreateProperty(false)
.dataSource(hikariDataSource)
.build();
使用QuickDAO.addDatabaseProvider方法添加提供者即可。若有不理解的地方可参考内置的MySQLDatabaseProvider类等等。
QuickDAO是一款简单易用的ORM框架,虽然市面上ORM框架已经非常多,但是有很多痛点这些框架并没有解决.QuickDAO相较于其他ORM框架的特点如下:
从版本4.1.4开始,查询API支持lambda查询
虽然很多ORM框架宣称支持外键查询,但无一例外最终形式仍然是让开发者手写SQL语句.QuickDAO在API设计层面上支持外键关联查询,真正的无需手写多表关联查询SQL语句.
常规的ORM框架都需要建立实体类,然后再根据实体类来查询。QuickDAO支持无实体类查询,不用事先建立实体类也能够事先对数据库的查询,修改和删除.
QuickDAO实现了事务功能,事务相关API提供了QuickDAO其他数据库操作一样便利的API,对于复杂的事务操作需求,QuickDAO也能够满足
QuickDAO在API层面上支持子查询,您可以通过API直接拼接生成一个子查询SQL语句。这意味着即使是一些相当复杂的SQL语句,QuickDAO也能够轻松面对。
QuickDAO提供了实体注解,实体注解的类型丰富。通过实体注解,您可以定义数据库列的列名,列类型,列注释,表索引,非空,check约束等等等等。
最后,写这个框架的初衷是市面上已有的ORM框架不能解决开发中痛点.QuickDAO经过近2年的支持开发,目前已经迭代到4.X版本,也在个人项目,公司项目实际使用过.希望本人开发的QuickDAO框架能够为中国的开源事业贡献一份自己的力量.
QuickDAO文档: https://quickdao.schoolwow.cn
QuickDAO的github地址: https://github.com/sunyue1380/QuickDAO4
QuickDAO的gitee地址: https://gitee.com/648823596/quickdao4
微信关注我们
转载内容版权归作者及来源网站所有!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。
马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。
Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。
Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。