Magician 2.0 发布,彻底抛弃底层,全面迎接 Netty
经过了将近 4 个月,我终于又有了一点点闲置的时间,刚好趁这波机会 将项目进行了一次大升级,所以版本号也是飞跃式的上升,从1.1.17 直接升级到2.0。
本次升级主要是以下三个方面
- Magician 的定位发生了改变,以前是一个网络编程包,现在改成了小型http服务,因为底层被彻底抛弃了,全部换成了Netty,现在只是基于Netty开发的http服务,不在具备自定义协议的能力了。
- Magician-Web 为了配合Magician的升级,也进行了一次升级
- Magician-JDBC彻底进行了重构,抛弃了SQL构建器,改成了更为简单的方式,单表操作不需要写SQL,有条件构造器可以使用,复杂操作可以自己写sql,同时提供了事务管理器
具体的变化
Magician 除了底层大换血,全部改成了Netty,其他基本没变,只是少了一个UDP的支持,从使用者的角度来看 基本没啥变化
Magician-Web只是配合Magician进行的一次小小的调整,所以几乎没变化。
重点在Magician-JDBC
Magician-JDBC的变化
依然保留了多数据源的支持,其他变化如下
单表无SQL操作
插入数据
ParamPO paramPO = new ParamPO(); paramPO.setUserName("a"); paramPO.setUserEmail("test@qq.com"); int result = JDBCTemplate.get().insert("表名", paramPO);
修改数据
// 构建修改条件 List<Condition> conditionList = new ArrayList<>(); conditionList.add(Condition.get("id = ?", 4)); // 构建修改数据 ParamPO paramPO = new ParamPO(); paramPO.setUserName("a"); paramPO.setUserEmail("test@qq.com"); // 执行修改 int result = JDBCTemplate.get().update("表名", paramPO, conditionList);
删除数据
// 构建删除条件 List<Condition> conditionList = new ArrayList<>(); conditionList.add(Condition.get("id = ?", 42)); // 执行删除 int result = JDBCTemplate.get().delete("表名", conditionList);
查询数据
// 构建查询条件 List<Condition> conditionList = new ArrayList<>(); conditionList.add(Condition.get("id > ?", 10)); conditionList.add(Condition.get("and user_name != ?", "a")); conditionList.add(Condition.get("order by create_time desc", Condition.NOT_WHERE)); // 执行查询 List<ParamPO> result = JDBCTemplate.get().select("xt_message_board", conditionList, ParamPO.class);
自定义sql
增删改
ParamPO paramPO = new ParamPO(); paramPO.setUserName("testTx222"); paramPO.setUserEmail("testTx222@qq.com"); paramPO.setId(4); // 采用{}占位符的写法 int result = JDBCTemplate.get().exec("update xt_message_board set user_name = {user_name} , user_email = {user_email} where id = {id}", paramPO); // 采用 ? 占位符的写法 int result = JDBCTemplate.get().exec("update xt_message_board set user_name = ? , user_email = ? where id = ?", new Object[]{"testTx222","testTx222@qq.com", 4});
查询数据
ParamPO paramPO = new ParamPO(); paramPO.setId(5); paramPO.setUserName("a"); // 采用{}占位符的写法 List<ParamPO> result = JDBCTemplate.get("dataSource").selectList("select * from xt_message_board where id > {id} and user_name != {user_name}", paramPO, ParamPO.class); // 采用 ? 占位符的写法 List<ParamPO> result = JDBCTemplate.get("dataSource").selectList("select * from xt_message_board where id > ? and user_name != ?", new Object[]{5, "a"}, ParamPO.class);
分页查询
// 查询条件 ParamPO paramPO = new ParamPO(); paramPO.setId(5); paramPO.setUserName("a"); // 查询参数 PageParamModel pageParamModel = new PageParamModel(); pageParamModel.setCurrentPage(1); pageParamModel.setPageSize(10); pageParamModel.setParam(paramPO); // 使用默认countSql查询 PageModel<ParamPO> pageModel = JDBCTemplate.get().selectPage("select * from xt_message_board where id > {id} and user_name != {user_name}", pageParamModel, ParamPO.class); // 使用自定义countSql查询 String countSql = "自己定义countSql"; PageModel<ParamPO> pageModel = JDBCTemplate.get().selectPageCustomCountSql("select * from xt_message_board where id > {id} and user_name != {user_name}", countSql, pageParamModel, ParamPO.class);
事务管理
// 开启事务 TransactionManager.beginTraction(); try { ParamPO paramPO = new ParamPO(); paramPO.setUserName("testTx222"); paramPO.setUserEmail("testTx222@qq.com"); paramPO.setId(4); int result = JDBCTemplate.get().exec("update xt_message_board set user_name = {user_name} , user_email = {user_email} where id = {id}", paramPO); // 提交 TransactionManager.commit(); } catch(Execption e){ // 回滚 TransactionManager.rollback(); }
详情可以访问官方查看文档哦

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Bean Searcher 发布 v3.1.3 版本
Bean Searcher 发布 v3.1.3版本,具体更新内容如下: Bean Searcher 无@DbIgnore也自动忽略实体类中的静态字段 Bean Searcher Boot Starter 使用 Searcher 类型注入检索器时,默认注入 MapSearcher,不再报错 提高兼容性,SpringBoot 最低版本支持到 v1.4+
- 下一篇
GeoGebra 6.0.680.0 发布,绘图神器
Geogebra 是动态数学软件,它将几何、代数、电子表格、绘图、统计和微积分集成在一个易于使用的软件包中。 GeoGebra 6.0.680.0版本现已发布,具体更新内容如下: Notes:修复图像问题 CAS:确保 functions 在缩放时更新 当重新定义 y=x 到 y<x 时更新filling 修复按钮上的 SVG 长宽比 详细信息
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8安装Docker,最新的服务器搭配容器使用
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作