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元,马云并不知道钱是我借的,只知道是老王借的,最后有老王把钱转交给我,老王就充当一个代理角色。