山东华软金科面试题整理

本文最后更新于:2 年前

普元数智

对象:山东华软金科公司(简称“普元数智”)

待遇:3k(实习生)/4k-6k(转正)

难度:0.5(满分1)

项目:银行IT系统,手机银行、信贷系统等

面试题

数据库

一个学生表,查询每个班级多少人,写出SQL语句

SQL语句:

1
SELECT COUNT(*) FROM table_name GROUP BY column_name

内链接和左连接的区别

  • 内连接(等值连接)获取两表中字段匹配关系的记录。
  • 左连接: 获取左表所有数据,即使右表无数据。

示例:

1
SELECT a.id, a.author, a.count FROM table_name a ,INNER JOIN table_name2 b ON a.author = b.author;

LEFT JOINRIGHT JOIN 用法相似。

框架

Mybatis中标记变量的符号,以及差别(SQL注入)

$和#

#可以防止SQL注入

SSM从controller开始,从上往下分那几层

数据库事务控制在那一层,事务控制有几种写法

Services层

什么是AOP,那些事物适合AOP实现

AOP为Aspect Oriented Programming的缩写。通过预编译方式运行期间动态代理==实现程序功能的统一维护==的一种技术。

应用:

​ 日志记录,性能统计,安全控制,事务处理,异常处理等等。

什么是事务,阐述事物的原子性(回滚)

事务是一种操作,用来==处理操作量大,复杂度高的数据== 。

特点:

  1. MySQL只有InnoDB支持事务
  2. 保证事物的完整性
  3. 管理INSERT、UPDATAE、DELETE语句

什么是声明式事务

声明式事务:该事务是建立在AOP之上的,其本质是对方法前后进行拦截,然后在目标方法开始之前创建或加入一个事务,在执行完目标方法之后根据执行情况提交或回滚事务。

前端

前端页面数据的提交方式

  1. 通过网络连接提交——GET URL
  2. 通过表单提交——POST multipart/form-data
  3. 通过AJAX(Asynchronous JavaScript and XML)提交——POST application/json
  4. 文件上传——POST application/x-www-form-urlencode

一个GET三个POST

GET和POST的区别

  1. POST相对安全。GET提交的数据放在URL中,POST则不会(POST也不安全,因为HTTP是明文传输抓包就能获取数据内容,要想安全还得加密)。
  2. GET回退浏览器无害,POST会再次提交请求(GET方法回退后浏览器再缓存中拿结果,POST每次都会创建新资源)。
  3. GET提交的数据大小有限制(是因为==浏览器==对URL的长度有限制,GET本身没有限制),POST没有。
  4. GET可以被保存为书签和浏览器历史记录中,POST不可以。
  5. GET能被缓存,POST不能。
  6. GET只允许ASCII字符,POST没有限制。

表单数据的提交方法

  1. json格式提交

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    $(document).ready(function(){
    $("#button_submit").click(function(){
    var name = $("#userName").val();
    var pass = $("#password").val();

    var user = {userName:name,password:pass};//拼装成json格式

    $.ajax({
    type:"POST",
    url:"${pageContext.request.contextPath}/user/addUser4",
    data:user,
    success:function(data){
    alert("成功");
    },
    error:function(e) {
    alert("出错:"+e);
    }
    });
    });
    });
  2. 序列化表单提交

    如果表单元素很多,手工拼装成json数据非常麻烦,可以使用jQuery提供的serializeArray()方法序列化表单元素,返回json数据结构数据。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    $(document).ready(function(){
    $("#button_submit").click(function(){

    //序列化表单元素,返回json数据
    var params = $("#userForm").serializeArray();

    //也可以把表单之外的元素按照name value的格式存进来
    //params.push({name:"hello",value:"man"});

    $.ajax({
    type:"POST",
    url:"${pageContext.request.contextPath}/user/addUser5",
    data:params,
    success:function(data){
    alert("成功");
    },
    error:function(e) {
    alert("出错:"+e);
    }
    });
    });
    });

Maven

项目依赖jar包的配置文件,依赖jar包的存放位置

配置文件: pom.xml

存放位置: 本地maven仓库,在setting.xml 中可以更改。

版本管理工具

有哪些

  • Git
  • SVN
  • HG
  • CVS

总结

面试后端和数据库的内容回答的不错,但是MyBatis回答的一般,事务操作和前端知识回答的一塌糊度。询问问题时可能会有面临全干工程师的危险。。。。。。。

面试官态度很友善,主动帮助捋顺思路。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!