首页 文章 精选 留言 我的

精选列表

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

mongoHelper 0.6.2 发布,用于 mongodb 的 ORM 框架

mongoHelper 是基于 spring-data-mongodb 的增强ORM工具包,简化 CRUD 操作,提供类似于mybatis plus的mongodb数据库操作。 虽然spring-data-mongodb已经对mongodb的操作做了一部分封装,但易用性依然不够,Query Criteria Sort的操作依然有比较大的局限性,而且对于习惯sql操作的人来说,理解其使用法则依然稍显别扭。mongoHelper对spring-data-mongodb又进行了进一步封装,使其更易于使用。对使用过mybatis plus的开发者来说,其用法应该不会陌生。使用java对象构建查询条件,不再写sql的敏捷开发体验,mongoHelper正是基于这个理念开发的。 演示应用项目:https://gitee.com/cym1102/mongoStudy 基本用法: 本orm会在容器中注入一个对象MongoHelper,这个对象拥有诸多单表查询功能,摘要如下 按id删除:deleteById(String, Class<?>) 按条件删除:deleteByQuery(Criteria, Class<?>) 查询所有:findAll(Class) 查询数量:findCount(Class<?>) 根据id查询:findById(String, Class) 根据条件查询:findListByQuery(Criteria, Class<?>) 根据条件查询并分页:findPage(Criteria, Page, Class<?>) 插入:insert(Object) 插入或更新:insertOrUpdate(Object) 根据id更新:updateById(Object) 根据id更新全部字段:updateAllColumnById(Object) 根据条件更新第一项:updateFirst(Criteria, Update, Class<?>) 根据条件更新所有项:updateMulti(Criteria, Update, Class<?>) 累加某一个字段的数量, 原子操作:addCountById(String id, String property, Long count, Class<?> clazz) 这个mongoHelper能够完成所有查询任务,插入和更新操作能够自动判断pojo的类型操作对应表,查询操作根据传入的Class进行对应表操作,本orm所有数据库操作都基于mongoHelper的功能,不用像mybatis一样,每个表都要建立一套Mapper,xml,Service,model,大大减少数据层的代码量。可以将mongoHelper直接注入到controller层,简单的操作直接调用mongoHelper进行操作,不需要调用service层。 而复杂的操作及事务处理需要service层,将mongoHelper注入service,并使用service层的@Transactional注解就能使用springBoot管理的事务功能。 打印查询语句: spring-data-mongodb默认的打印语句方式为修改配置文件logging.level.root: debug。但这里打印出来的语句基本不可读,也不能像sql一样直接复制出来到数据库中进行执行,处于集群模式下还每隔数秒发送一次检测当前数据库isMaster的命令,很干扰debug。本orm重写了查询语句的打印功能,只要配置spring.data.mongodb.print:true就能打印出如下的语句: db.admin.find({ "$and": [ { "name": { "$regex": "^.*ad.*$", "$options": "i" } } ] }).projection({ "name": 1 }).sort({ "id": -1 }); 可直接复制到mongodb客户端中进行执行,非常方便调试。 多数据源: 如果需要连接两个以上的mongodb数据库,可先在yml文件中配一个uri2: spring: data: mongodb: uri2: mongodb://user:pass@host:27017/study?replicaSet=rs0&authSource=admin&w=majority&j=true&wtimeout=5000&readPreference=primary 再配置一个MongoHelper2类继承MongoHelper: @Service("mongoHelper2") public class MongoHelper2 extends MongoHelper { @Value("${spring.data.mongodb.uri2}") String uri2; @PostConstruct public void init() { // 使用uri2初始化mongoTemplate,不支持事务 this.mongoTemplate = new MongoTemplate(new SimpleMongoClientDatabaseFactory(uri2)); super.init(); } } 这样,注入MongoHelper2进行增删改查的操作就会被执行到uri2的数据库上 获取原生mongoTemplate: 如果觉得MongoHelper的方法无法满足项目需求, 可以用mongoHelper.getMongotemplate()的方式获取springboot原生的mongotemplate对象进行操作。 本次更新内容: 修正一些编码规范,减少代码警告数量 添加多数据源功能 添加@createTime和@updateTime注解功能 ,可自动插入更新时间和修改时间 更新springBoot版本, 增加支持mongodb 5.0 修复大量bug

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

前端Vue框架在PostCSS怎样使用sass

为什么要使用PostCss 众所周知转换 px 单位的插件有很多,知名的有 postcss-px-to-viewport 和 postcss-pxtorem,前者是将 px 转成 vw,后者是将 px 转成 rem,精简了不常用的配置。将成为vw优先单位使用,以rem作为回退模式。考虑到vw在移动设备的支持度不如rem,这款插件很好的解决了该问题。然后简单的介绍下。 安装指令 $ npm install @ moohng / postcss-px2vw --save-dev 复制代码 使用方法 首先创建一个.postcssrc.js文件,然后配置 module.exports = { plugins: { '@moohng/postcss-px2vw': {} } } 复制代码 例子: 使用前: .box { border: 1px solid black; margin-bottom: 1px; font-size: 20px; line-height: 30px; } 复制代码 使用后: .box{ border: 1px solid black; margin-bottom: 1px; font-size: 0.625rem; font-size: 6.25vw; line-height: 0.9375rem; line-height: 9.375vw; } 复制代码 配置方面 viewportWidth:对应设计图的宽度,用于计算 vw。默认 750,指定 0 或 false 时禁用 rootValue:根字体大小,用于计算 rem。默认 75,指定 0 或 false 时禁用 unitPrecision:计算结果的精度,默认 5 minPixelValue:小于等于该值的 px 单位不作处理,默认 1 注意:该插件只会转换 px 单位。rootValue 一般建议设置成 viewportWidth / 10 的大小,将设计图分成10等分。由于浏览器有最小字体限制,如果设置得过小,页面可能跟预期不一致 如果要使用 rem 单位,需要自己通过 js 来动态计算根字体的大小。如果将设计图分成 10 等分计算,那么根字体的大小应该是 window.innerWidth / 10。 这样一个postCss的插件就配置完成了,希望我的总结能给予你的帮助 sass:常用备忘 常用的sass笔记,快速的开发 一、变量 所有变量以$开头 $font_size: 12px; .container{ font-size: $font_size; } 复制代码 如果变量嵌套在字符串中,需要写在#{}中 $side : left; .rounded { border-#{$side}: 1px solid #000; } 复制代码 二、嵌套 层级嵌套 .container{ display: none; .header{ width: 100%; } } 复制代码 属性嵌套,注意,border后需要加上冒号: .container { border: { width: 1px; } } 复制代码 可以通过&引用父元素,常用在各种伪类 .link{ &:hover{ color: green; } } 复制代码 三、mixin 简单理解,是可以重用的代码块,通过@include 命令 // mixin @mixin focus_style { outline: none; } div { @include focus_style; } 复制代码 编译后生成 div { outline: none; } 还可指定参数、缺省值 // 参数、缺省值 @mixin the_height($h: 200px) { height: $h; } .box_default { @include the_height; } .box_not_default{ @include the_height(100px); } 复制代码 编译后生成 .box_default { height: 200px; } .box_not_default { height: 100px; } 复制代码 四、继承 通过@extend,一个选择器可以继承另一个选择器的样式。例子如下 // 继承 .class1{ float: left; } .class2{ @extend .class1; width: 200px; } 复制代码 编译后生成 .class1, .class2 { float: left; } .class2 { width: 200px; } 复制代码 五、运算 直接上例子 .container{ position: relative; height: (200px/2); width: 100px + 200px; left: 50px * 2; top: 50px - 10px; } 复制代码 编译后生成 .container { position: relative; height: 100px; width: 300px; left: 100px; top: 40px; } 复制代码 插入文件 用@import 来插入外部文件 @import "outer.scss"; 复制代码 也可插入普通css文件 @import "outer.css"; 复制代码 自定义函数 通过@function 来自定义函数 @function higher($h){ @return $h * 2; } .container{ height: higher(100px); } 复制代码 编译后输出 .container { height: 200px; } 复制代码 结语 创作不易,如果对大家有所帮助,希望大家点赞支持,有什么问题也可以在评论区里讨论😄~ 如果你觉得这篇文章对你有点用的话,麻烦请给我们的开源项目点点star: http://github.crmeb.net/u/defu 不胜感激 ! 来自 “开源独尊 ” ,链接: https://ym.baisou.ltd/post/822.html

资源下载

更多资源
Nacos

Nacos

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

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

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

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册