`
文章列表

mysql多表查询

在做连表查询的时候,可以在联合的字段上面,分别加上索引字段,这样有加快搜索的速度   左右连表查询时条件放在on后面和where后面的执行时机是不一样的 例如 test1表  test2表   执行 SELECT * FROM test1 t1 LEFT JOIN test2 t2  ON t1.no=t2.no AND t2.name='aaa'; 结果为 SELECT * FROM test1 t1 LEFT JOIN test2 t2  ON t1.no=t2.no WHERE t2.name='aaa'; 从这两个查询的结果集可以看出来,on的条件 ...
在linux环境下配置tomcat的垃圾回收的一些配置,在catalina.sh文件的开头,直接加入 JAVA_OPTS=" $JAVA_OPTS -server -Xms64m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=128m -XX:+HeapDumpOnOutOfMemoryError  -XX:HeapDumpPath=/home/dump.hprof -verbose:gc  -Xloggc:/hom ...

fork/join

fork/join 核心类 ForkJoinTask 任务的抽象类 ForkJoinWorkerThread 执行任务的线程 ForkJoinPool 执行任务队列的池   RecursiveTask继承了ForkJoinTask是一个带有返回的任务类 RecursiveAction不带返回的任务类   这里实现一个计算1-100的求和,不 ...

线程池1.6

java线程池,首先看一下构造方法  解释一下参数的意义 corePoolSize 核心线程数 maximumPoolSize 最大线程数, keepAliveTime 线程中超过核心线程数的空闲线程最大存活时间 unit 存活时间的单位 workQueue 线程队列类型 Executors.defaultThreadFactory() 构造线程的工厂类 defaultHandler 超过线程队列大小的时候,默认拒绝接受线程的handler类 这几个参数的意思,等一会分析源码的时候一并解释   提交到线程池执行的是execute方法,里面传入一个线程类  执行超类的s ...

多线程this逃逸

多线程this逃逸现象,一般发生在构造函数里面注册监听器或者构造函数里面启动线程,因为这个时候,构造函数还未执行完,但是却直接使用了监听器的方法或者启动了线程,就会出现一些莫名其妙的问题,   构造函数注册时候产生 构造函数开启线程产生

java环境变量不生效

    博客分类:
  • jdk
今天找同事换了个jdk8,配置好环境变量死活就是不生效,后来才发现这台电脑之前有人安装过jdk7的版本,是安装版的,所以在system32文件夹下面有java,javac等命令,环境变量会直接使用system32的,而不使用配置好的,删除掉system32下面的即可生效

java线程中断

java中的线程中断,并不是让线程终止,而且通过一个状态为来通知线程是否要中断,该线程中断与否,是让线程自己去判定,而不是外部线程来执行。 interrupt方法,为设置该线程中断位为true,默认为false isInterrupt方法,判定 ...
jenkins在做集成的时候,有时候war包在一台机器,但是服务器在另外一台机器,这样可以在服务器机器上面配置一些脚本,这个脚本跨机器拷贝war到自己的机器上面来,利用scp命令即可,但是scp命令在默认环境下,是需要密码的,这里用ssh来信息,不需要密码即可拷贝文件   例如A服务器IP192.168.1.223是war服务器 B服务器IP192.168.1.193是应用服务器   那么首先在B服务器执行 ssh-keygen -t rsa,一路会车下去,在/root/.ssh目录下面会生成id_rsa和id_rsa.pub两个文件,将id_rsa.pub复制一份出来 cp id ...

ruby安装

    博客分类:
  • ruby
在使用redis集群的时候,由于要使用ruby,在centeros中,默认安装的ruby版本比较低,redis需要2.2以上的,所以自己去安装一下   首先挑选自己需要的版本 http://www.ruby-lang.org/en/downloads/   tar -xvzf ruby-2.3.6.tar cd ruby-2.3.6   ./configure make  make install   安装完成后,看看是否安装成功 ruby -v
首先pom文件中引入 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.6.1</version> </dependency>   <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis< ...

mysql 随机order by

特殊业务场景下,需要对数据库的数据,进行随机查询出来,mysql有两种方案   SELECT * FROM b_user ORDER BY id LIMIT 99,3 ;   SELECT * FROM b_user  ORDER BY RAND() LIMIT 3 ;    第一种,从随机位置获取固定的数据,前面的99可以通过一些其他方式给予赋值,后面的则固定 第二种,利用rand函数获取   个人认为第一种的效率会快一些
由于服务器的mysql是上一个同事安装的,导入数据的时候,发现临时缓存配置的不够,所以直接上服务器改配置文件,首先用find命令查出my.cnf在哪儿  有很多配置文件 用ps命令找出mysql启动使用的配置文件  这里发现,没有指定配置文件   那只有查看mysql默认读取文件了 mysql --help|grep 'my.cnf'  这个是mysql启动默认在加载配置文件顺序,逐一查看各个目录,发现都没有配置文件   这个时候,其实mysql就是使用了默认的启动配置,如果需要手工配置,将my.cnf文件拷贝至上面任意目录即可,注意,优先级顺序

dubbo+mybatis+log4j

将之前的provider项目加入mybatis 首先在pom中引入mybatis依赖 <!-- mybatis依赖 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.1.1</version> </dependency> <dependency> <groupId>mysql</groupId> & ...
利用maven的插件,自动生成mybatis中的generator是最方便的 在resources中配置mybatis配置文件 <?xml version="1.0" encoding="UTF-8" ?>   <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-co ...
首先在各台机器上面都安装zookeeper,这里配置两台机器 192.168.1.222和192.168.1.223 在配置文件中新增 tickTime=2000 initLimit=10 syncLimit=5 dataDir=/appl/zookeeperdir/data dataLogDir=/appl/zookeeperdir/log clientPort=2181 server.1= 192.168.1.222:2888:3888 server.2= 192.168.1.223:2888:3888   配置项的意思 server.A=B:C:D中的A是一个数 ...
Global site tag (gtag.js) - Google Analytics