写在最后
为了这次面试,也收集了很多的面试题!
以下是部分面试题截图
import lombok.NoArgsConstructor;
/**
-
@author : cunyu
-
@version : 1.0
-
@className : Book
-
@date : 2020/7/23 15:53
-
@description : Book 实体类
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Book {
private int bookId;
private String name;
private int number;
}
2.2 Appointment.java
package com.cunyu.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
-
@author : cunyu
-
@version : 1.0
-
@className : Appointment
-
@date : 2020/7/23 15:57
-
@description : Appointment 实体类
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Appointment {
private int bookId;
private int studentId;
private Date appointTime;
private Book book;
}
3.1 BookDao.java
package com.cunyu.dao;
import com.cunyu.pojo.Book;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
-
@InterfaceName : BookDao
-
@Author : cunyu
-
@Date : 2020/7/23 16:02
-
@Version : 1.0
-
@Description : Book 接口
**/
public interface BookDao {
/**
-
@param bookId 图书 id
-
@return 对应 id 的图书
-
@description 根据图书 id 查找对应图书
-
@date 2020/7/23 16:04
-
@author cunyu1943
-
@version 1.0
*/
Book queryById(@Param(“bookId”) int bookId);
/**
-
@param offset 查询起始位置
-
@param limit 查询条数
-
@return 查询出的所有图书列表
-
@description 查询所有图书
-
@date 2020/7/23 16:08
-
@author cunyu1943
-
@version 1.0
*/
List queryAll(@Param(“offset”) int offset, @Param(“limit”) int limit);
/**
-
@param bookId 图书 id
-
@return 更新的记录行数
-
@description 借阅后更新馆藏
-
@date 2020/7/23 16:09
-
@author cunyu1943
-
@version 1.0
*/
int reduceNumber(@Param(“bookId”) int bookId);
}
3.2 AppointmentDao.java
package com.cunyu.dao;
import com.cunyu.pojo.Appointment;
import org.apache.ibatis.annotations.Param;
/**
-
@InterfaceName : AppointmentDao
-
@Author : cunyu
-
@Date : 2020/7/23 16:03
-
@Version : 1.0
-
@Description : Appointment 接口
**/
public interface AppointmentDao {
/**
-
@param bookId 图书 id
-
@param studentId 学生 id
-
@return 插入的行数
-
@description 插入预约图书记录
-
@date 2020/7/23 16:13
-
@author cunyu1943
-
@version 1.0
*/
int insertAppointment(@Param(“bookId”) int bookId, @Param(“studentId”) int studentId);
/**
-
@param bookId 图书 id
-
@param studentId 学生 id
-
@return
-
@description 通过主键查询预约图书记录,并且携带图书实体
-
@date 2020/7/23 16:16
-
@author cunyu1943
-
@version 1.0
*/
Appointment queryByKeyWithBook(@Param(“bookId”) int bookId, @Param(“studentId”) int studentId);
}
3.3 mapper 编写
编写好 dao
接口之后,并不需要我们自己去实现,MyBatis 会给我们动态实现,但是需要我们配置相应的 mapper
。在 src/main/resources/mapper
下新建 BookDao.xml
和 AppointmentDao.xml
,用于对应上面的 dao
接口;
3.3.1 BookDao.xml
<?xml version="1.0" encoding="UTF-8" ?>SELECT book_id, name, number
FROM book
WHERE book_id = #{bookId}
SELECT *
FROM book
ORDER BY book_id
LIMIT #{offset},#{limit}
UPDATE book
SET number = number - 1
WHERE book_id = #{bookId}
AND number > 0
3.3.2 AppointmentDao.xml
<?xml version="1.0" encoding="UTF-8" ?>INSERT ignore INTO appointment (book_id, student_id) VALUES (#{bookId}, #{studentId})
SELECT
appointment.book_id,
appointment.student_id,
appointment.appoint_time,
book.book_id “book.book_id”,
book.name
“book.name”,
book.number “book.number”
FROM
appointment
INNER JOIN book ON appointment.book_id = book.book_id
WHERE
appointment.book_id = #{bookId}
AND appointment.student_id = #{studentId}
经过 准备数据库 -> 实体类编写 -> 接口类编写 -> mapper 配置 这一套流程之后,我们就可以进行模块化测试了,看看我们的接口是否成功实现。
4.1 BookDaoTest.java
package com.cunyu.dao;
import com.cunyu.pojo.Book;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.List;
/**
- @author : cunyu
结尾
这不止是一份面试清单,更是一种”被期望的责任“,因为有无数个待面试者,希望从这篇文章中,找出通往期望公司的”钥匙“,所以上面每道选题都是结合我自身的经验于千万个面试题中经过艰辛的两周,一个题一个题筛选出来再次对好答案和格式做出来的,面试的答案也是再三斟酌,深怕误人子弟是小,影响他人仕途才是大过,也希望您能把这篇文章分享给更多的朋友,让他帮助更多的人,帮助他人,快乐自己,最后,感谢您的阅读。
由于细节内容实在太多啦,在这里我花了两周的时间把这些答案整理成一份文档了,在这里只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
87597)]
这不止是一份面试清单,更是一种”被期望的责任“,因为有无数个待面试者,希望从这篇文章中,找出通往期望公司的”钥匙“,所以上面每道选题都是结合我自身的经验于千万个面试题中经过艰辛的两周,一个题一个题筛选出来再次对好答案和格式做出来的,面试的答案也是再三斟酌,深怕误人子弟是小,影响他人仕途才是大过,也希望您能把这篇文章分享给更多的朋友,让他帮助更多的人,帮助他人,快乐自己,最后,感谢您的阅读。
由于细节内容实在太多啦,在这里我花了两周的时间把这些答案整理成一份文档了,在这里只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!