1.引入 全文检索简介: 非结构化数据又一种叫法叫全文数据.从全文数据(文本)中进行检索就叫全文检索. 2.数据库搜索的弊端 案例 :     select  *  from product  where product like ‘苹果’g1. 使用like,会导致索引失效    (没有索引时)速度相对慢 2. 搜索效果不好3. 没有相关度排序 3.全文解锁实现原理 4.简单使用 4.1.创建索引与搜索索引 首先导入jar包 代码: package com.day02.lucene; impo…
1.什么是事务(Transaction:tx) 数据库的某些需要分步完成,看做是一个整体(独立的工作单元),不能分割,要么整体成功,要么整体生效.“一荣俱荣,一损俱损”,最能体现事务的思想.案例:银行转账案例,A给B转账1000元钱,会涉及到减少A账户余额的1000元,增加B账户的余额1000元.该过程,必须要成功,都成功,要失败,都失败.该特性体现在SQL中,就是一个操作中的多条SQL语句,要么都执行成功,要么都失败.事务必须体现四个特性:原子性(Atomic).一致性(Consistency…
1.业务分析 发展历史:  上车收费-->车站买票(相当于先收钱后上车)-->站务系统--->联网售票 2.项目结构 3.开发流程分析 1.业务分析            图文并茂  doc文档    使用axure做原型图,然后生成html代码用户文档中或者与同事需求分析评估 2.设计数据     建模   powerDesigner    然后直接生成数据库中的表 3.应用架构(ssm/ssh)          3.1.缓存(redis/memcached) 3.2.服务交互使用什…
1.简单使用 1.1.服务端 1.编写接口 package com.day02.sation.ws; /** * Created by Administrator on 1/12. */ public interface ITicket { /** * * @param userName * @return */ public String buyTicket(String userName); /** * * @param id * @return */ public String getTi…
1.jar包 拷贝quartz-2.2.3.jar包到项目 2.编写定时任务类TicketQuart.java package com.day02.sation.task; import com.day02.sation.page.ResultPage; import com.day02.sation.query.TicketQueryObj; import com.day02.sation.service.ITicketService; import org.slf4j.Logger; imp…
1.业务分析 权限说的是不同的用户对同一个系统有不同访问权限,其设计的本质是:给先给用户分配好URL,然后在访问的时候判断该用户是否有当前访问的URL. 2.实现 2.1数据库设计标准5表权限结构 2.2.sql语句实现,根据用户id查询该用户所有的资源 sql语句:   SELECT ur.user_id, r.url FROM user_role ur LEFT JOIN role_resource rr ON (ur.role_id = rr.role_id) LEFT JOIN reso…
1.aop概述 Spring的AOP:什么叫做AOP:Aspect oritention programming(面向切面编程)什么是切面:看图,业务方法 执行前后.AOP的目的:AOP能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理.日志管理.权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性.AOP的优势:降低模块的耦合度.使系统容易扩展.更好的横切面代码复用性.AOP当中的概念:1.切入点(Pointcut):在哪些类,…
1.文档格式 (见模板文件) 2.Axure简单使用 2.1安装Axure傻瓜式安装 2.2简单使用axure 3.总结 需求文件完成后应该包括三种文件: 1.axure文件 2.axure生成的html文件 3.图文并茂的doc文件…
1.创建事务管理类  TransactionManager.java package com.day02.sation.transaction; import com.day02.sation.util.JdbcUtil; import java.sql.SQLException; /** * Created by Administrator on 1/8. */ public class TransactionManager { /** * 关闭事务自动提交 */ public void be…
1.添加站间互售入口 对应的html代码 <button onclick="otherStation()">站间互售</button> 对应的js发送函数 function otherStation(){ //进入进入站间互售页面列表 window.location.href="/otherTicket/index";} 对应的控制层代码: /** * 站间互售页面 * @return */ @RequestMapping("/in…
1.日期转换 1.1字符串类型转换成时间Date类型 /** * 给定字符串 转变 为 Date 类型 * @param date 时间 * @param format 时间格式 如:yyyy-MM-dd HH:mm:ss * @return */ public static Date stringToDate(String date,String format) { SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format)…
1.memcache使用环境搭建 1.安装memcached服务器 安装方法 以管理员身份打开cmd,在cmd中执行如下命令: 注意:在执行该命令时必须在memcached.exe文件下执行. 2.开启服务 注意:要重新打开cmd控制台,再执行开启服务命令 3.查看是否启动成功 4.关闭memcache缓存服务器 到此安装\启动\查看是否启动成功\关闭服务完成! 2.memcached与spring整合并使用 1.拷贝jar包 注意:如果项目中没有日志包必须拷贝日志包 2.编写与spring整合…
1.数据字典表 CREATE TABLE `dic` ( `id` ) NOT NULL AUTO_INCREMENT, `table_name` ) DEFAULT NULL, `field_name` ) DEFAULT NULL, `field_value` ) DEFAULT NULL, `field_describe` ) DEFAULT NULL, `describe` ) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE DEFAULT CHARS…
1.业务分析 每个在窗口售票的售票员都应该可以随时查看自己的售票信息 简单的界面入口如图所示: 对应的html代码: <button onclick="orderDetail()">订单明细</button> 对应的js函数: function orderDetail(){ //进入订单明细页面 window.location.href="http://localhost:8080/order/index";}对应的后端请求页面的控制层方法:…
1.添加购票按钮 对应的html代码 因为列表是js函数动态填充的,故添加按钮应该在js函数中,完整代码如下: /** * 注意在调用该函数时必须输入参数 * 查询+ 分页 * */ function query(_pageSize,_currentPage){ // alert("------query------"); //1.获取参数 var startStation = $("#startStation").val(); var stopStation =…
1.登录 登录实现如下步骤: 1.在首页中添加登录按钮 html代码如下: <%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8" %> <html> <head> <title>首页</title> </head> <body> <a href=…
1.高级查询+分页最终结果 2.分页的本质分析 前端传入:当前页  和  每页显示条数 数据库必须查询出:数据列表 和 总共条数 页面显示包括的数据有: 列表 +  每页显示条数 + 当前页 + 总共页数 + 总共条数,站在面向对象的思考角度应该将其封装到一个对象中 即:分页对象 resultPage.java 其中总共页数通过计算而来,  总共页数=()(总共条数-1)/每页显示条数)+1 在查询列表的时候需要使用 limit 开始下标,每页显示条数, 开始下标由前端决定, 开始下标=(当前页…
1.高级查询最总效果 2.高级查询步骤 2.1页面输入框显示 开始车站:<input id="startStation" type="text" value="" /> 到 到达车站:<input id="stopStation" type="text" value="" /> <button onclick="query()">查…
错误1.MapperScannerConfigurer中应该去扫描包,而不是接口 如果出现上述错误,报错如下,注意我们在看报错日志的时候一点要从 后往前看 错误2.没有配置别名,又要使用别名 命名不规范:在注入接口时 命名 去掉首字母i后,将首字母小写,如下:…
1.引入jquery 1.添加jquery包 2.在要使用jquery的页面中引入jquery 引入jquery后必须检查是否引入正确,这里值得注意的是 springMVC默认情况先会拦截 js文件,所以必须 在web,xml中配置排除对js的拦截 <!--排除静态资源的拦截--> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pa…
1.搭建标准web项目结构 搭建完成后的项目结构如图 1.创建普通web项目(略) 2.在lib中添加jar包 3.在resources中添加spring-config.xml主配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http…
1.模型分析 1.基本必备字段 id   state  type   createTime   updateTime 2.车票  :   车次   开始车站   到达车站   出发时间    票价    剩余票数     线路id   3.线路 :   线路编号 \ 里程\线路名称\4.司机:  名称   驾龄   性别     编号    电话    地址   5.车辆:   座位数\燃油类型\机架号\车牌号6.车站:  车站名称   车站编号    地点    车站级别    7.订单:  …
1.安装powerDesigner 1. 傻瓜式的安装 2.在安装的过程中选择地区后才可以点击同意和下一步 3.安装地址,建议直接把c改为d 4.其他选项直接下一步 2.使用powerDesigner做流程图 1. 2. 3. 4.  两个重要快捷键:          ctrl+home:左右对齐          ctrl+end:上下对齐 3.使用powerDesigner创建数据库表 步骤如下: 1. 2.设置数据库类型以及工程名称 3.创建表 4.定表的名称 与 字段 5.设置表名 6…
* { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布式项目实战视频教程 视频课程包含: 高级Java架构师包含:Spring boot.Spring  cloud.Dubbo.Redis.ActiveMQ.Nginx.Mycat.S…
15套Java架构师详情 * { font-family: "Microsoft YaHei" !important } h1 { background-color: #006; color: #FF0 } 15套java架构师.集群.高可用.高可扩展.高性能.高并发.性能优化.Spring boot.Redis.ActiveMQ.Nginx.Mycat.Netty.Jvm大型分布式项目实战视频教程 视频课程包含: 高级Java架构师包含:Spring boot.Spring  clo…
视频课程内容包含: 高级 Java 架构师包含:Spring boot.Spring cloud.Dubbo.Redis.ActiveMQ.Nginx.Mycat.Spring.MongoDB.ZeroMQ.Git.Nosql.Jvm.Mecached.Netty.Nio.Mina.性能调优.高并发.tomcat 负载均衡.大型电商项目实战.高可用.高可扩展.数据库架构设计.Solr 集群与应用.分布式实战.主从复制.高可用集群等高端视频. 15 套目录(以下目录全是视频): 第一套:高级架构师…
1. 学习计划 第一天:Lucene的基础知识 1.案例分析:什么是全文检索,如何实现全文检索 2.Lucene实现全文检索的流程 a) 创建索引 b) 查询索引 3.配置开发环境 4.创建索引库 5.查询索引库 6.分析器的分析过程 a) 测试分析器的分词效果 b) 第三方中文分析器 7.索引库的维护 a) 添加文档 b) 删除文档 c) 修改文档 8.Lucene的高级查询Lucene的查询 a) 使用Query的子类查询 MatchAllDocsQuery TermQuery Numeri…
全文检索(Lucene&Solr) 1)什么是全文检索?为什么需要全文检索? 结构化数据(mysql等)方便查询,而非结构化数据(如多篇文章)是难以查询到自己需要的,所以要使用全文检索. 全文检索:将非结构化数据的内容提取一部分,然后重新组织,使其有一定结构,然后就能以此快速的查找需要的信息,提取整理后的信息称之为索引. 应用:如淘宝,京东的搜索商品:百度的索引引擎. 2)原始文档:互联网上的网页,数据库中的数据,磁盘上的文件: 索引库:索引+原始文档: 语汇单元:一个term就是一个单元. 3…
一.什么是全文检索 1.数据分类 我们生活中的数据总体分为两种:结构化数据和非结构化数据.   结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等.   非结构化数据:指不定长或无固定格式的数据,如邮件,word文档等磁盘上的文件 2.结构化数据搜索 常见的结构化数据也就是数据库中的数据.在数据库中搜索很容易实现,通常都是使用sql语句进行查询,而且能很快的得到查询结果. 为什么数据库搜索很容易? 因为数据库中的数据存储是有规律的,有行有列而且数据格式.数据长度都是固定的. 3.非结…
目录 1 搜索简介 1.1 搜索实现方案 1.2 数据查询方法 1.2.1 顺序扫描法 1.2.2 倒排索引法(反向索引) 1.3 搜索技术应用场景 2 Lucene简介 2.1 Lucene是什么 2.2 全文检索是什么 2.3 Lucene与搜索引擎的区别 3 全文检索流程 3.1 索引和检索流程图 3.2 索引流程 3.3 检索流程 1 搜索简介 1.1 搜索实现方案 (1) 传统实现方案 根据用户输入的关键词(java), 应用服务器使用SQL语句查询数据库, 将查询到的结果返回给用户.…