首页 文章 精选 留言 我的

精选列表

搜索[java],共10000篇文章
优秀的个人博客,低调大师

Mars-java 发布 2.1.7 版本

此次更新如下: 优化了代码结构,性能更高效 mars-jdbc升级,单表操作不需要写sql,不需要用配置或者注解映射,直接一句注解搞定 JdbcTemplete优化升级,支持分页查询,sql参数使用占位符,避免了字符串拼接带来的sql注入风险 mars-cloud 为了配合mars-jdbc的升级,所以发行了一个版本 Mars-jdbc用法 dao 建议用抽象类 的形式创建,这样单表操作可以用抽象方法,多表操作可以自己写sql。 加上MarsDao注解,如下图所示: @MarsDao("testDao") public abstract class TestDao { } 单表操作 根据主键查询一条数据 @MarsGet(tableName = "userinfo",primaryKey = "id") public abstract Map<String,Object> selectById(int id); 如上面的示例所示,在抽象方法上加上MarsGet注解即可 tableName:要从哪张表里的查询 primarkey:主键字段名 方法的参数:要查主键是什么的数据就传什么 根据主键更新数据 @MarsUpdate(tableName = "userinfo",operType = OperType.UPDATE,primaryKey = "id") public abstract int update(DemoEntity demoEntity); 如上面的示例所示,在抽象方法上加上MarsUpdate注解即可 tableName:要更新哪张表 primarkey:主键字段名 operType:设置操作方式为update 方法的参数:任意自定义实体对象或者map,对象的字段要跟数据库表的字段名一致 插入一条数据 @MarsUpdate(tableName = "userinfo",operType = OperType.INSERT) public abstract int insert(DemoEntity demoEntity); 如上面的示例所示,在抽象方法上加上MarsUpdate注解即可 tableName:要插入哪张表 operType:设置操作方式为insert 方法的参数:任意自定义实体对象或者map,对象的字段要跟数据库表的字段名一致 根据主键删除一条数据 @MarsUpdate(tableName = "userinfo",operType = OperType.DELETE,primaryKey = "id") public abstract int delete(int id); 如上面的示例所示,在抽象方法上加上MarsUpdate注解即可 tableName:要从哪张表删除 primarkey:主键字段名 operType:设置操作方式为delete 方法的参数:要删除主键是什么值的数据就传什么 多表操作 sql语句固定 @MarsSelect(sql = "select * from userinfo where name = #{name} and age = ${age}") public abstract List<Map<String,Object>> selectList(DemoEntity demoEntity); 如上面的示例所示,在抽象方法上加上MarsSelect注解即可 sql:sql语句 方法的参数:任意自定义实体对象或者map,对象的字段要跟sql中的占位符一致(不包含#{}) sql语句不固定(需要根据条件判断,来动态的拼接语句) 这种情况需要使用JdbcTemplete: 在代码里去拼sql,sql拼好以后用下面所示的方式执行 sql中的参数一样用#{}或者${}来占位 JdbcTemplete.get("数据源名称,不传自动使用默认数据源").selectList(sql,DemoEntity.class); JdbcTemplete.get("数据源名称,不传自动使用默认数据源").update(sql,demoEntity); JdbcTemplete 这里就不多说了,实际使用的时候,开发环境的自动补全功能会自动弹出里面的方法,选择适合自己的就行了 分页查询 使用JdbcTemplete里的selectPageList public PageModel<DemoEntity> findPage(PageParamModel pageParamModel) throws Exception { String sql = "select * from userinfo where name like #{name}"; return JdbcTemplete.get().selectPageList(sql,pageParamModel,DemoEntity.class); } 参数必须传PageParamModel,返回类型也必须是PageModel 占位符解释 #{name}: 这种占位符会被替换成 ? 没有sql注入的风险 ${name}: 这种占位符是字符串拼接,有sql注入的风险 选择数据源 dao层的方法上 可以用 DataSource(name=”数据源name”) 注解 去指定要用的数据源,如果只有一个数据源,则不需要指定 具体可看官网:http://mars-framework.com

优秀的个人博客,低调大师

消灭 Java 代码的“坏味道”

导读 明代王阳明先生在《传习录》谈为学之道时说: 私欲日生,如地上尘,一日不扫,便又有一层。着实用功,便见道无终穷,愈探愈深,必使精白无一毫不彻方可。 代码中的"坏味道",如"私欲"如"灰尘",每天都在增加,一日不去清除,便会越累越多。如果用功去清除这些"坏味道",不仅能提高自己的编码水平,也能使代码变得"精白无一毫不彻"。这里,整理了日常工作中的一些"坏味道",及清理方法,供大家参考。 1.让代码性能更高 1.1.需要 Map 的主键和取值时,应该迭代 entrySet() 当循环中只需要 Map 的主键时,迭代 keySet() 是正确的。但是,当需要主键和取值时,迭代 entrySet() 才是更高效的做法,比先迭代 keySet() 后再去 get 取值性能更佳。 反例: Map<String, String> map = .

优秀的个人博客,低调大师

BeetlSQL 2.12.11 发布,Java Dao 工具

本次增加了一个小功能,Query提供俩个静态方法filterEmpty,filterNull,这俩个方法返回StrongValue的子类,当andEq等方法的参数是StrongValue子类的时候,将根据条件拼接SQL语句。 Blog blog = query.andEq(Blog::getTitle, Query.filterNull(null)) .andIn(Blog::getId, Arrays.asList(1,2,3,4,5,6,7)) .andNotIn(Blog::getId, Query.filterEmpty(Collections.EMPTY_LIST)) .andNotEq(Blog::getId, Query.filterEmpty("")) .andLess(Blog::getId, Query.filterEmpty(2)) .andGreatEq(Blog::getId, Query.filterEmpty(0)).single() Maven <dependency> <groupId>com.ibeetl</groupId> <artifactId>beetlsql</artifactId> <version>2.12.11.RELEASE</version> </dependency> BeetSql是一个全功能DAO工具, 同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求工具能自动能生成大量常用的SQL的应用。 无需注解,自动生成大量内置SQL,轻易完成增删改查功能 数据模型支持Pojo,也支持Map/List这种快速模型,也支持混合模型 SQL 以更简洁的方式,Markdown方式集中管理,同时方便程序开发和数据库SQL调试。 SQL 模板基于Beetl实现,更容易写和调试,以及扩展 内置大量SQL,内置模板查询,提供Query类等方式避免了手写SQL 简单支持关系映射而不引入复杂的OR Mapping概念和技术。 具备Interceptor功能,可以调试,性能诊断SQL,以及扩展其他功能 内置支持主从数据库,通过扩展,可以支持更复杂的分库分表逻辑 支持跨数据库平台,开发者所需工作减少到最小 性能评测,来自https://gitee.com/xiandafu/dao-benchmark

优秀的个人博客,低调大师

BeetlSQL 2.12.10 发布,Java Dao 工具

本次发布增加俩个小功能,适用于一些高级应用 * SQLManager增加vaidateSqlId方法,用于校验sql模板语句是否正确,如果不正确,返回错误符号,原因和相应行数 * SQLManager 增加containSqlId方法,用于判断sql模板是否存在 maven <dependency> <groupId>com.ibeetl</groupId> <artifactId>beetlsql</artifactId> <version>2.12.10.RELEASE</version> </dependency> BeetSql是一个全功能DAO工具, 同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求工具能自动能生成大量常用的SQL的应用。 无需注解,自动生成大量内置SQL,轻易完成增删改查功能 数据模型支持Pojo,也支持Map/List这种快速模型,也支持混合模型 SQL 以更简洁的方式,Markdown方式集中管理,同时方便程序开发和数据库SQL调试。 SQL 模板基于Beetl实现,更容易写和调试,以及扩展 内置大量SQL,内置模板查询,提供Query类等方式避免了手写SQL 简单支持关系映射而不引入复杂的OR Mapping概念和技术。 具备Interceptor功能,可以调试,性能诊断SQL,以及扩展其他功能 内置支持主从数据库,通过扩展,可以支持更复杂的分库分表逻辑 支持跨数据库平台,开发者所需工作减少到最小

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册