欢迎来到Heck's Blog,专业承接拿站、企业建站、仿站、网上商城架构、门户网站搭建、空间域名注册、软件定制等项目。关注网络安全,因为专注,所以专业,懂得放弃,才能收获。有事请发邮件至i@heckjj.com,请记住本站网址:http://www.heckjj.com,多谢。
9月14
SELECT COUNT(*) 

FROM (SELECT 分组字dao段 FROM 表 

GROUP BY 分组字段 

)别名 

或者 

SELECT COUNT(*) 

FROM (SELECT distinct 分组字段 FROM 表)别名

扩展资料:
SQL分组查询

在SQL Server中使用的分组查询是ORDER BY子句,使用ORDER BY子句要同聚合函数配合使用才能完成分组查询,在SELECT查询的字段中如果字段没有使用聚合函数就必须出现在ORDER BY子句中(即SELECT后边的字段名要么出现在聚合函数中,要么在ORDER BY子句中使用)

在分组查询中还可以配合使用HAVING子句,定义查询条件。

使用group by进行分组查询

在使用group by关键字时,在select列表中可以指定的项目是有限制的,select语句中仅许以下几项:

1、被分组的列

2、为每个分组返回一个值得表达式,例如用一个列名作为参数的聚合函数

3、group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面


要得到每组的合计可以用下面的,要总计用上面的,想一次性得到分组合计以内及总计,可以这么写:

SELECT 分组容字段 FROM 表
GROUP BY 分组字段
compute sum(COUNT(*))


那就这样
SELECT COUNT(*)
FROM (SELECT 分组字段 FROM 表
GROUP BY 分组字段
)别名

或者

SELECT COUNT(*)
FROM (SELECT distinct 分组字段 FROM 表)别名
9月14

  location / {
      proxy_http_version 1.1;    
      proxy_set_header Upgrade $http_upgrade;    
      proxy_set_header Connection "Upgrade";    
      proxy_set_header X-real-ip $remote_addr;
      proxy_set_header X-Forwarded-For $remote_addr;
      proxy_pass http://localhost:6633/;
    }
9月3
最近在做项目时,需要要工具类中对属性进行赋值,里面有appID和appsecret,因为这两个都是相对固定不会变动的东西,所以配在配置文件 或者数据库配置表最好,这边使用的是配置文件(application.yml),然后通过@Value()属性注入到对应的属性中。
刚开始在做的时候,启动项目后发现通过使用@Value注解对这两个属性进行赋值,结果两个都注不进去。

这个让我很苦恼,通过查找资料。找到了通过set的办法进行注入,并成功。

解决办法:

   1.将这两个私有属性的set方法从私有变成公开(private -->>> public);

   2.生成这两个静态属性的set方法;

   3.将原来在静态属性上的@Value() 注解改到设在 set方法上;

   4.去除这两个静态属性set方法的static关键字

类上面的@Compoent 注解一定要有,一定要注意set方法是没有static的,否则取不到值的。
8月19
Tess4j Issue in Windows: java.lang.UnsatisfiedLinkError: The specified module could not be found in instance.doOCR(imageFile)

Tess4j在本地跑的时候没有问题,放到windows server2008 r2服务器上的时候就报下面找不到模块的错误:

java.lang.UnsatisfiedLinkError: The specified module could not be found.

       at com.sun.jna.Native.open(Native Method) ~[jna.jar:4.2.1 (b0)]
       at com.sun.jna.NativeLibrary.loadLibrary(NativeLibrary.java:263) ~[jna.jar:4.2.1 (b0)]
       at com.sun.jna.NativeLibrary.getInstance(NativeLibrary.java:403) ~[jna.jar:4.2.1 (b0)]
       at com.sun.jna.Library$Handler.<init>(Library.java:147) ~[jna.jar:4.2.1 (b0)]
       at com.sun.jna.Native.loadLibrary(Native.java:502) ~[jna.jar:4.2.1 (b0)]
       at com.sun.jna.Native.loadLibrary(Native.java:481) ~[jna.jar:4.2.1 (b0)]
       at net.sourceforge.tess4j.util.LoadLibs.getTessAPIInstance(Unknown Source) ~[tess4j-3.0.jar:na]
       at net.sourceforge.tess4j.TessAPI.<clinit>(Unknown Source) ~[tess4j-3.0.jar:na]
       at net.sourceforge.tess4j.Tesseract.init(Unknown Source) ~[tess4j-3.0.jar:na]
       at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source) ~[tess4j-3.0.jar:na]
       at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source) ~[tess4j-3.0.jar:na]
       at net.sourceforge.tess4j.Tesseract.doOCR(Unknown Source) ~[tess4j-3.0.jar:na]
       at ocr.OCRController.handleFileUpload(OCRController.java:109) ~[classes/:na]
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_51]
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_51]
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_51]
       at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_51]

我搜索并发现人们建议更新Visual VisualC++可重分发软件包,我做了Visual Studio 2013,但结果却没有帮助,我仍然得到同样的问题。我不知道我做错了什么,下面是我的代码。

ITesseract instance = new Tesseract(); // JNA Interface Mapping

instance.setDatapath(new File(datapath).getPath());
instance.setLanguage("eng");      
try {
       String result = instance.doOCR(imageFile); //error here
} catch (TesseractException e) {
       System.err.println(e.getMessage());
}


此问题与Windows无关。
我已经把版本换回3.0
<dependency>
       <groupId>net.sourceforge.tess4j</groupId>
       <artifactId>tess4j</artifactId>
       <version>3.0.0</version>
</dependency>
替换所有以前的maven依赖项,就好了。
8月5
x-www-form-urlencoded方式:

Map<String,Object>  map = new HashMap<>();
map.put("page_size","100")
map.put("ps", "100")
map.put("page_flag", "true")
Document doc = Jsoup.connect("http://www.zgetfl.org/qget/main_qget/sqgl/apLcChildAction.do?method=listApLcChildnew")
                    .header("useragent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36")
                    .header("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8")
                    .data("page_size","100")
                    .data("ps", "100")
                    .data("page_flag", "true")
                    .post();

application/json方式:

Map<String,String> map = new HashMap<>();
map.put("username","aaaa");
map.put("password","123456");
Gson gson = new Gson();
String parameter = gson.toJson(map);
Document doc = Jsoup.connect("localhost:8080/api/user/login")
                    .header("useragent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36")
                    .requestBody(parameter)
                    .ignoreContentType(true)
                    .post();
7月9
MySQL中,查询表(crawl_content)中字段(url)值重复的记录:

SELECT url, COUNT(*) AS sumCount FROM crawl_content GROUP BY url HAVING sumCount > 1;
说明:先用GROUP BY 对 url进行分组,同时使用COUNT(*)进行统计,再用HAVING来过滤大于1的,这样查找出来的就是重复的记录了。
7月9
nginx location语法

语法详解

语法规则: location [=|~|~*|^~] /uri/ { … }

= 开头表示精确匹配

^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。以xx开头

~ 开头表示区分大小写的正则匹配                     以xx结尾

~* 开头表示不区分大小写的正则匹配                以xx结尾

!~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则

/ 通用匹配,任何请求都会匹配到。

7月3
nginx设置反向代理后,页面上的js css文件无法加载
问题现象:
  nginx配置反向代理后,网页可以正常访问,但是页面上的js css文件无法加载,页面样式乱了,图片也不显示。


    location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_pass http://localhost:8080/;
    }
    
    #配置静态资源 解决js css 文件无法加载无法访问的问题,注意末尾不能有 /
    location ~ .*\.(jpg|js|html|mp3|gif|jpeg|png|bmp|swf|ico|css)$ {
      proxy_pass http://localhost:8080;
    }
    

#号注释的部分是后面加上去的,之前是没有,这个就是nginx的反向代理的配置文件;

    location ~ .*\.(jpg|js|html|mp3|gif|jpeg|png|bmp|swf|ico|css)$

加上这个就可以了
6月28

Shiro后台实现验证权限

15:18编程杂谈  From: 本站原创
今天在项目中发现一个问题:使用shiro的时候,虽然隐藏掉了一些菜单,但是当我们通过get请求直接访问菜单的时候还是会访问到,也就是shiro可以在界面实现隐藏一些信息,但是没有真正的根据权限码验证请求,于是想自己在后台实现验证。
  
需求:有权限(权限码是systemmanager:settings)的人可以点击系统设置跳转到系统设置页面,没权限的人看不到菜单,但是通过get访问可以访问到,于是需要在后台拦截。

实现思路:在需要精确验证的方法开始先验证权限,如果验证成功啥也不做,验证失败的话就抛出一个没有权限的异常。在拦截器中捕捉到异常就记录日志,并返回到提醒页面。


1.  验证Shiro权限的工具类(此工具还可以进一步完善,封装为判断是否有指定角色,或者有任意角色)


package com.microxiang.common.util;

import com.microxiang.common.constant.ResultCode;
import com.microxiang.common.exception.user.NoPermissionException;
import com.microxiang.common.system.vo.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.subject.Subject;

/**
* 验证shiro权限的工具类
*
* @author jiangjun
*/
@Slf4j
public class ShiroPermissionUtils {

    private ShiroPermissionUtils() {

    }

    /**
     * 检查当前用户是否有权限(任意一项)
     *
     * @param permissionCodes 任意权限
     * @throws NoPermissionException
     */
    public static void checkPermissionAny(String... permissionCodes) {
        if (permissionCodes == null || permissionCodes.length == 0) {
            return;
        }

        // 获取用户信息
        Subject currentUser = SecurityUtils.getSubject();
        for (String permission : permissionCodes) {
            boolean permitted = currentUser.isPermitted(permission);// 判断是否有权限
            if (permitted) {
                return;
            }
        }

        // 没权限就抛出一个异常
        Object principal = currentUser.getPrincipal();
        if (principal instanceof LoginUser) {
            LoginUser user = (LoginUser) principal;
            log.error("user {} no permission !", user.getUsername());
        }
        throw new NoPermissionException("user no permission !");
    }

    /**
     * 检查当前用户是否有权限(所有的)
     *
     * @param permissionCodes 任意权限
     * @throws NoPermissionException
     */
    public static void checkPermissionAll(String... permissionCodes) {
        if (permissionCodes == null || permissionCodes.length == 0) {
            return;
        }

        // 获取用户信息
        Subject currentUser = SecurityUtils.getSubject();
        for (String permission : permissionCodes) {
            boolean permitted = currentUser.isPermitted(permission);// 判断是否有权限
            if (!permitted) {
                // 没权限就抛出一个异常
                Object principal = currentUser.getPrincipal();
                if (principal instanceof LoginUser) {
                    LoginUser user = (LoginUser) principal;
                    log.error("user {} no permission !", user.getUsername());
                }
                throw new NoPermissionException("no permission ");
            }
        }
    }
}

6月17
如何怎么能把QQ昵称加上2020,²º²º上标小字符?? (QQ昵称右上角加数字2020)经常有很多人在这个问题,所以分享下。

²º²º复制上去就可以了

⁰ º ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉⁰ º ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉⁰ º ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉⁰ º ¹ ² ³ ⁴ ⁵ ⁶ ⁷ ⁸ ⁹₀ ₁ ₂ ₃ ₄ ₅ ₆ ₇ ₈ ₉


用什么输入法可以打出 怎么_如何能把QQ昵称加上2020有右上标小字符?右上角标小字²º²º

怎么_如何能把QQ昵称加上²º²º有右上标小字符?右上角标小字²º²º,QQ昵称右上角小数字怎么打出来

怎么能把QQ昵称加上2020上标小字符?_微信昵称上面的小字和数字(上标或下标)是怎么弄出来的
搜狗输入只有01234这几个特殊上标符号,怎么办?有其他输入方式吗? 怎样给你的QQ昵称加上标小字2020
分页: 1/51 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]