SSM框架应用实例《图书管理系统》

针对上一篇文章详细介绍了SSM框架的搭建,这篇文章使用SSM给大家举一个栗子;希望对大家有所帮助。

一开始想就这样结束教程,但是发现其实很多人都还不会把这个SSM框架用起来,特别是mybatis部分。那我现在就以最常见的“图书管理系统”中【查询图书】和【预约图书】业务来做一个demo吧!

首先新建数据库名为ssm,再创建两张表:图书表book和预约图书表appointment,并且为book表初始化一些数据,sql如下。

schema.sql

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<code class = "language-sql hljs " >-- 创建图书表
CREATE TABLE `book` (
   `book_id` bigint( 20 ) NOT NULL AUTO_INCREMENT COMMENT '图书ID' ,
   `name` varchar( 100 ) NOT NULL COMMENT '图书名称' ,
   `number` int ( 11 ) NOT NULL COMMENT '馆藏数量' ,
   PRIMARY KEY (`book_id`)
) ENGINE=InnoDB AUTO_INCREMENT= 1000 DEFAULT CHARSET=utf8 COMMENT= '图书表'
 
-- 初始化图书数据
INSERT INTO `book` (`book_id`, `name`, `number`)
VALUES
     ( 1000 , 'Java程序设计' , 10 ),
     ( 1001 , '数据结构' , 10 ),
     ( 1002 , '设计模式' , 10 ),
     ( 1003 , '编译原理' , 10 )
 
-- 创建预约图书表
CREATE TABLE `appointment` (
   `book_id` bigint( 20 ) NOT NULL COMMENT '图书ID' ,
   `student_id` bigint( 20 ) NOT NULL COMMENT '学号' ,
   `appoint_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '预约时间' ,
   PRIMARY KEY (`book_id`, `student_id`),
   INDEX `idx_appoint_time` (`appoint_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT= '预约图书表' </code>

entity包中添加两个对应的实体,图书实体Book.java和预约图书实体Appointment.java

Book.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
<code class = "language-java hljs " > package com.soecode.lyf.entity;
 
public class Book {
 
     private long bookId; // 图书ID
 
     private String name; // 图书名称
 
     private int number; // 馆藏数量
 
     // 省略构造方法,getter和setter方法,toString方法
 
}</code>

Appointment.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<code class = "language-java hljs " > package com.soecode.lyf.entity;
 
import java.util.Date;
 
/**
  * 预约图书实体
  */
public class Appointment {
 
     private long bookId; // 图书ID
 
     private long studentId; // 学号
 
     private Date appointTime; // 预约时间
 
     // 多对一的复合属性
     private Book book; // 图书实体
 
     // 省略构造方法,getter和setter方法,toString方法
 
}</code>

dao包新建接口BookDao.javaAppointment.java

BookDao.java

?
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
<code class = "language-java hljs " > package com.soecode.lyf.dao;
 
import java.util.List;
 
import com.soecode.lyf.entity.Book;
 
public interface BookDao {
 
     /**
      * 通过ID查询单本图书
      *
      * @param id
      * @return
      */
     Book queryById( long id);
 
     /**
      * 查询所有图书
      *
      * @param offset 查询起始位置
      * @param limit 查询条数
      * @return
      */
     List<book> queryAll( @Param ( "offset" ) int offset, @Param ( "limit" ) int limit);
 
     /**
      * 减少馆藏数量
      *
      * @param bookId
      * @return 如果影响行数等于>1,表示更新的记录行数
      */
     int reduceNumber( long bookId);
}
</book></code>

AppointmentDao.java

?
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
<code class = "language-java hljs " > package com.soecode.lyf.dao;
 
import org.apache.ibatis.annotations.Param;
 
import com.soecode.lyf.entity.Appointment;
 
public interface AppointmentDao {
 
     /**
      * 插入预约图书记录
      *
      * @param bookId
      * @param studentId
      * @return 插入的行数
      */
     int insertAppointment( @Param
  • 4
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你不懂程序员的Bug

打赏点吧, 不容易啊

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值