目录
一、oracle执行update、for update操作时卡死问题
二、为数据库添加索引
三、获取Map集合中的key、value方法
四、项目依赖的jar包中代码出现问题如何解决
五、启动Weblogic时出现java.lang.NumberFormatException: null异常导致启动失败
六、启动zookeeper时报错already running as process
七、清除redis的缓存
一、oracle执行update、for update操作时卡死问题
- 产生原因:由于在PLSQL Developer执行update操作时没有正常的commit,oracle将该条记录锁住了。
- 解决办法:
先查询出锁定的记录:SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid;
然后删除这些记录:ALTER system KILL session 'SID,serial#';(其中 SID填写上文中查到的SID数值,serial#填写serial#列的数值如:ALTER system KILL session '214,23456';)
二、为数据库添加索引
- 添加方法:create index 索引名称 on 表名(字段名);
三、获取Map集合中的key、value方法
- 原理:Map集合的entrySet()方法可以将Map中的每一个键值对当做一个Entry泛型对象存入到Set集合中,然后我们可以通过Set集合的迭代器来获取Set集合中的每一个Entry对象,Entry对象为我们提供了getKey()和getValue()方法来获取Entry对象中的键值对的值。
- 实现方法:
//实现方法一:
public void getKeyValue(Map<String,String> param) {
if( (param.size() != 0) && (param != null) ) {
for(Entry<String,String> en:param.entrySet()){
System.out.println(en.getKey() + ":" + en.getValue());
}
}
}
//实现方法二:
public void getKeyValue2(Map<String,String> param) {
if( (param != null) && (param.size() != 0 ) ) {
//将Map集合变成Set集合
Set set = param.entrySet();
//获取Set集合的迭代器
Iterator it = set.iterator();
while(it.hasNext()){
//迭代获取每一个Entry对象
Map.Entry<String,String> en = (Entry<String, String>) it.next();
//调用Entry对象的getKey()和getValue()方法获取键值对的值
System.out.println(en.getKey() + ":" + en.getValue());
}
}
}
四、项目依赖的jar包中代码出现问题如何解决
- 先定位到问题出在该jar包中的那个或哪些类中,然后将该jar包解压。
- 拿到该jar包的源码,将源码导入到Eclipse中,然后在源码中修改代码有问题的地方,再将修改问题后的java文件进行编译,最后将编译后的class文件放到刚刚解压的jar包中相对应的地方。
- 打开cmd窗口,进入到刚刚解压的jar包中(如test-5.6.1.jar解压成test-5.6.1文件夹,就使用cd命令进入到test-5.6.1文件夹中),输入命令:jar cvfm test-5.6.1.jar META-INF/MANIFEST.MF com/ META-INF/命令,敲回车即可。
五、启动Weblogic时出现java.lang.NumberFormatException: null异常导致启动失败
- 就是进入adminserver的文件里面data/ldap/conf中,找到replicas.prop,打开,清空里面的东西,再加上replica.num=0 s,然后保存,重新启动。
六、启动zookeeper时报错already running as process
- 到zookeeper的bin目录中打开zkServer.sh脚本,找到zookeeper_server.pid的文件位置,删除后再重启就可以了
- 启动命令:./zkServer.sh start
七、清除redis的缓存
- 进入redis主从配置的主机,进入redis的bin目录下,输入命令:./redis-cli命令,进入redis,然后输入命令flushall清除所有的缓存即可
- 进入redis的命令:./redis-cli -p redis端口号