面试4:总结MyBatis和Nginx

1.聊一下MyBatis:

     MyBatis是一个基于java的持久层框架,它对JDBC几乎所有的数据库操作进行封装,使开发只关注SQL本身,不需要花费精力去处理驱动、创建连接、创建Statement等繁杂的过程。MyBatis比较灵活,SQL语句是写在xml文件中,便于统一管理和优化,MyBatis解除SQL与程序代码的解耦合,通过提供Dao层,将业务逻辑和数据访问,逻辑分离,使系统的设计更清晰,更易维护。

   (1)与JDBC相比,减少了50%以上的代码量;消除了JDBC大量的冗余的代码,不需要手动的开关连接。

   (2)MyBatis可以很好的与各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库MyBatis都支持)

    (3)能够Spring很好的集成

2.MyBatis解决JDBC存在的问题:

   <1> 获取连接,得到Statement,处理ResultSet,关闭资源非常繁琐,现在,可以使用sqlSession搞定一切

   <2> 将sql语句写死到java代码中,如果修改sql语句,必须要修改java代码,然后重新编译,程序可维护行不高,现在,MyBatis可以将sql语句配置在Mapper.xml文件中与java代码分离。

   <3> 向PreparedStatement 对占位符的位置设置参数时,非常繁琐。现在。MyBatis自动将java对象映射至SQL语句,通过Statrement中的paramterType定义输入参数的类型

   <4> 解析结果集时,需要把字段的值设置到相应的实体类属性名中。现在,MyBatis可以自动将SQL执行的结果映射到java对象,通过Statement中的resultType定义输出结果的类型

2.使用MyBatis批量插入数据?

    接口传入集合,在MyBatis里面实现批量插入

3.Nginx的负载均衡:

    Nginx是一个高性能的Web服务器和反向代理。Nginx的特点是:占有内存少,并发处理能力强,Nginx的官方测试并发量有5万并发量。

     说一下反向代理:代理服务器接受到Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器得到的结果,返回给internet上请求的客户端。

    反向代理隐藏了真正的服务端,比如:我们每天使用百度的时候,只知道敲www.baidow.com就可以打开百度搜索页面,但实际上背后有成千上万百度服务器具体哪一台为我们服务,我们并不知道,我们只知道这个代理服务器,它会把我们的请求转发到真实为我们服务器那里去。

    正向代理类似于一个跳板,比如:我现在很缺钱,想找马云爸爸借钱,但是人家不认识我,自然不会借钱给我。不过,我认识隔壁的老王,而老王认识马云同志,而且关系好,这时,我托老王去找马云借钱,当事成之后,我从马云那里借了500元,马云并不知道钱是我借的,只知道是老王借的,最后有老王把钱转交给我,老王就充当一个代理角色。

发布了9 篇原创文章 · 获赞 0 · 访问量 3676

猜你喜欢

转载自blog.csdn.net/yibuyiyao113/article/details/102750956