文章列表

JAVA开发

用java实现简单的概率随机抽奖算法

用java实现简单的概率随机抽奖算法

工作需要,这两天写一个简单的java抽奖算法,因为逻辑简单不复杂,所以代码也很简洁,可以做到不同权重有不用的中奖概率(就类似于nginx集群一样,权重越大,概率越高),在这里将java概率随机抽奖代码抽离出来分享给大家。具体需求:给第三方推送数据,每个第三方根据预算会有不同的额度,考虑到服务器压力,所以采取了主动推送的方式,在每次推送的时候,需要根据第三方的配额计算出相应的概率,然后挑选一个第三方来推送。思路分析:从形式上看,跟随机抽奖几乎一模一样,都是在N中挑选1,而且还不是公平挑选,是带有概率性的。由于只分享概率随机抽奖的算法,所以就暂不考虑上……

不忘初心  发布于 2019-07-13 浏览(62) 赞 (35)

JAVA开发

timestamp without time zone >= character varying

timestamp without time zone >= character varying

今天在项目中碰见了一个关于pgsql的错误“Cause: org.postgresql.util.PSQLException: ERROR: operator does not exist: timestamp without time zone >= character varying”,项目是springmvc+mybatis框架,数据库是postgresql,出错的地方在一个时间查询上,前端页面传递了字符串,直接拿来sql中查询就报错了。完整错误信息如下:###Errorqueryingdatabase.Cause:org.postgr……

不忘初心  发布于 2019-07-02 浏览(64) 赞 (14)

JAVA开发

jackson自定义序列化器,指定返回对象中的某个字段

jackson自定义序列化器,指定返回对象中的某个字段

Jackson提供了自定义序列化器的方式,可以很方便的处理我们想要的json格式,例如:“接口返回的数据中包含User对象,但是我只想用User对象中的name属性,但是又不想在返回的数据模型中重新定义一个冗余字段”,此时就可以使用自定义的序列化器来解决了。可能大家还不太明白啥意思,来张图感受下:也就是说,json数据中,user对象的就是一个字符串,我不想要一个对象,只想要{user:"张三"}这种格式。本案例以springboot项目来做演示,总共分为两步:1、继承JsonSerializer,实现serialize方法;2、将自定义的seri……

不忘初心  发布于 2019-06-04 浏览(60) 赞 (3)

JAVA开发

java利用dom4j生成网站的sitemap.xml文件

java利用dom4j生成网站的sitemap.xml文件

如何让搜索引擎来抓取自己的网站,这个有很多种方式,可以主动推送,可以自动推送,也可以利用sitemap文件来诱导蜘蛛,sitemap文件又分为好几种后缀的写法,最简单的就是txt格式,直接一行行的url放在上面就行了,而高级一点儿的可以使用xml格式(推荐使用这种)。百度官方推荐的格式如下:<?xmlversion="1.0"encoding="utf-8"?><!--XML文件需以utf-8编码--><urlset><!--必填标签--><url><!--必填标签,这是具体某一个链……

不忘初心  发布于 2019-06-03 浏览(32) 赞 (5)

JAVA开发

springboot连接mysql报错“java.lang.IllegalArgumentException: HOUR_OF_DAY: 2 -> 3”

springboot连接mysql报错“java.lang.IllegalArgumentException: HOUR_OF_DAY: 2 -> 3”

今天在启动之前的springboot工程时,偶现了一个错误“java.lang.IllegalArgumentException: HOUR_OF_DAY: 2 -> 3”,很神奇,因为这不是第一次启动了,而且连电脑都是同一台,一番百度下来,发现原来是mysql的时区问题。org.springframework.dao.TransientDataAccessResourceException:Errorattemptingtogetcolumn'create_time'fromresultset.Cause:java.sql.SQLExcep……

不忘初心  发布于 2019-06-01 浏览(284) 赞 (6)

JAVA开发

spring框架返回json数据null转空字符串

spring框架返回json数据null转空字符串

spring项目中,前端获取服务器返回的json时,里面有null值,如果没做校验,就会导致js报错,但是不推荐每个返回的地方手动处理,而是应该在框架中统一配置。前面关于json日期格式化的文章中,提到了spring默认使用的是jackson来做json序列化,相对应的converter是MappingJackson2HttpMessageConverter,我们依旧还是要利用它提供的ObjectMapper来解决上面的问题。1、继承ObjectMapper,自定义mapperpackagecom.ssm.common;importcom.fast……

不忘初心  发布于 2019-05-31 浏览(76) 赞 (6)

JAVA开发

Spring Boot配置Druid数据源和使用教程

Spring Boot配置Druid数据源和使用教程

以前项目使用的是c3p0,了解到另外一个开源数据源框架阿里巴巴的druid,现在做新项目准备使用这个,记录一下使用步骤。主要是看中了他的强大的监控功能,SQL分析能力很强。如果项目出现SQL运行缓慢,效率不高的情况,可以通过它自带的web界面很快的进行问题SQL定位和分析。项目环境:springboot版本是2.1.3,数据库是MySQL。一、简介DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接……

孤灯听夜雨  发布于 2019-05-28 浏览(78) 赞 (8)

JAVA开发

SpringMVC返回JSON数据时日期格式化问题

SpringMVC返回JSON数据时日期格式化问题

在前后台交互时,json数据在传输过程中,若是碰到了日期格式,它默认会转换成时间戳,而一般不涉及到时区的问题时,我们通常希望它能变成yyyy-MM-ddHH:mm:ss这种标准格式。在才开始工作的时候,不知道这个东西可以全局配置,还每次都手写几个字段来专门做处理,如下图:麻烦的一批,针对createTime字段,我用了三个日期字段来做转换,简直了。。。其实一些json框架都帮我们提供了统一配置来解决这个问题,spring默认采用的是jackson,我们可以对它的ObjectMapper进行设置,本案例的框架是springmvc,所以我直接来重写一个……

不忘初心  发布于 2019-05-24 浏览(116) 赞 (15)

JAVA开发

slf4j的jar包冲突:Class path contains multiple SLF4J bindings

slf4j的jar包冲突:Class path contains multiple SLF4J bindings

今天在启动springboot项目的时候,碰见了一个错误提示,是slf4j的jar包冲突,但是不会影响项目启动和运行,如下图:详细提示信息:SLF4J:ClasspathcontainsmultipleSLF4Jbindings.SLF4J:Foundbindingin[jar:file:/Library/Apache/maven-3.5.3/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBi……

不忘初心  发布于 2019-05-23 浏览(215) 赞 (11)

JAVA开发

使用idea搭建springboot项目图文教程

使用idea搭建springboot项目图文教程

前面讲了很多框架的搭建教程,今天来写一篇关于springboot的搭建教程,现在idea用的比较多了,就直接使用idea来搭建项目,不过这个跟工具关系不大,不管是idea还是eclipse,项目骨架都是基于官网(http://start.spring.io)来生成的。打开idea,选择newproject菜单如果没有自己配置的骨架模板,就直接使用官网的,这里就可以直接进入下一步偶尔会有网络波动,会出现上面的界面,不过不用担心,可以稍微等待一下,也可以直接返回上一步再次进来上面都是maven工程的一些基本配置,填写完毕之后,直接进入下一步这一步就比较……

不忘初心  发布于 2019-05-22 浏览(76) 赞 (8)