0%

在oracle中直接有decode函数 decode(cola,null,0)

表示如果cola为空,赋值为0

在mysql中的具体实现如下,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
mysql> describe book;
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| book_id | bigint(20) | NO | PRI | NULL | auto_increment |
| name | varchar(100) | NO | | NULL | |
| number | int(11) | NO | | NULL | |
+---------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

mysql> select * from book;
+---------+-------------------------+--------+
| book_id | name | number |
+---------+-------------------------+--------+
| 123 | 123 | 122 |
| 1000 | Java程序设计 | 5 |
| 1001 | 数据结构 | 9 |
| 1002 | 设计模式 | 10 |
| 1003 | 编译原理 | 10 |
| 1004 | MySQL从删库到跑路 | 100 |
| 1005 | 活着 | 10 |
| 1232 | 11111 | 124 |
| 2001 | 测试 | 2001 |
| 10064 | 老鼠爱大米 | 10088 |
| 10066 | 老鼠爱大米 | 1008 |
| 10088 | 测试宝典 | 1008 |
| 10096 | maven实战 | 10096 |
| 11111 | 111111 | 11111 |
| 12311 | 都懂得 | 1222 |
| 123222 | 222 | 1111 |
+---------+-------------------------+--------+
16 rows in set (0.00 sec)

mysql> select if(count(b.book_id)=16,"十六","不是十六") '结果' from book b;
+--------+
| 结果 |
+--------+
| 十六 |
+--------+
1 row in set (0.00 sec)

mysql> select case count(b.book_id) when 16 then '十六' else '其他' end as '结果' from book b;
+--------+
| 结果 |
+--------+
| 十六 |
+--------+
1 row in set (0.00 sec)

到处搜了一下也没有看到专门做好的jar包

真实的目录结构如下:

1
2
3
4
5
6
7
C:\1\hisenyuan\build.png
C:\1\hisenyuan\DSCN6812.JPG
C:\1\hisenyuan\test\test\hello.zip
C:\1\hisenyuan\test\hisenyuan.zip
C:\1\hisenyuan\test\test.txt
C:\1\hisenyuan\test\test\hello\hello.txt
C:\1\hisenyuan\tomcat.png

压缩包的目录结构如下:

1
2
3
4
5
6
7
build.png
DSCN6812.JPG
test\hello.zip
test\hisenyuan.zip
test\test.txt
test\hello\hello.txt
tomcat.png

全部代码如下:

Read more »

IDEA上搭建dubbo服务的简单过程

只是简单的让例子在IntelliJ IDEA跑起来

目前是最新的版本:2.5.4-SNAPSHOT

本文档更新时间:2017年04月19日01:08:02

一 、安装zookeeper

参考链接:ubuntu apt-get安装zookeeper

二、Idea clone本项目

导出项目之后,配置一下tomcat,添加dubbo-admin:war到tomcat中

项目github地址:https://github.com/hisen-yuan/dubbo

三、启动tomcat,即可访问dubbo管理后台

默认账号:root

默认密码:root

四、启动服务提供者&消费者demo

  1. 修改dubbo-demo-consumer配置文件中的注册中心地址
1
/dubbo/dubbo-demo/dubbo-demo-consumer/src/test/resources/dubbo.properties
1
2
3
#dubbo.registry.address=multicast://224.5.6.7:1234
#使用本地的zookeeper做注册中心
dubbo.registry.address=zookeeper://127.0.0.1:2181
  1. 修改ubbo-demo-provider配置文件中的注册中心地址
1
/dubbo/dubbo-demo/dubbo-demo-provider/src/test/resources/dubbo.properties
1
2
3
#dubbo.registry.address=multicast://224.5.6.7:1234
#使用本地的zookeeper做注册中心
dubbo.registry.address=zookeeper://127.0.0.1:2181
  1. 分别启动dubbo-demo下ubbo-demo-provider、dubbo-demo-consumer下的测试方法

即可在后台看到有服务在运行

表结构,数据内容如下。

需求是:查找出每个年级,年纪最大的人的名字。

个人的思维只停留在

1
2
3
4
5
6
7
8
9
10
11
mysql> select name, max(age),grade from  stu group by grade;
ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'hisen.stu.name' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

mysql> SELECT A.* FROM stu A INNER JOIN (SELECT MAX(AGE) AS MAX_AGE,GRADE FROM stu GROUP BY GRADE ) B ON A.GRADE = B.GRADE AND A.AGE= B.MAX_AGE;
+----+------+------+-------+
| id | name | age | grade |
+----+------+------+-------+
| 3 | c | 13 | 1 |
| 6 | f | 13 | 2 |
+----+------+------+-------+
2 rows in set (0.00 sec)

折腾了一会自己不知道怎么解决,后来倒是解决了。

具体过程如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
mysql> describe stu;
+-------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | char(1) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| grade | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

mysql> select * from stu;
+----+------+------+-------+
| id | name | age | grade |
+----+------+------+-------+
| 1 | a | 11 | 1 |
| 2 | b | 12 | 1 |
| 3 | c | 13 | 1 |
| 4 | d | 11 | 2 |
| 5 | e | 12 | 2 |
| 6 | f | 13 | 2 |
+----+------+------+-------+
6 rows in set (0.00 sec)

mysql> select max(name), max(age),grade from stu group by grade;
+-----------+----------+-------+
| max(name) | max(age) | grade |
+-----------+----------+-------+
| c | 13 | 1 |
| f | 13 | 2 |
+-----------+----------+-------+
2 rows in set (0.01 sec)

一、配置ubuntu国内镜像,这里推荐阿里云,右上角搜索:换阿里云源

二、安装docker

1
2
3
4
sudo apt-get update
sudo apt-get install \
linux-image-extra-$(uname -r) \
linux-image-extra-virtual

安装docker包

1
2
3
4
5
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common

添加docker官方GPG秘钥,留意最后那个符号也要复制

1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

安装稳定版仓库

Read more »

配置文件:

1
yourPath\maven-3.3.9\conf\settings.xml

找到里面的,添加镜像即可

1
2
<mirrors>
</mirrors>

这里写的是被镜像的ID

如果写成:* (星号)

所有的请求都会到这个镜像上,包括各种本地库

注意:千万不要配成***

否则内网的仓库或者你配的镜像里面没有一下jar包的时候不会去别的地方搜索

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!--阿里云:速度挺快-->
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

<!--谷歌:北京速度不错-->
<mirror>
<id>google-maven-central</id>
<name>Google Maven Central</name>
<url>https://maven-central.storage.googleapis.com</url>
<mirrorOf>central</mirrorOf>
</mirror>

第一种:

1
2
3
4
5
select *
from (select t.*, rownum rn
from (select * from EW_AUTH_FLOW) t
where rownum <= 5)
where rn > 2;

第二种:

1
2
3
select *
from (select t.*, rownum rn from ew_auth_flow t where rownum <= 5)
where rn > 2;

第三种:

1
2
3
select *
from (select t.*, rownum rn from ew_auth_flow t)
where rn between 2 and 5;

在使用jedis的时候出现这个问题:

redis.clients.jedis.exceptions.JedisConnectionException:Java.net.SocketException:Software caused connection abort: recv failed

我是windows上Java运行,然后redis是在虚拟机的,通过映射访问

解决办法:

编辑redis配置文件:

1
sudo vi /etc/redis/redis.conf

找到

1
bind 127.0.0.1

改成

1
bind 0.0.0.0

改完之后重启redis

1
service redis restart

即可。这跟mysql一样,允许任何ip连接!