发表于: 2017-11-22 22:31:47
1 674
任务小结
1. 数据表增删改查的sql语句:
增:insert into 表名(col1,col2,...) values(value1,value2,...);
删:delete from 表名 where 条件;
改:update 表名 set col1=value1,col2=value2,... where 条件
查:select 查询的字段 from 表名 where 条件;
2. 关于索引:
索引相当于一种结构,它可以把该字段的数据单独存放在索引中。由于索引中的数据少,在进行查询时,先通过索引查到符合条件的数据所在的位置,然后再通过数据表查询需要得到的数据。当数据表的结构很大时,如果直接进行查询,由于数据较多,查询速度就会变慢。索引的创建主要是为了提高数据的查询速度。
当对数据表进行增删改的时候,带有索引的数据表每次更新之后索引中的数据也需要同步更新,而无索引的数据表不存在对索引的更新,所以无索引的数据表在进行增删改时的效率比带索引的要高。
在进行索引的创建时,在需要经常搜索的列上创建索引,在经常使用where子句的列上创建索引。
3. JDK,Maven在正常安装后需要将安装后的bin目录配置在系统的环境变量PATH下。
Eclipse中安装外部Maven,window->preference->maven->installations,选择add然后选择外部maven,添加即可。
本地仓库的配置:user settings的local repository中配置,maven从网上下载的jar包都会下载到配置中的这个目录。
使用Maven管理项目时需要先在pom.xml文件中导入开发所需要的jar包,maven会自动将这些jar包构建到开发环境中。
熟悉Maven中compile,clean,install,package,test等命令的含义以及使用。
4. mybatis使用mapper动态代理,可以隐藏dao的实现
(1)在mapper.xml映射文件中,namespace属性的值应该配置为需要映射的dao的全限定名称
(2)sql语句的id属性需要和dao接口中抽象方法的名称一致
(3)将mapper.xml映射文件注册到主配置文件,此外,还需要在主配置文件中注册jdbc连接,别名等等。
5. 使用JdbcTemplate完成对数据库的增删改查
(1)JdbcTemplate是基于SpringJdbc开发的,所以需要导入spring相关jar包,还有mysql驱动的jar包。
(2)dao的实现类需要继承JdbcDaoSupport,在做查询的时候需要一个RowMapper的实现类,来封装bean对象的属性和数据表之间的对应关系。
(3)dataSource,spring中使用DriverManagerDataSource类实现,也可以使用第三方,如c3p0,dbcp等连接池完成。
6. 在eclipse中使用mvn test跑单元测试时,需要加入下列标签,否则无法test成功。
7. 在程序中,层与层之间通过接口来连接,针对不同的业务实现,可以制定不同的实现类。
8.Log4j的配置,以及常用的级别:INFO,DEBUG
Rest是一种设计风格,而不是标准
REST全称Resource REpresentational State Transfer,资源在网络中以某种表现形式进行状态转移。
Resource:资源,即数据。Representational:某种表现形式,比如用JSON、XML、JEPG等。State Transfer:状态变化,通过HTTP动词实现。
REST就是选择通过使用http协议和uri,利用client/server model对资源进行CRUD增删改查操作。
RESTful风格的限制及其好处;
1.客户-服务器(Client-Server)
客户端服务器分离
优点:提高用户界面的便携性(操作简单)
通过简化服务器提高可伸缩性(高性能,低成本)
允许组件分别优化(可以让服务端和客户端分别进行改进和优化)
2.无状态(Ststeless)
从客户端的每个请求要包含服务器所需要的所有信息
优点:提高可见性(可以单独考虑每个请求)
提高了可靠性(更容易从局部故障中修复)
提高可扩展性(降低了服务器资源使用)
3.缓存(Cachable)
服务器返回信息必须被标记是否可以缓存,如果缓存,客户端可能会重用之前的信息发送请求。
优点:减少交互次数
减少交互的平均延迟
4.分层系统(Layered System)
系统组件不需要知道与他交流组件之外的事情。封装服务,引入中间层。
优点:限制了系统的复杂性
提高可扩展性
5.统一接口(Uniform Interface)
优点:提高交互的可见性
鼓励单独改善组件
6.支持按需代码(Code-On-Demand 可选)
优点:提高可扩展性
https://www.zhihu.com/question/28557115,知乎上关于REST解释的还是蛮详细的。
HTTP Status Code:
https://baike.baidu.com/item/HTTP%E7%8A%B6%E6%80%81%E7%A0%81/5053660?fr=aladdin&fromid=11296236&fromtitle=HTTP+Status+Code
SpringMVC执行流程示意图
1. 浏览器提交请求到中央调度器
2. 中央调度器直接将请求转给处理器映射器
3. 处理器映射器会根据请求,找到处理该请求的处理器,并将其封装为处理器执行链后返回给中央调度器
4. 中央调取器根据处理器执行链中的处理器,找到能够执行该处理器的处理器适配器
5. 处理器适配器调用执行处理器
6. 处理器将处理结果及要跳转的视图封装在一个对象ModelAndView中,并将其返回给处理器适配器
7. 处理器适配器直接将结果返回给中央调度器
8. 中央调度器调用视图解析器,将ModelAndView中的视图名称封装为视图对象
9. 视图解析器将封装了的视图对象返回给中央调度器
10. 中央调度器调用视图对象,让其自己进行渲染,即进行数据填充,形成响应对象
11. 中央调取器响应浏览器
明天计划:学习一下SpringMVC的配置,试着使用SpringMVC完成REST接口
评论