2017-07-12
一、数据库
1. sql语句中的中括号的使用
SQL中语句中加中括号是为了防止某些关键字在应用中引起歧义。如果加上中括号,则代表这不是关键字。例如:select select from 表名;
VS select [select] from 表名;
前者报错。
2. case when
的用法。
- 基本语法:
CASE [(<属性>)]
WHEN <条件> THEN <结果>
WHEN <条件> THEN <结果>
...
[ELSE <结果>]
END
- 举例:
--简单case函数
case sex
when '1' then '男'
when '2' then '女’
else '其他'
end
--case搜索函数
case when sex = '1' then '男'
when sex = '2' then '女'
else '其他'
end
3. select 1 from table;
的用法。参考原文
select 1 from table;
select xxx(表集合中的任意一行) from table;
select * from table
- 上面三条语句从作用上来说是没有差别的,都是查看是否有记录,一般是作条件查询用的。
select 1 from
中的1是一常量(可以为任意数值),查到的所有行的值都是它,但从效率上来说,1>xxx>*,因为不用查字典表。。select 1 from table
增加临时列,每行的列值是写在select后的数,这条sql语句中是1。select count(1) from table
不管count(a)的a值如何变化,得出的值总是table表的行数。select sum(1) from table
计算临时列的和,也就是说如果1换成2,则结果是2*行数。- 常用例子之一:用来当做判断子查询是否成功(即是否有满足条件的时候使用),比如:
select * from ta where exists (select 1 from ta.id = tb.id)
二、postman的使用
- 官网,有软件,也有Chrome插件(需墙),用于测试网页接口。下面以MVC为例(今天的工作)简单说说如何使用。
- 生成解决方案并跑起来,网页显示是否正常(404)没关系(毕竟如果只有接口项目的话是没网页的)
- 在postman里输入url,具体到要测试的接口(要绝对地址,不能使相对地址)。例如MVC下,就具体到对应Controller类下的方法。
- 选择方法,主要是post和get方法。这个和接口定义的方法也有关,所以要留意,一般接口都规定了何种方法访问才会响应。关于post和get方法的区别这里不细讲。
- get方法没啥好说的,说说post方法吧。如果是post方法,那么在body里选择要提交的数据格式。我所在工作项目主要是json,那么就输入json数据就好了,要注意格式。
- 然后点击send即可等待服务器相应处理并返回结果。
- 界面不错,post一张图吧~
三、再次理解MVC
- 控制器的作用,算是对数据的处理吧。这种处理更多的是把原始数据拿过来,然后分装好后,送到该到的地方。
- 模型,数据实体,有什么数据,数据的组织结构如何?这些都是模型下的概念。当然往往会和后台数据库有关联,也往往为控制器所用。算是控制器和后台数据的接口?
- 至于视图,其实这个没啥好说的,简单理解就是展现出来的东西。当然它有对数据的引用,毕竟很多东西是动态的,少不了变量。准确来说是因为有交互。可不可以说是一种人机接口呢?
- 按照我所工作的的文档规范,写一个接口的顺序最好是(仅仅是对今天的翻盘而已,了解文档啊,需求啊什么的就不说了):根据返回值写实体类(可能会有嵌套,多数以列表的形式嵌套,例如A类会是B类下的一个List数据类型)这个就是存放在Moduls下的-->对应需要数据库取出的数据也封装成一个实体,作为数据库查询结果的返回对象传递给Controller-->Controller就是对这个实体数据进行处理加工封装成需要返回的实体(这个实体也在Moduls下,其实也应该在最前写的,根据文档写就好)。
- 难倒不难,关键是要对数据库中的表熟悉,不然你都不知道需要连接那些表。还有就是各种封装好了的函数,例如sql语句的执行等,有时候一个数据类型多次跳转就蒙了,或者说看的时候知道,看了函数名字会知道作用,然而如果自己写的话,写的时候你也许就不知道会有这么一个函数写好了可以直接用。
2017.07.12 Wednesday