项目中的踩坑技术点
文章平均质量分 61
本专栏主要记录一些在开发中遇到的踩坑点,日后便于查阅
Leon04095
平凡与辉煌最大的区别是执行力
展开
-
mybatis if test 字符串和字符判断及mysql时间段查询
‘’标识字符 <if test="chr=='1'"></if>”标识字符串 <if test='str=="1"'></if>mysql日期比较语句select * from student where '2012-02-27 00:00:00' < created_date and '2012-02-29 00:00原创 2019-01-23 18:15:18 · 6772 阅读 · 0 评论 -
Mysql字符串字段判断是否包含某个字符串的方法
方法一:likeSELECT * FROM 表名 WHERE 字段名 like "%字符%";方法二:find_in_set()利用mysql 字符串函数 find_in_set();SELECT * FROM users WHERE find_in_set('字符', 字段名);这样是可以的,怎么理解呢?mysql有很多字符串函数 find_in_set(str1,s...原创 2019-01-23 18:07:55 · 54952 阅读 · 0 评论 -
sql查询结果列拼接成逗号分隔的字符串
背景:做SQL查询时会经常需要,把查询的结果拼接成一个字符串。解决方法: 通过 group_concat 函数拼接的结果很长,导致拼接结果显示不全,可以通过以下方法解决。在每次查询前执行 SET SESSION group_concat_max_len = 10240;或者SET GLOBAL group_concat_max_len = 10240; 使得查询结果值变大。...原创 2019-01-23 18:02:30 · 68788 阅读 · 1 评论 -
MySQL中sql转义符
Mybatis中的sql语句中的 “<” 和 “>” 号要用转义字符 “&lt;” 和 ”&gt;“ ,否则会报错!使用mybatis 时sql语句是写在xml文件中,如果sql中有一些特殊的字符的话,比如< ,<=,>,>=等符号,会引起xml格式的错误, 需要替换掉,或者不被转义。 有两种方法可以解决:转义字符和标记...原创 2019-01-23 17:53:18 · 13711 阅读 · 0 评论 -
mysql数据库常用要点记录
MyBatis在insert插入操作时返回主键ID的配置:MySQL用法:<insert id="insert" parameterType="com.test.User" keyProperty="userId" useGeneratedKeys="true" >上面配置中,“keyProperty”表示返回的id要保存到对象的那个属性中,“useGeneratedKeys”表示主...原创 2018-03-07 10:26:33 · 231 阅读 · 0 评论 -
MySQL部门或菜单父子节点递归实现树查询
目前的mysql版本中并不支持直接的递归查询,但是通过递归到迭代转化的思路,可以在一句SQL内实现树的递归查询下面给一个小示例,后续在贴上调用的代码(代码会贴在最后请注意)MySQL递归查询所有子节点,树形结构查询--表结构CREATE TABLE `address` (`id` int(11) NOT NULL AUTO_INCREMENT,`code_value` varchar(32) DE...原创 2017-12-27 16:44:31 · 33447 阅读 · 1 评论 -
List转数组与数组转list
1. List集合转换成数组采用集合的toArray()方法直接把List集合转换成数组, 这里需要注意,不能这样写: String[] array = (String[]) mlist.toArray(); 这样写的话,编译运行时会报类型无法转换java.lang.ClassCastException的错误,这样写看起来没有问题,因为java中的强制类型转换是针对单个对象才有效果的,而...原创 2019-01-25 09:31:56 · 656 阅读 · 0 评论 -
如何优雅的使用 ThreadLocal
前言在我们日常 Web 开发中难免遇到需要把一个参数层层的传递到最内层,然后中间层根本不需要使用这个参数,或者是仅仅在特定的工具类中使用,这样我们完全没有必要在每一个方法里面都传递这样一个 通用的参数。如果有一个办法能够在任何一个类里面想用的时候直接拿来使用就太好了。 Java的 Web项目大部分都是基于 Tomcat,每次访问都是一个新的线程,这样让我们联想到了 ThreadLocal,每一...原创 2018-11-19 15:58:36 · 891 阅读 · 0 评论 -
单点登录系统原理与接入
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。以下是个人查询资料的借鉴及对接某大型互联网公司单点系统后的一个总结和理解一、首先了解下单系统登录机制1、http无状态协议 web应用采用browser/server架构,http作为通信协议。http是无状态协...原创 2018-03-12 16:15:18 · 32664 阅读 · 4 评论 -
Integer值判断是否相等
在开发中遇到一个问题,定义了两个Integer变量,暂且定义为Integer a; Integer b;这一个值由前端赋值并传到后台,前台传的是a = 12345, 后台查询b = 12345, 但我在后台比较的时候 if (a == b),却返回false,不都是123吗还是Integer 类型?为什么返回false,改为equals(),居然返回true,开始有点蒙了,怎么和String类...原创 2018-03-02 18:18:30 · 4374 阅读 · 0 评论 -
MYSQL IF 和 IFNULL
MYSQL IF 和 IFNULL原创 2017-12-11 15:45:48 · 2057 阅读 · 0 评论 -
使用EasyPoi进行导入导出Excel(含多sheet导入导出操作)
本文算是对上篇使用EasyPoi根据模板导出Excel或word文档 的补充吧主要是直接进行导入导出,下面给出一个补充的工具类吧/***Excle 文件导入导出Util(easypoi)* @ClassName:EasyPoiUtil* @author leon* @createDate 2018年11月29日 下午15:25:27* @version v1.0...原创 2018-12-05 11:31:04 · 19497 阅读 · 8 评论 -
使用EasyPoi根据模板导出Excel或word文档
接着上篇文章Java根据模板导出Excel并生成多个Sheet简单介绍下EasyPoi的使用,直接上代码吧首先当然是先引入jar包了,看下图其次,还是贴代码吧看实例,下面是根据模板导出的工具类,包含Excel和word/*** 导出Excel或Word文件* @ClassName:ExportExcelOrWord* @author leon* @create...原创 2018-12-05 11:09:15 · 17253 阅读 · 2 评论 -
sql字段拼接成新字段
有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:MySQL: CONCAT()Oracle: CONCAT(), ||SQL Server: +CONCAT() 的语法如下:CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。请注意,Oracle的CONCAT()只允许两个参数;换言之,一次只能将两个字串串...原创 2018-03-02 18:07:04 · 16901 阅读 · 0 评论 -
JavaWeb常用技术框架
JAVA、WEB最新技术框架整理1.基础框架1.1 后台基础框架分布式:dubbox统一配置:zookeeper消息:kafka服务化:spring spring boot 微服务化框架spring mvcspringframework持久层:mybatis、hibernate、jedis项目构建:maven单元测试:junit、testNG可视化测试:soapUI、jmeter2. 前端框架原型...转载 2018-04-04 18:11:43 · 502 阅读 · 0 评论 -
Springboot异常信息统一处理
前景描述: 最近在做项目时发现后台程序的异常抛到前端页面上报出一大段sql异常,因此考虑需要对异常进行全局统一处理,并将日志进行分类入库以及记录接口请求的日志信息等,记录日志信息在之前的文章已经有记录了这里不再重复有需要的请移步到Spring Boot 使用AOP切面实现后台日志管理模块。因为项目是基于Springboot做的前后端分离的项目,需要结合项目本身的一些特殊需求做些许改造。在网...原创 2018-09-21 15:25:46 · 6465 阅读 · 2 评论 -
Mysql避免全表扫描的sql查询优化
对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引: 尝试下面的技巧以避免优化器错选了表扫描: 使用ANALYZE TABLE tbl_name为扫描的表更新关键字分布。对扫描的表使用FORCE INDEX告知MySQL,相对于使用给定的索引表扫描将非常耗时。SELECT * FROM t1, t2 FORCE INDEX (...原创 2018-10-23 15:59:59 · 3142 阅读 · 0 评论 -
视图、索引、存储过程简述与优缺点
1.视图(1).什么是视图?视图(View)作为一种数据库对象,为用户提供了一个可以检索数据表中的数据方式。用户通过视图来浏览数据表中感兴趣的部分或全部数据,而数据的物理存储位置仍然在表中。视图是一个虚拟表,并不代表任何物理数据,只是用来查看数据的窗口而已。视图并不是以一组数据的形式存储在数据库中,数据库中只存储视图的定义,而不存储视图对应的数据,这些数据仍存储在导出视图的基本表中。当基本表...转载 2018-11-12 15:21:54 · 1499 阅读 · 0 评论 -
encode转码,js转码与java转码
1.js文件中使用encodeURI()方法。login_name = encodeURI(encodeURI(login_name));2.action中URLDecoder解码loginName = java.net.URLDecoder.decode(loginName,"UTF-8");原创 2018-10-19 11:56:53 · 3263 阅读 · 0 评论 -
collections.sort()默认排序规则
默认按ASCII码排序,一位一位的比较,应该排了3次第一次比较第一位全部是a,所以顺序没变第二次第二位排序[a0, a1, a12, a11, a10, a2, a3, a4, a5, a6, a7, a8, a9]第三次第三位排序[a0, a1, a10, a11, a12, a2, a3, a4, a5, a6, a7, a8, a9] Comparator是个接口,可重写com...原创 2018-10-19 11:54:35 · 19145 阅读 · 0 评论 -
Java封装类和基本数据类型,Long和long的区别
Java中我们经常要做一些判断,而对于判断的话,用的最多的便是“>”、“==”、“<”的比较,这里我们进行一个Long类型数据和long类型数据的比较大小的讲解。Java中Long和long的区别Java的数据类型分为两种:1、基本类型:byte(8),short(16),int(32),long(64),float(32),double(64),char(16), boolean(1...原创 2018-03-26 10:43:00 · 6577 阅读 · 0 评论 -
如何根据身份证号码辨别性别
可以根据身份证号码的第十七位判断性别,如果为奇数则为男性,偶数则为女性。 身份证号码的格式 1.号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。 2.地址码 表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。 3.出生日期码 表示编...原创 2018-02-27 11:05:11 · 38583 阅读 · 0 评论 -
获取http 地址URL的方法
1、request.getRequestURL()返回的是完整的url,包括Http协议,端口号,servlet名字和映射路径,但它不包含请求参数。2、request.getRequestURI()得到的是request URL的部分值,并且web容器没有decode过的3、request.getContextPath()返回 the context of the request....原创 2017-11-27 11:02:21 · 45280 阅读 · 0 评论 -
JS 获取和设置input值,控制表单提交地址
以 JS 注入的方式获取和设置input域的值:<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript" ...原创 2017-11-20 09:47:48 · 5043 阅读 · 0 评论 -
java web服务器实现跨域访问
实现方式:方法 1: nginx配置文件配置[html] view plain copyserver { location / { if ($request_method = 'OPTIONS') { add_header 'Access-Contr原创 2017-10-27 17:31:35 · 767 阅读 · 0 评论 -
mybatis中的#{}和${}区别
1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id". 2. $将传入的数据直接显示生成在sql中。如:order by $user_id$,如果传入的值是111,那么解析成sql原创 2017-10-23 09:52:32 · 226 阅读 · 0 评论 -
MyBatis在insert插入操作时返回主键ID的配置
很多时候,在向数据库插入数据时,需要保留插入数据的id,以便进行后续的update操作或者将id存入其他表作为外键。但是,在默认情况下,insert操作返回的是一个int值,并且不是表示主键id,而是表示当前SQL语句影响的行数。。。接下来,我们看看MyBatis如何在使用MySQL和Oracle做insert插入操作时将返回的id绑定到对象中。MySQL用法:in原创 2017-10-23 09:44:47 · 716 阅读 · 0 评论 -
Spring 4.2集成 Quartz Scheduler 2.2.2 任务调度简单实现示例
Spring 4.2集成 Quartz Scheduler 2.2.2 任务调度简单实现示例原创 2017-10-13 09:13:23 · 312 阅读 · 0 评论 -
项目报错“JavaServer Faces 2.2 can not be installed : One or more constraints”等一系列问题
在做springmvc+maven项目时,经常遇到如下错误:解决办法(这里以jdk1.8,web3.0为例):一:保证build path的jre版本remove掉旧版本的,add新版本二:保证java complier版本和前面的一致三:更改maven pom.xml文件1234567891011原创 2017-09-30 17:50:05 · 6161 阅读 · 0 评论 -
java 实现搜索附近人功能
方案一:现在很多手机软件都用附近搜索功能,但具体是怎么实现的呢》在网上查了很多资料,mysql空间数据库、矩形算法、geohash我都用过了,当数据上了百万之后mysql空间数据库方法是最强最精确的(查询前100条数据只需5秒左右)。接下来推出一个原创计算方法,查询速度是mysql空间数据库算法的2倍$lng是你的经度,$lat是你的纬度SELECT lng,lat, (POWER...原创 2017-04-17 16:01:44 · 15057 阅读 · 5 评论 -
邮件发送处理多个附件时乱码问题
这里主要记录了下项目中发送邮件时遇到的一个小问题 首先我们看下图,可以看到第一个附件正常第二个附件显示未命名,其实都是给了名称的 这里说明一下导致这个问题的原因,由于邮件服务内部做了一个处理,平常都忽略了这个配置,说的是文件名超过60个字符时会自动截断下面说下解决的方法 System.getProperties().setProperty("mail.mime.sp...原创 2018-12-04 16:23:32 · 892 阅读 · 0 评论