所有文章

  • 【原】SSH框架基础整合搭建图文教程

    JAVA开发SSH框架基础整合搭建图文教程

    SSH框架(struts+spring+hibernate),在spring没有出现之前用的非常多,最近整理以前的笔记,看到很早之前写的三大框架案例,重新整理了一下,来写一篇SSH框架的基础搭建教程,方便自己回忆,也帮助刚入行的新人们学习,由于是很早的笔记,框架的版本也稍微落后了一些,但是一些核心的理念还是没怎么变化,这里就懒得升级版本了。数据库表见resources目录下的wolff.sql文件,项目结构也很简单,传统的MVC模式,struts充当控制器,spring负责容器的管理和事务托管,主要利用了它的ioc来解耦,hibernate提供or...

    不忘初心 不忘初心 2019-04-25 围观(779) 评论(0) 点赞(14) JAVA开发

    阅读更多
  • 【原】PostgreSQL分页count超级无敌巨慢

    JAVA开发PostgreSQL分页count超级无敌巨慢

    最近碰到了一个关于PostgreSQL查询慢的问题,表中数据共有40W,在做分页查询的时候,COUNT竟然花了20s,而且这个还是不稳定的,有时甚至能飙到40s,这个时间真的是让人不能接受。来张图大家感受一下,抓包看到请求的TTFB竟然有26s多,真他吗让人害怕在没具体细看的时候,我第一反应是数据太多,limit查询太慢导致拖慢了整个请求,后来在Navicat中查询了一下,发现limit响应还是很快的,甚至是毫秒级别的响应,问题分析到了这里,都还没想到是count出了问题。多次测试之后,发现每隔一段时间查询就会慢一次,而连续操作则很流畅,分析可能是...

    不忘初心 不忘初心 2019-04-24 围观(5494) 评论(0) 点赞(30) JAVA开发

    阅读更多
  • 【原】mybatis的if判断条件将字符串解析成了数字

    JAVA开发mybatis的if判断条件将字符串解析成了数字

    mybatis可以帮我们自动映射字段,在mapper.xml文件中,我们可以不用去写jdbcType来明确指定数据类型,它会自动解析成相对应的java数据类型,每次在使用了mybatis-generator之后,出于强迫症,我还主动将默认生成的jdbcType给去掉了,一直没出过问题,今天却碰到了一个问题:出问题的业务场景中,需要根据不同的角色查询不同的订单数据,所以我就直接将角色ID当做参数传递进来,由于有多个角色的情况,所以直接将角色ID拼接成字符串,并用逗号分隔开。mapper接口:List<String>getOwnAssign...

    不忘初心 不忘初心 2019-04-22 围观(914) 评论(0) 点赞(14) JAVA开发

    阅读更多
  • 【原】使用mybatis-generator自动生成mapper失败

    JAVA开发使用mybatis-generator自动生成mapper失败

    由于在项目中mybatis和jpa的混用,导致大家都很少关注mapper.xml文件的字段了,上周线上出了一个问题,就是因为使用jpa顺手了,增加了字段,下意识的以为会自动处理,所以就没有手动在mapper中增加字段。今天把最新的字段都整理一遍到mapper中去,表很大,字段太多了,准备使用mybatis插件进行自动生成,然后我拷贝一下,但是在使用mybatis-generator插件自动生成mapper文件的时候,却失败了:[ERROR]Nopluginfoundforprefix'mybatis-generator'inthecurrentpr...

    不忘初心 不忘初心 2019-04-20 围观(8859) 评论(0) 点赞(52) JAVA开发

    阅读更多
  • 【原】Every derived table must have its own alias的原因和解决方案

    数据库Every derived table must have its own alias的原因和解决方案

    写sql写懵逼了,抽sql的时候,忘记加别名了,结果导致了一个问题“Every derived table must have its own alias”,详细信息如下:###SQL:selectcount(1)from(SELECTbatch_noFROMdb_casewhereis_del='N'groupbybatch_no)###Cause:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:Everyderivedtablemusthaveitsownalias;badSQ...

    不忘初心 不忘初心 2019-04-16 围观(3702) 评论(0) 点赞(11) 数据库

    阅读更多
  • 【原】MySQL保存emoji表情失败的原因和解决方案

    数据库MySQL保存emoji表情失败的原因和解决方案

    在使用MySQL的时候,字符集选择上,我从来都是默认utf8,没有做过多的关注,在设计博客数据库的时候,没有考虑到emoji表情,近日在编写文章时,在参考资料中拷贝信息时,带过来的文字有emoji表情,导致保存的时候报错了:###Cause:java.sql.SQLException:Incorrectstringvalue:'\xF0\x9F\x90\xAD\xF0\x9F...'forcolumn'text'atrow1;uncategorizedSQLExceptionforSQL[];SQLstate[HY000];errorcode[13...

    不忘初心 不忘初心 2019-04-15 围观(1127) 评论(0) 点赞(17) 数据库

    阅读更多
  • 【原】MySQL字符集utf8、utf8mb4、utf8mb4_general_ci、utf8mb4_unicode_ci的区别

    数据库MySQL字符集utf8、utf8mb4、utf8mb4_general_ci、utf8mb4_unicode_ci的区别

    MySQL为我们提供了很多种字符集,来应对不同的问题场景,平时工作中没有过多关注,今天来做一下笔记。utf8:最大只支持3个字节的UTF-8字符,包含了大多数字符但并不是所有,而emoji和一些不常用的汉字,如“墅”,这些需要四个字节才能编码的就不支持。utf8mb4:在5.5.3版本之后增加了tf8mb4编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode,与之前的utf8字符集相比,可用性更高。但相对于utf8来说,字节变多,数据库体积也就会变得更大,官方强烈推荐使用varchar而不要使用char,这样可以让字段...

    不忘初心 不忘初心 2019-04-15 围观(1964) 评论(0) 点赞(13) 数据库

    阅读更多
  • 【原】MySQL数据库主键冲突的三种解决方案

    数据库MySQL数据库主键冲突的三种解决方案

    业务中为了避免重复数据的产生,除了在代码层级做处理之外,还会在数据库表中增加唯一索引来做最后的校验,项目中唯一索引在冲突的时候是以代码抛异常的形式来阻止脏数据的产生,而异常这个东西,说好也好,说不好也不好,因为在异常产生的时候,需要去还原错误场景并提供详细的错误信息,所以异常抛的太多了,性能肯定好不到哪里去,而且在有些特定的场景下甚至是不需要唯一索引的,当有重复的数据进来时,直接视作更新操作,查阅资料后发现,在MySQL中主键冲突一共有三种常用的解决方案。首先,准备一张test表,插入几条测试数据:DROPTABLEIFEXISTS`test`;C...

    不忘初心 不忘初心 2019-04-14 围观(4282) 评论(0) 点赞(11) 数据库

    阅读更多
  • 【原】使用Java发送邮件时碰到了一个501错误

    JAVA开发使用Java发送邮件时碰到了一个501错误

    QQ邮箱、新浪邮箱、网易邮箱,使用Java进行邮件发送时,基本上都是一模一样的逻辑,就是mail.smtp.host的配置有区别,大家在使用的时候,可以将公共代码抽离出来,将那些配置用参数的方式传过去。在实现过程中,没有其他的什么大问题,倒是碰到了一个501错误:具体错误信息如下:DEBUG:JavaMailversion1.6.2DEBUG:successfullyloadedresource:/META-INF/javamail.default.address.mapDEBUG:getProvider()returningjavax.mail....

    不忘初心 不忘初心 2019-04-14 围观(8049) 评论(0) 点赞(15) JAVA开发

    阅读更多
  • 【原】Java发送新浪邮件图文教程

    JAVA开发Java发送新浪邮件图文教程

    前面分别讲过了Java发送QQ邮件和Java发送163邮件,本文接着来看一下Java发送新浪邮件,一样需要在设置中开启IMAP/SMTP服务,不过新浪邮箱跟QQ邮箱和网易邮箱不一样,它这里不需要授权码,直接点击开启就完事,后面就直接使用账号密码来发送。新浪邮箱的配置简直不要太简单,不多说,直接上代码packagecom.wolffy.reader.util;importlombok.extern.slf4j.Slf4j;importorg.apache.commons.lang3.exception.ExceptionUtils;importjav...

    不忘初心 不忘初心 2019-04-13 围观(600) 评论(0) 点赞(13) JAVA开发

    阅读更多
  • 【原】Java发送网易邮件图文教程

    JAVA开发Java发送网易邮件图文教程

    前面说过了Java发送QQ邮件,本文来看一下Java实现网易邮件的发送,老规矩,还是需要去设置中开启IMAP/SMTP服务推荐使用客户端,没安装也无所谓,毕竟只是建议,直接点击确定默认一般都是关闭,直接点击开启为了安全,一样需要密保不过这个就有意思了,QQ邮箱是自动生成的一串字符,网易邮箱这个授权码竟然是自己填的只能是字母和数字规矩贼多,也不能和登录密码一样上面的步骤都成功了之后,就可以看到有启用记录了,这里我很是纳闷,为什么我都启用了,这选项竟然还是关闭。。。不过好像并不影响,我直接用代码测试了一波,可以发送成功packagecom.wolffy...

    不忘初心 不忘初心 2019-04-12 围观(674) 评论(0) 点赞(15) JAVA开发

    阅读更多
  • 【原】分享几个常用的Java工具类

    JAVA开发分享几个常用的Java工具类

    在编码过程中,会碰到很多相似的功能,基本上都是有固定的写法,就是传入的参数不一样,所以一般都会抽出一些公用代码来处理,今天来分享几个平时使用的工具类。MD5工具类:packagecom.wolffy.util;importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmException;importlombok.extern.slf4j.Slf4j;importorg.apache.commons.lang3.StringUtils;importorg.apache.c...

    不忘初心 不忘初心 2019-04-11 围观(165) 评论(0) 点赞(11) JAVA开发

    阅读更多
  • 【原】Java发送QQ邮件图文教程

    JAVA开发Java发送QQ邮件图文教程

    Java发送邮件,可以使用com.sun.mail包下面的javax.mail实现,发送、抄送、暗送,这些功能都有相应的API,功能非常的强大,通过SMTP服务进行邮件发送,市面上的邮箱很多种类,如:QQ、新浪、网易等,本文中我们来看一下如何用Java代码发送QQ邮件。1、邮箱一般都有保护机制,默认SMTP是不开启的,所以需要先去邮箱设置中开启SMTP;2、不是随便都能发送邮件的,需要在邮箱中拿到授权码才可以进行发送;进入到发送者的QQ邮箱中,在设置中开启SMTP服务为了安全,还需要校验密保密保短信发送完毕之后,点击右下角的“我已发送”,就可以看到...

    不忘初心 不忘初心 2019-04-11 围观(705) 评论(0) 点赞(25) JAVA开发

    阅读更多
  • 【原】springboot使用jackson处理时间碰到的两个坑

    JAVA开发springboot使用jackson处理时间碰到的两个坑

    之前使用springmvc的时候,没有太注意json转换的细节,每次都是直接写了一个Databinder,也没出过什么大问题,换成springboot之后,自动化配置的东西太多,导致忽略了很多细节处理,最近就碰见了两个问题:jackson转换时间有时区差,会导致时间晚8小时在我本机上,我一直没有重现过,当时在服务器上出现过,导致入库的时间不准确,解决方案有很多,我选择了在配置文件中配置jackson的时区:spring.jackson.time-zone=GMT+8使用feign调用微服务的时候,提示日期format不对项目微服务之间调用的时候,使...

    不忘初心 不忘初心 2019-04-10 围观(119) 评论(0) 点赞(12) JAVA开发

    阅读更多
  • 【原】设置cookie时特殊字符导致系统异常

    JAVA开发设置cookie时特殊字符导致系统异常

    用户在登录过网站之后,网站会将用户的信息存储到浏览器的cookie中,一般都是username之类的一些信息,用于访问的时候带给服务器来确定是哪一个用户,而且也可以用于页面上作展示。最近在写cookie的时候,由于信息不敏感,所以就没有做加密处理,没想到竟然导致系统报错了,错误信息如下:2019-04-0918:26:43.512ERROR11089---[nio-8080-exec-4]o.a.c.c.C.[.[.[/].[dispatcherServlet]:Servlet.service()forservlet[dispatcherServl...

    不忘初心 不忘初心 2019-04-09 围观(713) 评论(0) 点赞(13) JAVA开发

    阅读更多

站点信息

  • 网站程序:spring + freemarker
  • 主题模板:《今夕何夕》
  • 文章统计:篇文章
  • 标签管理标签云
  • 微信公众号:扫描二维码,关注我们