- 博客(37)
- 收藏
- 关注
原创 2018_06_21 全文检索技术___Solr
Solr主要用于对其他存储系统中已有的数据进行分析,查询,然后展示结果;利用solr强大的搜索索引功能,找到自己需求的结果。适用场景:对于存储在文件中的日志 可以导入到solr中做分析,对于 关系型数据库里需要做全文搜索的字段 可以导入到slor 中Solr安装使用(window版):Solr可以算作是一个独立的java工程,所以整个实例中,需要tomcat和solr的安装包1.将tomcat和s...
2018-06-21 16:25:09
254
原创 2018_05_29 Objects中equals和deepEquals的区别
Object的equals()方法比较的是对象在内存中的地址是否相同,只有引用同一块地址的时候,才会为true,例如String a1 = "hello";String a2 = "hello";a1.equals(a2);结果为truePerson p1 = new Person();Person p2 = new Person();p1.equals(p2);结果为false,因为地址并不同...
2018-05-29 16:20:52
5559
2
原创 2018_04_20 redis主从复制搭建及原理
Redis的主从复制,是为了分担redis读的压力,采用的结构大多为一主(master)多从(slave),主写从读,因为大多数电商网站中,数据往往是写少读多,所以为了缓解这种压力,采取主从复制的这种方式。主从复制两种方式:(1)全量同步(SYNC):Redis的全量复制一般发生在Slave初始化阶段,这是slave会将master上的所有数据都复制一份。全量同步流程:从服务器连接主服务器,发送S...
2018-04-20 17:42:32
301
原创 2018_04_16 数据库SQL优化方案(二)
处理百万级以上的数据提高查询速度的方法:(1)应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。(2)对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。(3)应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select i...
2018-04-16 11:18:14
307
1
原创 2018_04_16 数据库SQL优化方案(一)
(1)选择最有效率的表名顺序Oracle的解析器是按照从右到左的顺序处理From子句中的表名,From子句中写在最后的表(基础表)将被最先处理,当From子句中包含多个表的情况时,应该选择记录条数最少的表作为基础表;如果是三个以上的表连接查询,需要选择交叉表作为基础表,交叉表就是被其他表所引用的表。(2)Where子句中的连接顺序Oracle采用自下而上的顺序解析Where子句,根据这个原理,表之...
2018-04-16 10:27:38
291
原创 2018_04_16 本地项目发布到linux服务器上404问题
仅仅是一个普通的web工程,在本地跑都是完全正常的,打成war包发布到linux中时,访问tomcat猫可以正常访问,一旦访问自己的项目就出现了404资源找不到的问题?以下记录本人此次遇到的问题,及解决方案。首先测试,写一个最基本的web工程只包含一个jsp欢迎页面,发布到webapps中,访问,发现可以看到,经过分析猜测,如果前台没有错误,那么就是后台出的bug,后来发现是本地开发jdk是1.8...
2018-04-16 08:55:13
1716
原创 2018_04_12 linux操作系统安装jdk,mysql
首先,为了在linux系统上操作遍历,我们先安装一个小工具lrzsz,安装命令相当简单。yum -y install lrzsz安装成功后,我们可以使用rz,sz命令来上传,下载文件(本地与linux系统交互)rz 会弹出上传文件到本地sz 文件名 会将系统中文件下载到本地安装jdk当拿到一台新创建的linux虚拟机时,通过命令java -version 查看当前机器中是否安装有jdk,一般系统自...
2018-04-12 17:24:04
223
原创 2018_03_27 ssm框架+Easyui>dialog>crud
github详细代码存放位置:https://github.com/liujiaxin1314/ssm_demo要想使用easyui,需要先初始化导入一些基本js文件,如下:<script type="text/javascript" src="${pageContext.request.contextPath }/jquery/jquery-1.8.3.js"></script...
2018-03-27 10:43:31
281
原创 2018_03_15 Nginx:nginx对connection的控制(二)
在nginx中connection就是对tcp连接的封装,其中包括连接的socket,读事件,写事件。nginx是如何处理一个连接的?nginx在启动时,会解析配置文件,得到需要监听的端口和ip地址,然后在nginx的master进程里面,初始化好这个监控的socket(创建socket,设置addrreuse等选项,绑定到指定的ip地址端口,再listen),然后再fork出多个子进程出来,子进...
2018-03-15 11:19:29
1167
原创 2018_03_15 Nginx:nginx架构及nginx高并发原理(一)
nginx启动后,在unix系统中会以daemon(守护)的方式在后台运行,后台进程包含一个master(主干)进程和多个worker进程,nginx是以多进程的方式工作的,nginx也是支持多线程的,但是默认方式是多进程 方式。master进程主要用来管理worker进程,包含:接受来自外界的信号,向各worker进程发送信号,监控worker进程的运行状态,当worker进程异常退出后,会自动...
2018-03-15 09:59:26
642
原创 2018_03_14 ssm框架整合
ssm框架整合代码github地址:https://github.com/liujiaxin1314/ssm_demossm框架整合思路:Dao层:1、SqlMapConfig.xml,空文件即可。需要文件头。2、applicationContext-dao.xml。a)数据库连接池b)SqlSessionFactory对象,需要spring和mybatis整合包下的。c)配置mapper文件扫描...
2018-03-14 16:33:28
1476
1
原创 2018_03_14 mybatis逆向工程生成代码
逆向工程生成github地址:https://github.com/liujiaxin1314/generatorSqlmapCustom逆向工程使用说明:找到generatorConfig.xml配置文件,修改配置文件中与数据库的连接和数据库中要生成的表的名字以及生成后的包的名字即可根据jdbc连接参数修改下图中各个参数根据自己的需求修改各属性值修改完各个配置以后,找到启动类GeneratorS...
2018-03-14 10:57:26
428
原创 2018_03_14 springmvc架构详解及开发流程
springmvc框架搭建github地址:https://github.com/liujiaxin1314/springmvc_demospringmvc架构执行流程如图所示:1、用户发送请求至前端控制器DispatcherServlet2、DispatcherServlet收到请求调用HandlerMapping处理器映射器3、处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器...
2018-03-14 08:55:35
1002
原创 2018_03_13 一个 java.lang.IllegalArgumentException 非法参数异常引发的血案
前两天还听到有人说Java太简单了,我就笑笑不说话,以后再让我看到谁说Java太简单了,你过来,我保证打ku你!java.lang.IllegalArgumentException就这个异常,我会牢牢的记在心里,很烦,很糟心!糟心到出现这个错误的时候,怎么弄都跳不到正确该出的页面,而现在调好了bug,想复原当初出bug的时候,又怎么都复原不回去,我就XXXXXXX引发这个异常的关键原因是:jdk与...
2018-03-13 16:05:40
88961
12
原创 2018_03_12 mybatis与spring整合
github代码:https://github.com/liujiaxin1314/mybatis_springmybatis整合spring整合思路:SqlSessionFactory对象应该放到spring容器中作为单例存在;传统的dao开发方式中,应该从spring容器中获取sqlSession对象;mapper代理形式中,应该直接从spring容器中直接获得mapper的代理对象;数据库的...
2018-03-12 15:39:01
190
原创 2018_03_09 将本地项目上传到github中
github下载地址: https://git-for-windows.github.io/ 下载完成后,一路next即可第一步:创建一个本地的版本库(就是创建一个文件夹)第二步:使用git init 命令将新创建的文件夹变成可管理的仓库(github在本地安装完成后,在任意文件夹中点右键会多出Git Base here和Git Gui here选项)完成git init操作后,在这个文件夹中...
2018-03-09 11:46:54
257
原创 2018_03_08 mybatis原始dao开发,mapper接口开发
github代码地址:点击打开链接Mapper动态代理方式,开发规范:Mapper接口开发需要遵循以下规范:1、 Mapper.xml文件中的namespace与mapper接口的类路径相同。2、 Mapper接口方法名和Mapper.xml中定义的每个statement的id相同3、 Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的...
2018-03-08 17:08:15
271
原创 2018_03_08 搭建基础mybatis框架,以及使用junit测试crud功能
第一步:创建普通的java工程第二步:加入jar包各jar包作用asm-3.3.1.jar结合cglib-2.2.2.jar用于生成动态代理类commons-loggin-1.1.1.jar是apache开发出来用来兼容java.util.logging和log.4j的包log.4j三个jar包用于支持log4j日志运行myb
2018-03-08 15:52:43
325
原创 2018_03_07 Java核心技术+卷1+基础知识+原书第9版汇总
'A'和"A"不同声明一个变量之后,必须用复制语句对变量进行显式初始化,不能直接使用未被初始化的变量否则会引发Error--variable not initialzed(变量未被初始化)for循环是在确定循环次数的情况下使用识别类的简单规则是在分析问题的过程中寻找名词,而方法对应着动词。例如在订单处理系统中,有这样一些名词:项目(Item) 订单(Order) 送货地
2018-03-07 09:41:31
167
原创 2018_03_05 数据库中的事务管理
事务的特性:1,原子性:不可分割2,一致性:事务执行前后,要保证数据完整性保持一致3,隔离性:一个事务的执行过程中不应该受其他事务的干扰4,持久性:事务一旦执行结束,数据要永久持久化到数据库如果不考虑隔离性会引发的一些问题:读问题:脏读:一个事务读到另一个事务未提交的数据不可重复读:一个事务读到另一个事务已经提交的update数据导致前后查询不一致虚读:
2018-03-05 09:44:58
154
原创 2018_02_27 全文检索技术----Lucene
数据库中保存的数据,磁盘中保存的数据都可以算做数据,常用的数据分为两种,一种是结构化数据,数据格式固定,长度有限,例如数据库中存储的数据,另一种是非结构化数据,数据格式不固定,长度不固定,例如磁盘中存储的文档数据。结构化数据的查询可以使用sql查询,查询起来方便。而非结构化数据的查询就要使用本章中描述的技术,全文检索技术--Lucene,它可以将非结构化数据编程结构化数据,
2018-02-27 16:56:14
196
原创 2018_02_26 sso原理解析
sso单点登录适用于多系统共享登录信息时,需要一个特定的sso认证中心来处理用户的登录,注销请求,传统的登录操作中,用户通过浏览器发送登录请求到服务器上,服务器会创建一个回话,并将此次回话的sessionid返还给浏览器,浏览器拿到的sessionid作为这个用户用来访问服务器的jsessionid,每次发送访问请求时,都会将这个jsessionid带上,同一个用户发送第二次请求时,服务器校验js...
2018-02-26 11:17:10
215
原创 2018_02_07 JAVA设计模式---创建型模式
创建型模式一共分为五种:工厂模式,抽象工厂模式,单例模式,建造者模式,还有原型模式工厂模式和抽象工厂模式一样,都是用于生成对象的工厂,区别是,抽象工厂模式生产的是工厂,由工厂再产生对象,这两种模式的好处是,需要对象的时候,只要在工厂中拿即可,只要知道需求对象的名字,但是,过多的工厂也会造成代码的臃肿,因为要想产生一类对象就需要一个类型的工厂,但需求更多时,工厂的代码也会更繁琐,会增加系统的复杂度(...
2018-02-07 14:55:05
179
原创 2018_01_18 echarts图表添加背景图片
楼主亲测找到两种方式给echarts添加背景图片,各有各的好处,第一种实现起来简单,但是保存图表的时候,不会将背景图片一起保存下来,第二种其实也挺简单,将图片转base64码的链接我会放到下面。第一种:<style type="text/css"> #backImg{ background: url("<%=basePath%>/images/nested _ri...
2018-01-22 10:05:51
15635
4
原创 2018_01_18 Python基础认识
使用%对字符串进行格式化%d只能用来替换整数。如果你想格式化的数值是小数,要用%f如果你想保留两位小数,需要在f前面加上条件:%.2f另外,可以用%s来替换一段字符串...
2018-01-18 11:45:09
176
原创 2018_01_17 URI和URL的理解
url实现uri,属于特殊的uri,uri可以分为绝对路径和相对路径,url获取到的是网络资源存储的一个路径位置,而uri是唯一资源的标识符,url的整个路径不仅可以算作资源的唯一标识符,还指出了,资源所在的路径。...
2018-01-17 19:09:27
139
原创 2018_01_17 处理复杂的JSON格式数据
Map<String,List<RoadOperationVehicle>> map = JSON.parseObject(tempString,new TypeReference<Map<String,List<RoadOperationVehicle>>>(){});使用fastJson处理复杂的json,json格式为:{"data...
2018-01-17 13:59:36
706
原创 2018_01_10 java.lang.OutOfMemoryError: Java heap space内存溢出
引起java内存溢出的原因有很多:主要有:1、尽早释放无用对象的引用。好的办法是使用临时变量的时候,让引用变量在退出活动域后,自动设置为null,暗示垃圾收集器来收集该对象,防止发生内存泄露。对于仍然有指针指向的实例,jvm就不会回收该资源,因为垃圾回收会将值为null的对象作为垃圾,提高GC回收机制效率;2、我们的程序里不可避免大量使用字符串处理,避免使用String,应大量使用StringBu...
2018-01-10 08:30:10
803
原创 2017_12_15 js获取项目路径,js调用问题,jsp获取js传递url中参数
js获取项目路径问题://获取当前网址,如: http://localhost:8080/uimcardprj/share/meun.jspvar curPath=window.document.location.href; //获取主机地址之后的目录,如: uimcardprj/share/meun.jspvar pathName=window.document.location.pathna...
2017-12-15 11:07:45
253
原创 2017_12_05 echarts动态赋值问题,tab切换时,图表显示错乱
当一张echarts图表中有多个选项切换时,在向option中setOption中的时候,要保证,这时候的option中并没有任何数据,否则,会将两次数据合并,就会导致数据错乱问题,官网上有个解决方法,是setOption时,可以设置三个属性,代码示例是这样:我如图进行设置以后,并没有解决我想要解决的问题,所以我用了一种蠢的方法,将要赋值的data数据等定义为全局变量,再在每次调用ajax以后进行...
2017-12-05 15:16:53
1179
原创 2017_12_01 echarts+springboot+mybatis(动态获取数据饼图+gl三维demo)
gl三维图:后台代码:package com.csht.controller;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import org.springframework.beans.factory.annotation.Autowired;impo...
2017-12-01 16:36:23
3710
原创 2017_11_29 ajax请求的get,post方式
get请求用于显示浏览器上的信息,从指定的资源请求数据,浏览器会将get请求的执行结果缓冲,如果发送同样的get请求,浏览器显示会是缓冲的结果,而不是重新运行整个请求。post请求用于需要更新服务器信息的地方,向指定的资源提交要处理的数据,post调用是从服务器上获取数据,而不是得到缓冲的结果。因此,不要用数据的量来决定是要选择GET还是POST,而应该按照目的在两者间作出选择。如果调用是要检索服...
2017-11-29 17:06:27
215
原创 2017_11_28 mybatis多参数传入,以及#,$的区别
mybatis的resultType只能接收一个参数,但是当前台数据想要传多个参数时,resultType就不能使用了,这时应该使用resultMap,resultMap作为参数map,封装多个条件,这里我就记录了自认为比较复杂的一种情况,如果传递的参数是一个list集合,在mybatis框架遍历时,collection必须指定为list,如果传递的参数时一个array数组,collection必...
2017-11-28 11:29:13
272
原创 2017_11_24 echarts之屏幕自适应、div充满整个屏幕
为了调整echarts的div容器占据整个屏幕,需要将div和body属性设置成百分比形式,即如下代码:可以在head头中添加style,或者创建.css文件引入<style type="text/css">html, body {width: 100%;height: 100%;margin: 0px;padding: 0px;}#main {width: 100%;min-heig...
2017-11-24 09:18:28
4338
1
原创 2017_11_23 学习echarts之饼状、柱状、gl(三维柱状)、map地图
1.在html中引入需要的js文件,例如,简单的处理只需要引入即可,gl图需要在引入echarts.min.js的基础上,再引入js文件,map地图需要js文件。2.为图形准备容器<div id="main" style="width: 1000px;height:800px;"></div>3.基于准备好的dom,初始化echarts实例var myChart = ech...
2017-11-23 15:53:23
2444
原创 2017_11_22 Json数据与Java对象互转的两种方式(二)
package test;import java.util.HashMap;import java.util.Map;import net.sf.json.JSONArray;import net.sf.json.JSONObject;import entity.People;public class JsonToObject3 {public static void main(String[] ...
2017-11-22 19:53:59
217
原创 2017_11_22 Json数据与Java对象互转的两种方式(一)
操纵json数据的两种方式:一种是通过JsonObject(JsonArray)注:JsonArray是用来专门操作集合的package test;import java.util.ArrayList;import java.util.List;import net.sf.json.JSONArray;import entity.People;public class JsonToObject1 ...
2017-11-22 17:41:29
246
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人