SSM整合(细节拉满)|将Mybatis、Spring、SpringMVC三个框架整合起来,通过一个demo来练习

环境要求

环境:
IDEA
MySQL 5.7.19
Tomcat 9
Maven 3.6
要求:
需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识;

数据库环境

创建一个存放书籍数据的数据库表,并插入一些示例数据

SSM整合

新建一个空的Maven项目

导入相关依赖

将数据库与IDEA连接起来

把项目结构建立起来

applicationContext.xml、mybatis-config.xml

创建spring的配置文件applicationContext.xml和mybatis的核心配置文件mybatis-config.xml

database.properties文件用于数据库连接

创建database.properties配置文件,用于数据库的连接

mybatis-config.xml中加入类的位置,后面可简化一些操作。

在pom.xml中加入lombok依赖

创建一个与数据库表中字段对应的Books类

编写BookeMapper接口,定义一些相应的增删改查接口

创建BookeMapper.xml编写对应方法的sql语句

注册这个Mapper.xml

在mybatis-config.xml配置文件中注册这个Mapper.xml

编写Service层接口

编写Service层接口,增删改查方法与DAO层一致

编写Service层的具体实现类

编写Service层的具体实现类,实现刚才的接口,重写方法,用set方法能够方便注入Dao层的对应接口,然后每个方法中,实际上调用的还是Dao层接口的对应方法

spring跟dao层的配置文件spring-dao.xml

创建一个spring跟dao层的配置文件spring-dao.xml,右上角关联至我们原先创建的那个关联

然后将我们之前用来连接数据库的properties文件导入进来,连接池用c3p0,配置数据库账号密码之类的信息

配置dao接口扫包,动态的实现了Dao接口可以注入到Spring容器中! 

spring跟Service层的配置文件spring-service.xml

配置和扫描service下的包,将我们的所有业务类,注入到Spring,可以通过配置,或者注解实现

这里将刚才的Service层的实现类注册其中,然后通过set方法,将我们dao层的那个接口注入其中。

spring的核心配置文件applicationContext.xml中引入dao、service层的配置文件

在spring的核心配置文件applicationContext.xml中引入spring跟dao层的配置文件spring-dao.xml和spring跟Service层的配置文件spring-service.xml


整合SpringMVC

添加web支持

创建SpringMVC的配置文件spring-mvc.xml

spring的核心配置文件applicationContext.xml中也引入这个配置文件

在web.xml中配置DispatcherServlet、乱码过滤器以及session

注意这里绑定的spring-mvc.xml,应该改为applicationContext.xml,如果不改,有的bean找不到

在配置文件spring-mvc.xml配置映射器、适配器、视图解析器这些,以及扫描controller层的配置

环境配差不多了正式开启demo

查询全部书籍

编写Controller,查询全部书籍,返回到WEB-INF包下(此包下的页面只能通过controller或servlet来访问)的allBook.jsp页面-

在WEB-INF包下创建这个Controller返回的allBook.jsp页面

编写首页,写一个调用刚才的查询所有书籍的Controller路由的按钮

美化Controller返回的allBook.jsp页面

将Controller存在model中的所有书籍信息list列表用取出来

进首页点那个按钮再调用刚才的controller返回出allBook.jsp页面

增加书籍接口

在allBooke界面加入一个能跳转增加书籍的Controller路由的按钮“新增书籍”

编写跳转的这个Controller层,以及处理后的跳转页面

编写新增书籍页面

在这个页面里写一个能添加新书籍的表单,并准备编写这个表单提交后发给的Controller

编写表单提交后发给的路由

把表单输入的每个数据名与Books类的属性名对照,使得提交后,增加书籍的Controller可以直接接收到这些参数。

编写新增表单提交后发给的Controller,将信息增加到数据库中后,直接重定向到查所有书籍的Controller。

完成后试一试,添加一个书籍

提交后,发现重定向回查询所有书籍的页面,并且看到增加成功

修改书籍接口

在显示查询出所有书籍的页面,每本书的后面增加修改和删除按钮

在修改按钮上绑定一个执行修改操作的Controller的路由,并将该书籍的id当成参数传进去

编写这个跳转的Controller,将这个书籍的改之前的信息查到,存到model里,并跳转到真正要提交更改信息的updateBook.jsp的页面

创建这个updateBook.jsp页面

将这个页面里写一个表单,用来提交更改后的书籍信息,这里每个书籍的信息都默认赋值为原本的该id的这个书籍信息,是从我们刚才存的model里取出来的。

配置这个表单提交后所要执行修改书籍信息的Controller的路由

最重要的一点是,在提交这一系列修改书籍的信息前,还要将书籍的id,用一个隐藏域给加上,一起传过去,才能使得后面修改操作完成,不然没id,肯定修改不了这本书的信息。

编写这个Controller,修改信息过后,重定向到查询所有书籍的那个Controller,再通过这个Controller跳转至显示所有书籍的页面。

演示,点击编号为1书籍的修改操作

跳到提交修改信息的页面,在中间跳这个页面之前,还穿插了一个查询该id原本信息的Controller,然后才跳转至了这个页面,原本信息被赋值到了这里的每个属性里。

把书名改了,然后提交修改操作。

点修改后,这修改的信息以参数的形式,跳转到了修改信息的Controller,然后执行修改操作,重定向至查询所有书籍的Controller,再通过这个Controller跳转到了显示所有书籍的jsp页面。发现信息修改成功。

删除书籍接口

在显示所有书籍的jsp页面中的删除按钮前,绑定它所要跳转的执行删除书籍操作的Controller,并携带本书的id为参数。

编写这个Controller,然后再重定向至查询所有书籍的Controller,进而再跳转到显示所有书籍的jsp页面。

也可用restful风格

根据书名查书籍接口

在显示所有书籍的jsp页面中加一个根据书名查书籍的表单

绑定提交书籍名称后需要跳转执行根据书名查书籍信息的Controller路由。

Dao层在接口中新加这个根据书名查书信息的方法

在Mapper.xml编写该方法的对应sql

service层的接口中加入该方法

service层实现类中重写该方法

编写这个执行根据书名查书籍的Controller

如果没查到,需要返回,所以再显示所有书籍的jsp页面再加一个显示全部书籍按钮,绑定的还是查询所有书籍的那个Controller路由,方便回去。

书籍如果查不到,点这个按钮还能回去。

完善查询书籍的Controller,如果没查到书籍,在model里加一个error信息

返回后,如果model里有error信息会显示出来

至此,整合SSM框架以及写一个小的demo顺利完成!!!不容易!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值