bookmanager图书信息管理
Q7nl1s admin

图书信息管理

查询所有图书信息

web层

1
2
3
4
5
// 查询所有图书信息
@GetMapping(value = "/queryBookInfos")
public List<BookInfo> queryBookInfos(){
return bookInfoService.queryBookInfos();
}

service层

1
2
3
4
@Override
public List<BookInfo> queryBookInfos() {
return bookInfoMapper.selectAll();
}

mapper层

1
List<BookInfo> selectAll();
1
2
3
4
5
<select id="selectAll" resultMap="BaseResultMap">
select bookId, bookName, bookAuthor,bookPrice, bookTypeId, bookDesc,isBorrowed, bookImg,
(select bookTypeName from book_type where book_type.bookTypeId = book_info.bookTypeId) as bookTypeName
from book_info
</select>

本例包含了一个字查询语句:用于检索 book_info 表中 bookTypeId 对应的 book_type 表中的 bookTypeName。

分页搜索查询图书信息

web层

1
params: {page, limit, bookname, bookauthor, booktypeid}

通过 GET 请求接受一个参数的 map,其中包括页面号码、限制数量(每页结果数)、书名、书籍作者和书籍类型 ID。

1
2
3
4
5
6
7
@GetMapping(value = "/queryBookInfosByPage")
public Map<String, Object> queryBookInfosByPage(@RequestParam Map<String, Object> params){
MyUtils.parsePageParams(params);
int count = bookInfoService.getSearchCount(params); // 获得总数
List<BookInfo> bookInfos = bookInfoService.searchBookInfosByPage(params); // 分页查询
return MyResult.getListResultMap(0, "success", count, bookInfos);
}

根据 MyUtils 类可以知道 parsePageParams 解析页面参数并将其解析后增加 begin 和 size 两个参数。

1
2
3
4
5
6
7
8
9
public class MyUtils {
// 给map加上begin和size,方便处理分页
public static void parsePageParams(Map<String, Object> params) {
int page = Integer.parseInt((String) params.get("page"));
int size = Integer.parseInt((String) params.get("limit"));
params.put("begin", (page - 1) * size);
params.put("size", size);
}
}

service层

获取查询到的全部记录

1
2
3
4
@Override
public Integer getSearchCount(Map<String, Object> params) {
return bookInfoMapper.selectCountBySearch(params);
}

分页查询

1
2
3
4
@Override
public List<BookInfo> searchBookInfosByPage(Map<String, Object> params) {
return bookInfoMapper.selectBySearch(params);
}

mapper层

1
int selectCountBySearch(Map<String, Object> searchParam);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<select id="selectCountBySearch" resultType="int">
select count(*) from book_info
<where>
<if test="bookname != null and bookname != '' ">
and bookName like concat('%',#{bookname},'%')
</if>
<if test="bookauthor != null and bookauthor != '' ">
and bookAuthor like concat('%',#{bookauthor},'%')
</if>
<if test="booktypeid != null and booktypeid != '' ">
and bookTypeId = #{booktypeid}
</if>
</where>
</select>

1
List<BookInfo> selectBySearch(Map<String, Object> searchParam);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<select id="selectBySearch" resultMap="BaseResultMap">
select bookId, bookName, bookAuthor,bookPrice, bookTypeId, bookDesc,isBorrowed, bookImg,
(select bookTypeName from book_type where book_type.bookTypeId = book_info.bookTypeId) as bookTypeName
from book_info
<where>
<if test="bookname != null and bookname != '' ">
and bookName like concat('%',#{bookname},'%')
</if>
<if test="bookauthor != null and bookauthor != '' ">
and bookAuthor like concat('%',#{bookauthor},'%')
</if>
<if test="booktypeid != null and booktypeid != '' ">
and bookTypeId = #{booktypeid}
</if>
</where>
limit #{begin}, #{size}
</select>

limit #{begin}, #{size}规定了记录开始数和总查询条数

添加图书信息

web层

1
2
3
4
5
// 添加图书信息
@PostMapping(value = "/addBookInfo")
public Integer addBookInfo(@RequestBody BookInfo bookInfo){
return bookInfoService.addBookInfo(bookInfo);
}

service层

1
2
3
4
@Override
public Integer addBookInfo(BookInfo bookInfo) {
return bookInfoMapper.insertSelective(bookInfo);
}

mapper层

1
int insertSelective(BookInfo record);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<insert id="insertSelective" parameterType="com.wangpeng.bms.model.BookInfo">
insert into book_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="bookid != null">
bookId,
</if>
<if test="bookname != null">
bookName,
</if>
<if test="bookauthor != null">
bookAuthor,
</if>
<if test="bookprice != null">
bookPrice,
</if>
<if test="booktypeid != null">
bookTypeId,
</if>
<if test="bookdesc != null">
bookDesc,
</if>
<if test="isborrowed != null">
isBorrowed,
</if>
<if test="bookimg != null">
bookImg,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="bookid != null">
#{bookid,jdbcType=INTEGER},
</if>
<if test="bookname != null">
#{bookname,jdbcType=VARCHAR},
</if>
<if test="bookauthor != null">
#{bookauthor,jdbcType=VARCHAR},
</if>
<if test="bookprice != null">
#{bookprice,jdbcType=DECIMAL},
</if>
<if test="booktypeid != null">
#{booktypeid,jdbcType=INTEGER},
</if>
<if test="bookdesc != null">
#{bookdesc,jdbcType=VARCHAR},
</if>
<if test="isborrowed != null">
#{isborrowed,jdbcType=TINYINT},
</if>
<if test="bookimg != null">
#{bookimg,jdbcType=TINYINT},
</if>
</trim>
</insert>

其它趋同,不再赘述。

 Comments
Comment plugin failed to load
Loading comment plugin
Powered by Hexo & Theme Keep
Unique Visitor Page View