-
JPQL使用limit查询
使用数据库当我们只查询一条记录的时候,最好加上在SQL上面`limit`或者`top`等等语句提高效率,但是使用JPA的JPQL的时候加上`limit1`就会抛出:```javaCausedby:org.hibernate.hql.ast.QuerySyntaxException:unexpectedtoken:limitnearline1,column77[selectmemberfromxx.Membermemberwhereemail=:emaillimit1]atorg.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:54)atorg.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:47)```我们可以使用`getSingleResult`方法来解决(虽然没看源码,但是据我分析,这个方法应该是不能够提高效率的,因为多个结果时也会抛异常,所以查询结果因该不会只有一个),但是没有找到时却会抛出异常,当然我们可以使...
JPQL limit -
Java错误信息
昨天服务器出现很多错误`hs_err_pid*****.log`这样的错误信息:```java##ThereisinsufficientmemoryfortheJavaRuntimeEnvironmenttocontinue.#pthread_getattr_np#Possiblereasons:#ThesystemisoutofphysicalRAMorswapspace#In32bitmode,theprocesssizelimitwashit#Possiblesolutions:#Reducememoryloadonthesystem#Increasephysicalmemoryorswapspace#Checkifswapbackingstoreisfull#Use64bitJavaona64bitOS#DecreaseJavaheapsize(-Xmx/-Xms)#DecreasenumberofJavathreads#DecreaseJavathreadstacksizes(-Xss)#Setlargercodecachewith-XX:ReservedCodeCacheSize=#Thisout...
Java hs_err_pid -
Linux内存不足杀死进程
今天中午睡醒了起来一看群炸开了锅,网站挂了。当时我没在意,这只是重启了一下,等了一会又挂了。看看Tomcat的日志没问题啊,一切正常。但是一看系统日志(`cat/var/log/messages`),立马就找到了问题:```Nov2114:38:37serverkernel:javainvokedoom-killer:gfp_mask=0x201da,order=0,oom_adj=0,oom_score_adj=0Nov2114:38:37serverkernel:javacpuset=/mems_allowed=0Nov2114:38:37serverkernel:Pid:25206,comm:javaNottainted2.6.32-431.23.3.el6.x86_64#1...Nov2112:52:50serverkernel:Outofmemory:Killprocess21499(java)score862orsacrificechildNov2112:52:50serverkernel:Killedprocess21499,UID0,(java)total-vm:3484356kB,anon-...
Linux oom-kill out-of-memory Tomcat宕机 -
Java处理图片错误
下午没事看了看服务器的错误日志,全是两个错误,你来一个我来一个循环往复,这里记录一下。```javajavax.imageio.IIOException:I/OerrorreadingPNGheader!atcom.sun.imageio.plugins.png.PNGImageReader.readHeader(PNGImageReader.java:315)atcom.sun.imageio.plugins.png.PNGImageReader.readMetadata(PNGImageReader.java:654)atcom.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1229)atcom.sun.imageio.plugins.png.PNGImageReader.read(PNGImageReader.java:1577)javax.imageio.IIOException:NotaJPEGfile:startswith0x890x50atcom.sun.imageio.plugins.jpeg.JPEG...
Java 图片处理 -
CSS圆角border-radius
CSS3的`border-radius`这个属性挺好用,做圆角很方便。但是有时候发现圆角没有效果:其实这个问题是由于外面的元素有圆角,但是里面的也就是黑色背景的元素右上角不是圆角。我们只需要圆角的元素代码里面再加上`overflow:hidden;`就可以了。
border-radius CSS -
JSON转换错误
使用jackson时出现以下错误信息:```javaUnrecognizedfieldxxx,notmarkedasignorable```原因是JSON字符串没有这个xxxx属性,如果是要忽略这个属性添加注解`@JsonIgnore`,或者配置`DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES`。
JSON Jackson -
jQuery粗心错误
遇到一个SB问题,错误如下:```javascriptUncaughtInvalidStateError:Failedtoreadthe'selectionDirection'propertyfrom'HTMLInputElement':Theinputelement'stype('hidden')doesnotsupportselection.```开始我一直以为是因为`input`是隐藏的原因,后来改为显示后,前面到时没问题了,但是后来使用`JSON.stringify`转换还是出了上面的问题,**原来最后我没有调用`.val()`方法。**旧代码:```javascriptele.find("input[name='name']");```新代码:```javascriptele.find("input[name='name']").val();```
jQuery -
WebRTC通过摄像头获取用户手势
一个朋友介绍了一个利用WebRTC通过摄像头获取用户手势的JS,感觉挺不错的,这是地址:[http://tlhyy.com/two/](http://tlhyy.com/two/)我自己也写了一个比较简单的,其实用法很简单,导入`gest.js`,然后加入以下代码就可以了:```javascriptgest.options.subscribeWithCallback(function(gesture){varmessage='';if(gesture.direction){message=gesture.direction;if(gesture.left){//左}if(gesture.right){//右}if(gesture.up){//上}if(gesture.down){//下}}else{message=gesture.error.message;}});gest.start();```DEMO地址:[http://www.acgist.com/demo/gest/index.html](http://www.acgist.com/demo/gest/index.html)>使用时请正对摄像头...
WebRTC 手势 -
IE图片onload事件
又是IE这个奇葩的玩意,我本来想把一个图片插入页面获取图片的高宽和宽度,因为图片有最大高度和宽度。一开始我是把图片放到页面插入后,等浏览器自动渲染我用jQuery获取高度和宽度。但是奇葩的IE执行`onload`事件的时候每次获取到的图片高和宽不正确。```javascript$("#image").attr("src",src);varimage=newImage();image.src=src;image.onload=function(){varw=$("#image").width();varh=$("#image").height();}```后来看网上说把`img.src=src;`写到`onload`事件后面,我发现还是不行。于是我就改用了jQuery的的`load`事件,我发现这样就可以了。```javascript$("#image").attr("src",src);$("#image").load(function(){varw=$("#image").width();varh=$("#image").height();}```其实这个还可以这样解决:```javascript$("#i...
IE onload -
XWPFRun设置颜色
这个设置颜色,叫我填一个字符串,说实话当时懵了。一般写css想到rgb就想到`rgb(255,255,255);`这种写法。万万没想到`rgbStr`就是`#FFFFFF`去掉`#`号。就是这样:`run.setColor("FFFFFF");`
XWPFRun -
IE中input获取到焦点时移动
下面用IE打开的时候IE(IE10+)获取到焦点的时候居然第二个p标签这一行发生了移动。```html测试密码:```IE真是不想吐槽了,把intpu设置为绝对定位就OK了。
IE -
IE11的兼容
IE真的是一个版本一个搞法,以前IE的CSS后面加上`\9`就OK了,现在IE11居然又不可以了,要借助一下jQuery才可以。首先加上:```javascriptif(document.documentMode){document.documentElement.className+='ie'+document.documentMode;}```如果是IE11就会在HTML标签上面加上IE11的`clazz`属性,写样式的时候这样写就OK了:```css.ie11.demo{...}```另外IE10后以前IE这种写法也失效了:```html```我真的知道IE搞什么东西,要不是公司的项目,搞IE的兼容我就剁手。
IE11 IE 兼容 EDGE模式兼容 -
fancybox自动回到顶部异常
今天使用`fancybox`做了个相册,但是使用的时候,在有一些复杂的布局,例如用了很多浮动和绝对定位时,发现有时候打开图片,然后关闭`fancybox`的遮罩层后,页面自动回到顶部。这个暂时我的解决办法就是关闭遮罩层的锁定:```javascript$('#selector').fancybox({helpers:{overlay:{locked:false}}});```
fancybox 回到顶部 -
CSS背景图片不滚动
今天做了一个背景图片不随页面滚动的例子,后面的内容滚动上来挡住当前的背景。DEMO地址:[http://www.acgist.com/demo/background-fixed/index.html](http://www.acgist.com/demo/background-fixed/index.html)
CSS -
JSON插入textarea换行
把JSON字符串插入`textarea`换行估计很多人都会遇到,这个怎么解决呢?直接换行时不行的,JS解析会报错:```UncaughtSyntaxError:UnexpectedtokenILLEGAL```其实很简单,后台把`\r\n`换成`\\r\\n`就可以了:```text.replace("\r\n","\\r\\n");```解析的时候就会换行了🤣🤣🤣
JSON textarea -
Java类型转换注意事项
有人反馈说半年内文章找不到,但是前两天都是好好的,怎么会呢?去看了看代码才发现,计算时间时半年的时间写错了。```javaprivatefinalstaticlongHALF_YEAR_LONG=180*24*60*60*1000;```说实话当时真没注意这个问题,这个乘法是先计算最后转`long`类型,所以时间计算出来其实已经**超过了`int`的最大值`2147483647`**。最后修改如下:```javaprivatefinalstaticlongHALF_YEAR_LONG=180L*24*60*60*1000;```请注意在`180`后面就加上`L`转为`long`类型。如果加在`1000`后面,前面就超过了`int`的最大值,还是会出现问题的。
Java 类型转换 -
Nginx修改代理路径
百度了很久就是没有找到,后来去Google了一下,立马就找到了。现在我是需要改写一些Nginx请求Tomcat的地址,但是我试了一下,总是地址栏也变了。最后我找到了解决方法,记录一下:*`redirect`和`permanent`用来实现URL跳转,浏览器地址会显示跳转后的URL。*`last`和`break`用来实现URL重写,浏览器地址栏的URL地址不变,但在服务器端访问的路径发生了改变。```location~*^/acgist/[a-zA-Z0-9]+${rewrite^/acgist/[a-zA-Z0-9]+$$request_uri.jhtmllast;}```我这里的功能也很简单,就是加一个.jhtml在后面所以就这样。**`last`和`break`区别**`last`:重新将`rewrite`后的地址在`server`标签中执行`break`:将`rewrite`后的地址在当前`location`标签中执行>参考文章:[http://jishuweiwang.blog.51cto.com/6977090/1427005](http://jishuweiwang.blog.51cto.c...
Nginx URL重写 -
使用jQuery让iframe中内容滚动到指定位置
使用`jQuery`让`iframe`滚动到指定位置,第一次可以,但是第二次就不行了,发现获取到的`offset().top`不对。于是想了个办法解决了,就是一进去默认把`offset().top`重置为0,然后再滚动就OK了。代码如下:```javascript$("#id").scrollTop(-10000);$("#id").animate({scrollTop:$(".clazz").offset().top},200);```
jQuery iframe -
html中使用input上传文件按钮
很多时候我们使用上传文件使用`input`,但是为了美观,我们都直接点击头像就可以出现选择框。这里写出两种解决方案:*把`input`隐藏掉,使用`jquery`来触发`input`的`click`事件,但是有个问题就是IE没有效果。*把`input`设置为透明的,浮在文件区域的上方。这里又存在一个问题,那就是IE效果如下图(未透明):这个时候只有点击浏览才可以上传,黑色区域要双击才有效果。最后我参考了新浪的做法,就是**设置一下字体的大小**,让后效果如下:
input -
IE8以及更低版本IE加载不了样式
今天写了一个网页,搞完以后发现IE8居然加载不了样式,但是IE9就可以。开始以为是CSS没有加载成功,但发现IE8部分样式有效果,最后看了半天原来是**把样式写到了HTML5的main标签上面**,导致了IE8识别不出来。今天发现不仅仅是IE8不支持,我的IE10也不支持,但是有的IE10又支持,估计是什么设置的问题。
IE8 HTML5 CSS