作为一个刚毕业的应届生,在杭州做过4个月左右的实习生,然后来到无锡发展,现在总结一些我面试的时候遇到的一些问题。
首先,自我介绍这是必须的,其次让介绍简历上写的项目或者就职业技能询问(看面试官的要求),然后就开始面试(一般是人事,然后是技术面试),最后一般会问你有什么想要了解的吗?(可以问工作地点、时间、内容、几个人开发、公司的项目情况,薪资待遇一般都是和人事谈的)。
1.mybatis中resultType和resultMap的区别
select有两个属性resulttype(适合使用返回值得数据类型是非自定义的,即jdk的提供的类型),SQL语句查询出的字段在相应的pojo(Java对象)中有相同字段对应,而resulttype的内容就是pojo在本项目中的位置,适合于单表查询;resultmap(适合使用返回值是自定义实体类),要在mapper.xml中定义resultmap进行pojo和相关字段的对应,一对一使用associate进行配置,一对多使用collection进行配置
2.hashTable和hashSet、hashMap的区别
hashTable:同步的,继承dictionary,实现map接口,初始容量为11,扩充*2+1
hashSet:不允许重复,存储对象,使用add添加,实现set接口
hashMap:不同步,允许一个空键,多个空值,继承abstractMap,不允许重复,使用put添加,实现map接口,比较快,初始容量为16,扩充*2
3.spring和spring boot配置事务
在spring配置文件中首先配置事务管理器,然后配置事务传播特性最后配置类中方法使用事务
spring boot 配置事务一:xml配置
使用@ImportResource("classpath:transaction.xml") 注解引入配置文件,编写transaction.xml配置文件,然后在启动类上添加@ImportResource
(
"classpath:transaction.xml"
)注解
spring boot 配置事务二:注解配置
在进行事物管理的方法上添加注解@Transactional
4.resource和autowired区别
resource和autowried都是做bean的注入时使用
共同点:两者都可以写在字段和setter方法上。如果写在字段上,就不需要再写setter方法。
不同点:@Autowired是Spring提供的注解,需要导入包org.springframework.beans.factory.annotation.Autowired;只按照类型byType注入,默认依赖对象必须存在;允许为空,设置required属性为false;若想要按照名称注入,与@Qualifier注解一起使用。@Resource默认按照ByName自动注入,需要导入包javax.annotation.Resource;使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。
5.mybatis批量添加
使用forearm循环插入,属性collection为列表
INSERT INTO lp_user_test_batch
(
id,
uid,
uname,
uage
)
VALUES
(
#{item.id,jdbcType=BIGINT},
#{item.uId,jdbcType=VARCHAR},
#{item.uName,jdbcType=VARCHAR},
#{item.uAge,jdbcType=INTEGER}
)
6.MySQL中concat函数和group_concat函数
一般输出连接字符串首先想到的是查询出两条记录然后使用string的方法拼接字符串,MySQL中有相应的函数处理连接字符串。
concat函数:连接字符串(有一个参数为null,返回值为null)
select concat('1','2','3')结果为“123” select concat('11','22',null)结果为null
group_concat函数:将group_by产生的同一分组中的值连接起来,返回一个字符串
语法:group_concat(要连接的字段,【排序字段】,【separator】分隔符默认为逗号)
基本查询
mysql> select * from a;
+------+------+
| id| name |
+------+------+
|1 | 10|
|1 | 20|
|1 | 20|
|2 | 20|
|3 | 200 |
|3 | 500 |
+------+------+
6 rows in set (0.00 sec)
以id分组,把name字段的值打印在一行,分号分隔
mysql> select id,group_concat(name separator ';') from a group by id;
+------+----------------------------------+
| id| group_concat(name separator ';') |
+------+----------------------------------+
|1 | 10;20;20 |
|2 | 20|
|3 | 200;500 |
+------+----------------------------------+
3 rows in set (0.00 sec)
以id分组,把去冗余的name字段的值打印在一行,逗号分隔,以name排倒序
mysql> select id,group_concat(distinct name order by name desc) from aa group by id;
+------+---------------------------------------+
| id| group_concat(name order by name desc) |
+------+---------------------------------------+
|1 | 20,10 |
|2 | 20|
|3 | 500,200|
+------+---------------------------------------+
3 rows in set (0.00 sec)