设置springboot404与500的错误跳转

在站点下添加这个类就可以了。然后写个404,500的Action

@Configuration
@ComponentScan
@EnableAutoConfiguration
public class AppConfig extends WebMvcConfigurerAdapter implements EmbeddedServletContainerCustomizer {
@Override
public void customize(ConfigurableEmbeddedServletContainer factory) {
factory.addErrorPages(new ErrorPage(HttpStatus.NOT_FOUND, “/404”));
factory.addErrorPages(new ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, “/500”));
}
}

Springboot使用JdbcTemplate自定义查询数据

我们知道用Spring boot 的JPA查询多表是很痛苦的事情,还不如自己写Sql来的快:

1新建一个类:

@Service
@Transactional
public class OrderService {
private final JdbcTemplate jdbcTemplate;

@Autowired
public OrderService(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}

}

2.在此类在添加查询方法

public Page<OrderShow> getOrderByShoperAndStatusAndUid(long shoperId, int status, long uid, int p, int pz) {

String where = “t1.`shoper_id`=” + shoperId;
if (status > -1) {
where += ” and t1.`status`=” + status;
}
if (uid > 0) {
where += ” and t1.uid=” + uid;
}
String sql = “SELECT t1.*,t2.*,t3.* FROM `order` t1 join `order_goods` t2 on t1.order_id=t2.order_id join `user` t3 on t1.uid=t3.id where %s ORDER BY t1.id DESC LIMIT %d,%d”;
String totalSql = String.format(“SELECT count(0) FROM `order` t1 join `order_goods` t2 on t1.order_id=t2.order_id join `user` t3 on t1.uid=t3.id where %s”, where);
p = p < 1 ? 1 : p;
int page = (p – 1) * pz;
sql = String.format(sql, where, page, pz);
int total = jdbcTemplate.queryForObject(totalSql, Integer.class);
List<OrderShow> listResult = jdbcTemplate.query(sql, new RowMapper<OrderShow>() {
@Override
public OrderShow mapRow(ResultSet rs, int arg1) throws SQLException {
OrderShow order = new OrderShow();
order.setGoodsId(rs.getInt(“goods_id”));

return order;
}
});
// Pageable pageable = new PageRequest(page, pz, new Sort(new Sort.Order(Sort.Direction.DESC, “id”)));
// return new PageImpl<OrderShow>(listResult,pageable,total);
return new Page<OrderShow>() {
@Override
public int getTotalPages() {
return total;
}

@Override
public long getTotalElements() {
return total;
}

@Override
public int getNumber() {
return 0;
}

@Override
public int getSize() {
return 0;
}

@Override
public int getNumberOfElements() {
return total;
}

@Override
public List<OrderShow> getContent() {
return listResult;
}

@Override
public Iterator<OrderShow> iterator() {
return listResult.iterator();
}
};

}

这样就可以使用自定义的SQL查询数据了, 再也不用啥OnetoOne,OneToMany头痛的东西

基本Linux的命令

基本Linux的命令

2016年1月11日操作系统、Linuxlinuxdongee
1.查找文件

find / -name filename.txt 根据名称查找/目录下的filename.txt文件。

find . -name “*.xml” 递归查找所有的xml文件

find . -name “*.xml” |xargs grep “hello world” 递归查找所有文件内容中包含hello world的xml文件

grep -H ‘spring’ *.xml 查找所以有的包含spring的xml文件

find ./ -size 0 | xargs rm -f & 删除文件大小为零的文件

ls -l | grep ‘.jar’ 查找当前目录中的所有jar文件

grep ‘test’ d* 显示所有以d开头的文件中包含test的行。

grep ‘test’ aa bb cc 显示在aa,bb,cc文件中匹配test的行。

grep ‘[a-z]\{5\}’ aa 显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

2.查看一个程序是否运行

ps –ef|grep mono查看所有有关mono的进程

3.终止线程

kill -9 19979 终止线程号位19979的进程

4.查看文件,包含隐藏文件

ls -al

5.当前工作目录

pwd

6.复制文件

cp source dest 复制文件

cp -r sourceFolder targetFolder 递归复制整个文件夹

scp sourecFile romoteUserName@remoteIp:remoteAddr 远程拷贝

7.创建目录

mkdir newfolder

8.删除目录

rmdir deleteEmptyFolder 删除空目录 rm -rf deleteFile 递归删除目录中所有内容

9.移动文件

mv /temp/movefile /targetFolder

10.重命名

mv oldNameFile newNameFile

11.切换用户

su -username

12.修改文件权限

chmod 777 file.cs //file.cs的权限-rwxrwxrwx,r表示读、w表示写、x表示可执行

13.压缩文件

tar -czf test.tar.gz /test1 /test2

14.列出压缩文件列表

tar -tzf test.tar.gz

15.解压文件

tar -xvzf test.tar.gz

16.查看文件头10行

head -n 10 example.txt

17.查看文件尾10行

tail -n 10 example.txt

18.查看日志类型文件

tail -f exmaple.log //这个命令会自动显示新增内容,屏幕只显示10行内容的(可设置)。

19.使用超级管理员身份执行命令

sudo rm a.txt 使用管理员身份删除文件

20.查看端口占用情况

netstat -tln | grep 8080 查看端口8080的使用情况

21.查看端口属于哪个程序

lsof -i :8080

22.查看进程

ps aux|grep jexus查看jexus进程

ps aux 查看所有进程

23.以树状图列出目录的内容

tree a

ps:Mac下使用tree命令

24. 文件下载

wget http://file.tgz mac下安装wget命令

curl http://file.tgz

25. 网络检测

ping www.cnblogs.com

26.远程登录

ssh userName@ip

27.打印信息

echo $ZOOKEEPER_HOME打印zookeeper home环境变量的值

28.Mono常用命令

mono,mcs,gmcs ,makecert 等等

29.其他命令

svn git

df -h 分区信息
du -h 目录信息
su 切换到管理员
sudo 执行管理员命令
apt-get install && apt-get upgrade
apt-get clean && apt-get autoclean
pwd 当前目录
file 查看目录类型
/etc/init.d/networking restart 重启网络
cat -n 行号看文本==nl
tac 从尾到前看文本
w,who 当前连接的用户
whoami 当前是哪个用户
cp 复制
mv 剪切
mount 映射文件(umount 删除映射)
groups 隶属于哪些组
ifconfig network interface配置
iface eth0 inet static | dhcp
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.253
dns-nameservers 8.8.8.8 202.106.0.20
gzip -v yan.txt 用gzip压缩并在前台显示压缩流(会删原文件)
gzip -cv yan.txt > yan.txt.gz 用gzip压缩并在前台显示压缩流(保留原文件)
gzip -dv yan.txt.gz 解压
zcat yan.txt.gz 直接读出压缩包的内容。
bzip2 -vk yan.txt 用bzip2压缩并在前台显示压缩流(保留原文件)
bzip2 -dv yan.txt.bz2 解压
bzcat yan.txt.bz2 直接读出压缩包中的内容。
tar -jcvf xxx.tar.bz2 /home 将/home下的内容打包并用bzip2压缩成xxx.tar.bz2
tar -jtvf xxx.tar.bz2  查看压缩包中的目录
tar -jxvf xxx.tar.bz2 -C ./test 将所有文件解包解压到当前的test目录下
tar -zcvf xxx.tar.gz  /home 将/home下的内容打包并用gzip压缩成xxx.tar.gz

uname -a 系统的核心信息
declare -i sum=100+300+50 declare定义变量加类型
name=yanzi 设置变量
unset name 删变量
type ll 查看命令是别名还是执行路径
set 观看所有变量包括自定义变量
env 观察环境变量与常见环境变量
man which 查看命令详细的操作说明(vi打开)
alias cls=’clear’ 设置别名
unalias cls  删除别名
history 输过命令历史列表
!!执行上一条输过的命令
!3执行上3条输过的命令