当前位置:首页 > 实时新闻 > 正文

chapter11:使用数据处理函数

摘要: chapter11:使用数据处理函数chapter11:使用数据处理函数函数函数没有SQL的可移植性强:使用时应该保证做好代码注...
chapter11:使用数据处理函数

chapter11:使用数据处理函数

函数函数没有SQL的可移植性强:使用时应该保证做好代码注释。使用函数大多数SQL实现支持以下类型的函数:

chapter11:使用数据处理函数


用于处理文本串的文本函数(如删除或填充值,转换大小写);用于在数值数据上进行算术操作的数值函数(如返回绝对值);用于处理日期和时间并从这些值中提取特定成分的日期和时间函数(如返回两个时间之差);返回DBMS正使用的特殊信息的系统函数(如返回用户登录信息);文本处理函数函数说明Left()/Right()返回串左边的字符Length()返回串的长度Locate()找出串的一个子串Lower()/Upper()将串转换为小写LTrim()/RTrim()/Trim()去掉串左边的空格Soundex()返回串的SOUNDEX值SubString()返回子串的字符SOUNDEX是一个将任何文本串转换为描述其语音表示的字母数字模式的算法,例:customers表中有一个顾客Coyote Inc.,其联系名为Y.Lee。但如果这是输入错误,联系名实际应为Y.Lie,使用Soundex()进行搜索,它匹配所有发音类似于Y.Lie的联系名:
SELECT cust_name, cust_contactFROM customersWHERE Soundex(cust_contact) = Soundex('Y.Lie');
日期和时间处理函数函数说明AddDate()增加一个日期(天、周等)AddTime()增加一个事件(时、分等)CurDate()返回当前日期CurTime()返回当前时间Date()返回日期时间的日期部分DateDiff()计算两个日期之差Date_Add()高度灵活的日期运算函数Date_Format()返回一个格式化的日期或时间串Day()返回一个日期的天数部分DayOfWeek()对于一个日期,返回对应的星期几Hour()返回一个时间的小时部分Minute()返回一个时间的分钟部分Month()返回一个时间的月份部分Now()返回当前日期和时间Second()返回一个时间的秒部分Time()返回一个日期时间的时间部分Year()返回一个日期的年份部分一般,应用程序不使用用来存储日期和时间的格式,因此日期和时间函数总是用来读取、统计和处理这些值。
函数说明AddDate()增加一个日期(天、周等)AddTime()增加一个事件(时、分等)CurDate()返回当前日期CurTime()返回当前时间Date()返回日期时间的日期部分DateDiff()计算两个日期之差Date_Add()高度灵活的日期运算函数Date_Format()返回一个格式化的日期或时间串Day()返回一个日期的天数部分DayOfWeek()对于一个日期,返回对应的星期几Hour()返回一个时间的小时部分Minute()返回一个时间的分钟部分Month()返回一个时间的月份部分Now()返回当前日期和时间Second()返回一个时间的秒部分Time()返回一个日期时间的时间部分Year()返回一个日期的年份部分
SELECT cust_id, order_numFROM ordersWHERE Date(order_date) BETWEEN '2005-09-01' AND '2005-09-30';
数值处理函数函数说明Abs()绝对值Cos()余弦Exp()指数值Mod()余数Pi()圆周率Rand()随机数Sin()正弦Sqrt()平方根Tan()正切

Spring Boot 2.x基础教程:快速入门

简介
在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应用!
Spring Boot让我们的Spring应用变的更轻量化。我们不必像以前那样繁琐的构建项目、打包应用、部署到Tomcat等应用服务器中来运行我们的业务服务。通过Spring Boot实现的服务,只需要依靠一个Java类,把它打包成jar,并通过java -jar命令就可以运行起来。这一切相较于传统Spring应用来说,已经变得非常的轻便、简单。
如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:787707172,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。
总结一下Spring Boot的主要优点:
为所有Spring开发者更快的入门开箱即用,提供各种默认配置来简化项目配置内嵌式容器简化Web项目没有冗余代码生成和XML配置的要求快速入门
本文我们将学习如何快速的创建一个Spring Boot应用,并且实现一个简单的Http请求处理。通过这个例子对Spring Boot有一个初步的了解,并体验其结构简单、开发快速的特性。
创建基础项目
Spring官方提供了非常方便的工具Spring Initializr来帮助我们创建Spring Boot应用。
使用Spring Initializr页面创建
第一步:访问Spring Initializr:https://start.spring.io/
如图所示,几个选项说明:
Project:使用什么构建工具,Maven还是Gradle;本教程将采用大部分Java人员都熟悉的Maven,以方便更多读者入门学习。Language:使用什么编程语言,Java、Kotlin还是Groovy;本教程将采用Java为主编写,以方便更多读者入门学习。Spring Boot:选用的Spring Boot版本;这里将使用当前最新的2.1.3版本。Project Metadata:项目的元数据;其实就是Maven项目的基本元素,点开More options可以看到更多设置,根据自己组织的情况输入相关数据,比如:Dependencies:选择要加入的Spring Boot组件;本文将实现一个Http接口,所以可以选择Web组件,只需要输入Web,页面会自动联想显示匹配的可选组件:点击”+“之后,就如下图所示:
第二步:点击”Generate Project“按钮生成项目;此时浏览器会下载一个与上面Artifact名称一样的压缩包。
第三步:解压项目包,并用编译器以Maven项目导入,以IntelliJ IDEA为例:
菜单中选择:File –> New –> Project from Existing Sources...选择解压后的项目文件夹,点击OK点击:Import project from external model,并选择Maven,点击Next到底为止。若你的环境有多个版本的JDK,注意到选择Java SDK的时候请选择Java 8(具体根据你在第一步中选择的Java版本为准)
由于我们后续会有很多样例工程,您也可以像我们样例仓库那样,用一个基础仓库,每篇文章的样例以模块的方式保存,具体形式可见文末的案例仓库。
使用IntelliJ IDEA创建
如果是使用IntelliJ IDEA来写Java程序的话,那么还可以直接在编译器中创建Spring Boot应用。
第一步:菜单栏中选择:File => New => Project..,我们可以看到如下图所示的创建功能窗口。
其中Initial Service Url指向的地址就是Spring官方提供的Spring Initializr工具地址,所以这里创建的工程实际上也是基于它的Web工具来实现的。
第二步:点击Next,等待片刻后,我们可以看到如下图所示的工程信息窗口:
其实内容就跟我们用Web版的Spring Initializr是一模一样的,跟之前在页面上一样填写即可。
第三步:继续点击Next,进入选择Spring Boot版本和依赖管理的窗口:
在这里值的我们关注的是,它不仅包含了Spring Boot Starter POMs中的各个依赖,还包含了Spring Cloud的各种依赖。
第四步:点击Next,进入最后关于工程物理存储的一些细节。最后,点击Finish就能完成工程的构建了。
Intellij中的Spring Initializr虽然还是基于官方Web实现,但是通过工具来进行调用并直接将结果构建到我们的本地文件系统中,让整个构建流程变得更加顺畅,还没有体验过此功能的Spring Boot/Cloud爱好者们不妨可以尝试一下这种不同的构建方式。
项目结构解析
通过上面步骤完成了基础项目的创建。如上图所示,Spring Boot的基础结构共三个文件(具体路径根据用户生成项目时填写的Group所有差异):
src/main/java下的程序入口:Chapter11Applicationsrc/main/resources下的配置文件:application.propertiessrc/test/下的测试入口:Chapter11ApplicationTests生成的Chapter11Application和Chapter11ApplicationTests类都可以直接运行来启动当前创建的项目,由于目前该项目未配合任何数据访问或Web模块,程序会在加载完Spring之后结束运行。
如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:787707172,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。
项目依赖解析
打开pom.xml,一起来看看Spring Boot项目的依赖:
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.3.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.didispace</groupId> <artifactId>chapter1-1</artifactId> <version>0.0.1-SNAPSHOT</version> <name>chapter1-1</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
如上所示,主要有四个部分:
项目元数据:创建时候输入的Project Metadata部分,也就是Maven项目的基本元素,包括:groupId、artifactId、version、name、description等parent:继承spring-boot-starter-parent的依赖管理,控制版本与打包等内容dependencies:项目具体依赖,这里包含了spring-boot-starter-web用于实现HTTP接口(该依赖中包含了Spring MVC);spring-boot-starter-test用于编写单元测试的依赖包。更多功能模块的使用我们将在后面的教程中逐步展开。build:构建配置部分。默认使用了spring-boot-maven-plugin,配合spring-boot-starter-parent就可以把Spring Boot应用打包成JAR来直接运行。编写一个HTTP接口
创建package命名为com.didispace.web(根据实际情况修改)创建HelloController类,内容如下:
@RestControllerpublic class HelloController { @RequestMapping("/hello") public String index() { return "Hello World"; }}
启动主程序,使用PostMan等工具发起请求:http://localhost:8080/hello,可以看到页面返回:Hello World编写单元测试用例
打开的src/test/下的测试入口Chapter11ApplicationTests类。下面编写一个简单的单元测试来模拟http请求,具体如下:
import static org.hamcrest.Matchers.equalTo;import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;@RunWith(SpringRunner.class)@SpringBootTestpublic class Chapter11ApplicationTests { private MockMvc mvc; @Before public void setUp() throws Exception { mvc = MockMvcBuilders.standaloneSetup(new HelloController()).build(); } @Test public void getHello() throws Exception { mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(content().string(equalTo("Hello World"))); }}
使用MockServletContext来构建一个空的WebApplicationContext,这样我们创建的HelloController就可以在@Before函数中创建并传递到MockMvcBuilders.standaloneSetup()函数中。
注意引入下面内容,让status、content、equalTo函数可用
import static org.hamcrest.Matchers.equalTo;import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
至此已完成目标,通过Maven构建了一个空白Spring Boot项目,再通过引入web模块实现了一个简单的请求处理。
欢迎工作一到八年的Java工程师朋友们加入Java高级交流:787707172
本群提供免费的学习指导 架构资料 以及免费的解答
不懂得问题都可以在本群提出来 之后还会有直播平台和讲师直接交流噢

发表评论