主要记录一些日常碰到的原理性问题等。
一 .java基础
1.object类方法。
2.hashMap底层原理。
二.前端
1.alert json;
json对象转json字符串:alert(JSON.stringify(data));2.前端js获取file文件大小。
.files[0].size;(不支持ie9以下,ie最好通过ajax提交from表单后端获取);
3.ajax请求传参漏传("+"和"&"传递时判断为连接符);
前后端加callback("+userJson+");
4.jsp兼容ie9以下;
添加
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
三.数据库部分
1.group by having (好久没用)
四.框架部分
1.springMVC 三层架构,拦截器过滤器等知识点。
2.jeecg相关(大类)。
2.1 jeecg在线开发1.22。
五。linux
1.linux安装mysql。
1 查找以前是否安装有mysql,使用下面命令:
rpm -qa|grep -i mysql
2 如果已经安装,则需要删除已安装的数据库,使用一下命令来删除数据库
rpm -e --nodeps 包名 (注:在卸载时候可能出现文件依赖性错误,加上--nodeps则解决)
3 卸载mysql后,还有老版本mysql的目录,并且删除老版本mysql的文件和库
find / -name mysql 或者 whereis mysql
4 查找出目录后,需要删除对应mysql目录
rm -rf 找到的目录
(注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没有用之后就手动删除)
rm -f /etc/my.cnf
rm -rf /var/lib/mysql
rm -rf 是强行删除指定文件,不会出现确认提示,r参数是递归删除,删除目录及目录下的文件事使用,f参数
表示不询问,直接删除,而且可以删除非空目录,-rf即表示递归强势删除。
5 下载好mysql数据包后,放到linux的固定目录下,如果是压缩整合包,则直接解压,具体文件类型用不同解压命令
如果安装包是rpx包,则使用下面命令直接安装rpm包
rpm -ivh 包名 (注:安装是有顺序的一般是 common libs devel client server )
安装完成后会
6 启动mysql服务
service mysql start 或者 /etc/init.d/mysqld start
查看mysql服务状态
service mysql status 或者 /etc/init.d/mysqld status
关闭mysql服务
service mysql stop 或者 /etc/init.d/mysqld stop
7 在登录mysql时候,
mysql -uroot -p
需要输入密码,你可从日志中查找生成的随机密码
sudo vi /var/log/mysqld.log
或者跳过登录输入密码的步骤
vi /etc/my.cnf 回车。然后按“i”键盘,在这个文件中的最后一行输入:skip-grant-tables
8进入数据库后,修改密码
输入use mysql;
然后输入update mysql.user set password=password('password') where user='root';
会出现以下错误 ERROR 1054 (42S22): Unknown column 'password' in 'field list'
错误原因:mysql数据库下已经没有password这个字段了,password字段改成了authentication_string。
然后使用一下命令修改
update mysql.user set authentication_string=password('root') where user='root' ;
9修改配置文件
编辑my.cnf文件删掉skip-grant-tables 这一行,然后重启MySQL,/etc/init.d/mysqld restart,否则MySQL仍能免密码登录
10登录MySQL数据库后修改密码
alter user 'root'@'localhost' identified by 'newpassword';
flush privileges;
11设置远程访问权限
use mysql;
update user set host = '%' where user='root';
select host,user from user;
flush privileges;
12MySQL数据库已经配置完成
2.Linux mysql设置远程连接。
[caibo@localhost /]$ firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[caibo@localhost /]$ firewall-cmd --reload
systemctl stop firewalld.service #停止
systemctl disable firewalld.service #禁用
mysql安装后还要允许远程连接,其他服务器才能连接到本地的数据库。
mysql账户是否不允许远程连接。如果无法连接可以尝试以下方法:
mysql -u root -p //登录MySQL
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION; //任何远程主机都可以访问数据库
mysql> FLUSH PRIVILEGES; //需要输入次命令使修改生效
mysql> EXIT //退出
也可以通过修改表来实现远程:
mysql -u root -p
mysql> use mysql;
mysql> update user set host = '%' where user = 'root';
mysql> select host, user from user;
六.其他
1.支付接口(以支付宝为例)
2.webservice通讯,调接口;
public static Object[] getWebService(String surl, String saction,Object[] objarr){
String sbcaode = "";
RPCServiceClient client = null;
try {
Object[] param =objarr;
client = new RPCServiceClient();
Options option = client.getOptions();
EndpointReference erf = new EndpointReference(surl);
option.setTo(erf);
option.setProperty("mtom-enabled", "true"); //设置此参数才支持字节参数
// 方法
QName name = new QName("http://service.com", saction);
Class[] returnTypes = new Class[] { String.class };
Object[] response = client
.invokeBlocking(name, param, returnTypes);
//sbcaode = response[0].toString();
return response;
} catch (AxisFault e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
finally{
try {
client.cleanupTransport();
} catch (AxisFault e) {
e.printStackTrace();
}
System.out.println("CAsbcaode"+sbcaode);
}
}