欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

利剑无意之JAVA面试题(一)

发布时间:2024/2/28 编程问答 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 利剑无意之JAVA面试题(一) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
  • mybatis中ResultMap和ResultType的差别?
     

两者都是表示查询结果集与java对象之间的一种关系,处理查询结果集映射到java对象。

resultMap:表示将查询结果集中的列一一映射到bean对象的各个属性。

ResultType:表示的是bean中的对象类,此时可以省略掉resultMap标签的映射,但是必须保证查询结果集中的属性 和 bean对象类中的属性是一一对应的,此时大小写不敏感,但是有限制。

  • mybatis中的#和$的区别?
     

#{}:占位符号,好处防止sql注入

${}:sql拼接符号

#方式能够很大程度防止sql注入,$方式无法防止sql注入。

 

$方式一般用于传入数据库对象,例如传入表名

 

一般能用#的就别用$

  • JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的?
     

1.数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。

解决:在SqlMapConfig.xml中配置数据链接池,使用连接池管理数据库链接。

2.Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。

解决:将Sql语句配置在XXXXmapper.xml文件中与java代码分离。

3.向sql语句传参数麻烦,因为sql语句的where条件不一定,可能多也可能少,占位符需要和参数一一对应。

解决:Mybatis自动将java对象映射至sql语句。

4.对结果集解析麻烦,sql变化导致解析代码变化,且解析前需要遍历,如果能将数据库记录封装成pojo对象解析比较方便。

解决:Mybatis自动将sql执行结果映射至java对象。

  • 常用的动态sq|语句标签有哪些?
     

if、choose、when、otherwise、where、trim、set、foreach

  • 分页插件pagehelper如何使用?
     

1.导入pagehelper依赖

2.在mybatis的配置文件中配置plugin插件

3.在代码中通过PageHelper.startPage(int num,int size)设置查询页码和每页记录数

4.把查询结果封装到PageInfo工具类中,获得相关分页信息

 

  • 当实体类的属性名和表种字段名不一致怎么办?有几种解决办法?
     

1.在sql语句中给字段添加别名,使用别名与属性名相同

2.通过resultMap实现字段与属性的映射

  • 什么是maven本地仓库? Maven到底有哪些仓库?它们什么关系?
     

本地仓库路径配置

所以本地仓库就是相当于加了一层jar包缓存,先到这里来查。如果这里查不到,那么就去私服上找,如果私服也找不到,那么去中央仓库去找,找到jar后,会把jar的信息同步到私服和本地仓库中。

私服,就是公司内部局域网的一台服务器而已。

中央仓库:该仓库存储了互联网上的jar,由Maven团队来维护.

  • Maven的生命周期命令有哪些?
     

clean、compile、test、package、install、deploy

  • maven项目中servlet和jsp的依赖范围是哪个?它有什么作用?

provided:编译期有效,运行期不需要提供,不会打入包中。

  • Maven坐标是那三个要素?
     

groupID,artifactId,version

超强干货来袭 云风专访:近40年码龄,通宵达旦的技术人生

总结

以上是生活随笔为你收集整理的利剑无意之JAVA面试题(一)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。