1. 面试的问题:
(1) mybatis的select语句怎么写?#{ } 和¥{ }的区别?返回json字符串加什么注解?
- 接口CustomerMapper.java中定义了一个方法名
配置文件CustomerMapper.xml中的查询语句为
- #{ } 使用?作为占位符,可以防止sql注入;${ }表示字符串拼接,不能解决sql注入的问题
对于查询语句 select * from user where id = 1; select * from user where id = 2;
#{ } 只会有一个查询语句, 而${ }会有两个查询语句
- controller中的方法返回字符串只需要加上注解@ResponseBody
(2) springMVC的controller的作用?
接收前端页面来的请求,从数据库中存取数据,然后跳转页面。
(3) mysql的优化,组合索引,最左匹配原则,索引失效的情况?
- 给一张表的多个字段建立索引叫做组合索引,只有当sql语句用到了组合索引的第一个字段,索引才会生效,可以使用explain语句来查看
- 索引列上使用表达式或函数,索引会失效,比如
select * from user where date.format(date) < 2007; 但是函数加载不等式右边,索引不会失效
(4) Dubbo和ZooKeeper的工作方式?
(5) http协议请求报文和响应报文的格式?常用状态码?
- 请求报文和响应报文
- 1**:信息提示,2**:成功,3**:重定向,4**:客户端出错,5**:服务器错误
200 Ok:客户端请求成功
301 Moved Permanently(永久移除):永久重定向
302 Found(已找到):暂时重定向
304 Not Modified(未修改):,客户端的缓存时最新的,要客户端使用缓存
400 Bad Request(坏请求):告诉客户端,它发送的请求有语法错误
401 Unauthorized(未授权):需要客户端对自己认证
403 Forbidden(禁止):请求被服务器拒绝
404 Not Found(未找到):未找到资源
500 Internal Server Error(内部服务器错误):服务器发生错误,无法为请求提供服务
503 Service Unavailable(未提供此服务):服务器目前无法为请求提供服务,但过一段时间就可以恢复服务
(6) json文件的格式?
1 { 2 "feeds": [ 3 { 4 "id": 299080, 5 "oid": 288342, 6 "category": "article", 7 "data": { 8 "subject": "视频直播:会面", 9 "summary": "在新加坡会面", 10 "cover": "/Attachs/Article/288342/56a263bcab4a4c55b0bef0528ce880b6_padmini.JPG", 11 "pic": "", 12 "format": "video", 13 "changed": "2015-11-07 14:35:22" 14 } 15 }, 16 { 17 "id": 299076, 18 "oid": 288340, 19 "category": "article", 20 "data": { 21 "subject": "荔枝新闻3.0:不止是阅读", 22 "summary": "江苏广电旗下资讯类手机应用“荔枝新闻”于近期推出全新升级换代的3.0版。", 23 "cover": "/Attachs/Article/288340/3e8e2c397c70469f8845fad73aa38165_padmini.JPG", 24 "pic": "", 25 "format": "txt", 26 "changed": "2015-09-22 16:01:41" 27 } 28 } 29 ], 30 "PageIndex": 1, 31 "PageSize": 20, 32 "TotalCount": 53521, 33 "TotalPage": 2677 34 }
其实JSON数据就是一段字符串而已,只不过有不同意义的分隔符将其分割开来而已,我们看上面的符号,里面有[ ] ,{ }等符号,其中
-
- [ ]中括号代表的是一个数组
- { }大括号代表的是一个对象
- 双引号“”表示的是属性值
- 冒号:代表的是前后之间的关系,冒号前面是属性的名称,后面是属性的值,这个值可以是基本数据类型,也可以是引用数据类型。
(7) 自己写一个json文件的解析器?
简单来说,就是根据json数据解析返回一个List<HashMap<String, Object>>集合
可以参考https://blog.csdn.net/oman001/article/details/79063278
2. 需要延伸学习的方面:
(1) springmvc+spring+mybatis的细节问题
(2) mysql索引
(3) 剑指offer