Maven、Mybatis 理论题练习

提示:会敲很重要,理解一些理论也很重要

Maven、Mybatis 理论题练习


一、Maven

  • maven是什么?有哪些功能?
Maven是专门用于管理和构建Java项目的工具
提供了一套标准化的项目结构
提供了一套标准化的构建流程(编译,测试,打包,发布……)
提供了一套依赖管理机制
  • maven仓库分为哪几类?
本地仓库
中央仓库
远程仓库(私服)
  • maven常用命令有哪些?分别作用是什么?
	complie 编译    编译java文件,下载jar包,在该目录下生成target包
	clean 清理target包
	test 运行单元测试的java代码
	package 打包   生成jar
	install 安装    把jar包放入本地仓库

二、Mybatis

  • 如何理解mybatis?mybatis解决了哪些原生JDBC代码的问题?
MyBatis 是一款持久层框架,用于简化 JDBC 开发
	硬编码可以配置到配置文件
	操作繁琐的地方mybatis都自动完成
  • 使用Mybatis代理方式需要满足哪些要求?
定义与SQL映射文件同名的Mapper接口,并且将Mapper接口和SQL映射文件放置在同一目录下
	设置SQL映射文件的namespace属性为Mapper接口全限定名
	在 Mapper 接口中定义方法,方法名就是SQL映射文件中sql语句的id,并保持参数类型和返回值类型一致
  • 在项目的 pom.xml 文件中出现如下图所示问题原因是什么?如何解决?
    在这里插入图片描述
	jar包下载错误导致的
	重新去中央仓库中找下载失败的jar包下载
  • 对查询结果封装映射配置文件中什么时候使用 resultType 属性?什么时候使用resultMap属性?
如果sql语句查询到字段名和实体类中的属性名相同就使用 resultType 属性指定封装类型
如果sql语句查询到的字段名和实体类中的属性名不相同就需要 resultMap 来定义字段名和实体类属性名的映射关系
  • #{} 和 ${} 占位符的区别是什么?
#{} 底层使用的是PreparedStatement,不会出现sql注入问题;并且可以设置预编译,提高sql执行效率
${} 底层使用的是Statement,可能出现sql注入问题
  • 说出mapper接口方法上什么时候加@Param注解,什么时候不需要加@Param注解?
如果mapper接口方法上只有一个普通类型的参数,不需要加@Param注解,映射配置文件中#{}中可以任意写名称,建议做到见名知意
如果mapper接口方法上是实体类类型的参数,不需要加@Param注解,映射配置文件中#{}中和实体类中的属性名保持一致
如果mapper接口方法上是多个参数,需要加@Param注解给每个参数起名字,映射配置文件中#{}中书写的是@Param注解中写的名称
如果mapper接口方法是单个单列集合类型或者数组类型,需要加@Param注解给参数期名称
如果mapper接口方法是单个map集合类型,不需要加@Param注解,映射配置文件中#{}中名称需要和map集合的键名保持一致
  • 如果需要在添加数据成功后获取数据库中自增长生成的主键值,需要如何配置?
在insert标签上使用如下两个属性
	* useGeneratedKeys : 配置是否使用数据库自增长生成的主键值,true表示是,false表示否
	* keyProperty : 配置需要将获取到的自增长生成的主键值封装到实体类的哪个属性中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值