清茶书香

一杯清茶,一本书籍,一个明媚的下午。

了解Spring Data(二)之Solr搜索引擎

Solr是来自Apache Lucene项目的流行,快速,开源的NoSQL搜索平台。其主要功能包括强大的全文搜索,点击突出显示,分面搜索,动态聚类,数据库集成,丰富的文档处理和地理空间搜索。Solr具有高度可扩展性,可提供容错的分布式搜索和索引,并为世界上许多最大的互联网站点提供搜索和导航功能。

Solr支持Lucene ,可在任何数据类型中实现强大的匹配功能,包括短语,通配符,连接,分组等功能。

我们常用的MySQL中的InnoDB存储引擎,它的索引的方式是根据一个字段的值完全匹配或者通过对某一个字段进行模糊查询的方式搜索,但是这样查询效率很低,且查询只能查询一个字段中与查询的关键字相似的数据,并不能查到所有与这个关键字相关的数据(比如其他字段中也有包含这个关键字,我还想要这些信息,那么InnoDB就做不到这些了)。像我们日常用到的搜索,比如谷歌、百度、淘宝的搜索、京东的搜索等等,这些搜索查询的结果并不都是你想要的数据,这就是搜索引擎的做到的。

阅读更多 »

了解SpringBoot配置文件

SpringBoot默认会从以下几个位置加载配置文件application.properties(或application.yml):

1、当前目录下的配置文件子目录:与xx.java同级的config\xxx.properties
2、当前文件夹:与xxx.java同级的xxx.properties
3、类路径下的配置文件子目录:classtpath:/config/xxx.properties
4、类路径下(classpath:根路径):classtpath:xxx.properties

上面的列表按数字大小分优先级,数字越小,优先级越高;同优先级时application.properties文件比application.yml文件优先级高

阅读更多 »

SpringBoot整合Sping MVC

Thymeleaf模板引擎是SpringBoot官方强烈建议使用的模板引擎,它可以完美兼容普通html网页。使用thymeleaf模板引擎后在SpringBoot环境中是显示动态的网页内容,而以本地直接运行则是显示静态的内容(Thymeleaf模板引擎的文件后缀也是.html)。

变量表达式

使用示例:

阅读更多 »

Java8新特性~函数式编程

今天来介绍一下Java8的新特性函数式编程,主要是Java8中的lambda表达式和Stream。

Lambda表达式也叫闭包,也称为匿名函数(方法),Java8才出的新特性之一。

->是lambda标识。

阅读更多 »

了解SpringMVC(三)

通过上篇文章,我们学习了spring mvc的一些常用知识,比如定义一个Controller、处理请求、获取请求参数、获取请求头参数、获取Cookie数据、获取Request、Session作用域数据、使用提前初始化数据、视图控制器实习无逻辑页面跳转、重定向与请求转发、放行静态资源等。那么这一章我们来进一步学习spring mvc的进阶知识点。

URI模式匹配允许我们在URI中添加占位符,进而传递参数,用法:

还可以用在类级别的@RequestMapping URI上,这样所有handler方法都可以获得这个参数:

阅读更多 »

了解SpringMVC(二)

上一篇文章让我们初步的了解了Spring MVC与Servlet&JSP处理请求的不同,以及简单的学习了Spring MVC处理请求的方式。这一章我们来学习些它的常用的知识点。

在Controller的方法上添加@RequestMapping注解

请求参数可以直接定义到方法参数里,并通过@RequestParam("key")注解修饰参数,这样SpringMVC会自动解析请求中的参数给你填充到方法参数中。

阅读更多 »

了解SpringMVC(一)

Spring Web MVC是基于Servlet API构建的原始Web框架,但它通常被称为“Spring MVC”。是一个基于mvc设计模式的框架,和struts2一样是一个表现层框架。

spring架构图

JSP+Servlet处理流程

阅读更多 »

MyBatis详解(二)

通过上一章我们学习了通过mybatis框架实现增删改查的操作,这一章我们主要学习mybatis的进阶级语法,包括动态SQL、缓存、关联查询,以及通过工具生成一个数据库表在Java对应的实体类、mapper接口、mapper配置文件和Spring Mybatis的整合等。

通过if标签来判断传的参数是否为空,然后拼接到SQL语句上,示例:

如果我们的state字段也是动态拼接的,那这里就有问题了,比如我三个条件都没有时,拼出来的sql语句就是SELECT * FROM BLOG WHERE显然是无法执行的,这就要用到我们的where标签

阅读更多 »

Mybatis详解(一)

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

maven依赖

一个SqlSessionFactory只能连接一个数据库实例,如果需要连接多个数据库,需要构建多个SqlSessionFactory对象

阅读更多 »

Spring框架之JDBC

在Spring JDBC模块中,所有的类可以被分到四个单独的包:

core
即核心包,它包含了JDBC的核心功能。此包内有很多重要的类,包括:JdbcTemplate类、SimpleJdbcInsert类,SimpleJdbcCall类,以及NamedParameterJdbcTemplate类。

datasource
即数据源包,访问数据源的实用工具类。它有多种数据源的实现,可以在JavaEE容器外部测试JDBC代码。

阅读更多 »