环境:idea mysql5 maven
项目的流程一般是一下几步:
我们现在就是简单的利用ssm做一个图书的增删改查。
第一步我们先创建一个数据库表:
数据库表:
有一种说法是程序员百分之90的操作都是CURD。
第二步就是我们要搭建一个基本的环境:
我们首先创建一个maven项目肯定要先去导入maven依赖:
接下来我们要在maven中配置静态导出问题:
不然我们可能会发现我们maven的依赖都已经全部导入了,但是项目可能运行起来还会出问题。
这样我们的maven配置基本就结束了。
第三步在idea中连接数据库。
然后我们把包结构建立出来:
在resources中,我们一个是要创建spring核心配置文件,一个是要配置mybatis核心配置文件。
现在一个项目基本的架构就有了,只是什么都没有去写。
接下来我们整合Mybatis层首先就是要先导入数据库:
接下来就是开始写mybatis的核心文件了:
可能我们还需要加入一些mapper的映射配置,但是我们现在还没有Mapper,我们就先写到这里吧。
接下来我们去把实体类完成:
我们为了偷懒,在这里我们去使用lombok插件。
先去在maven里加载lombok:
然后我们在实体类中去使用一下lombok
我们实体类写好了,现在应该是真正到我们去写一些实际操作的接口:
在接口中有些方法的参数和类对象的属性名不相同我们加上@Param注解:
我们要怎么去实现这三个接口,学完Mybatis我们知道,我们只需要写mapper.xml即可了:
我们在xml中去编写每个接口的sql语句,一个接口一个mapper:
接下来我们要把这个mapper.xml文件绑定到我们的mybatis配置文件中:
我们的接口名和我们的xml名称一致,所以我们直接用class方式就可以了,如果名称不一样,我们用resource的方式定位到mapper.xml文件也可以。
接下来就是我们的业务层了:
我们知道业务层就是写业务功能的接口和实现功能接口的实现类,业务层的接口也是利用dao层的接口,只是在功能上有细微的差别,可能会增加一些业务逻辑。
业务层接口:
最后我们来写业务层接口的实现类:
service层就是mvc中的model层,存储数据和业务。我们的mybatis专心做底层,这一层就算写完了。到这里我们就把mybatis整合成功了。
我们先写个spring配置文件:
到这步我们spring整合dao层就已经结束了。总结一下整合dao层的步骤:
1.关联数据库配置文件 2.连接池配置 3.创建sqlSessionFactory 4.dao接口扫描包动态实现dao接口的注入(也可以手动创建实现类来注入)
我们整合完dao层之后,接下来我们要去注入我们的service业务层:
到这一步我们spring整合service层也就结束了。总结一下包含这几个操作:
1.扫描service下的包 2.把业务层的所有业务类注入到spring中 3.声明式事务配置 4.aop事务支持(目前只写CURD的话这一步还用不上)
最后我们再把spring 整合dao和service层的这两个文件放到applicationContext.xml中去:
现在mybatis和spring框架都整合完了,但是现在差一个最核心的框架springmvc没有整合到一起,接下来我们就去整合springmvc。
1.在idea中添加web支持
2.在web.xml中添加servlet和乱码解决,Session的配置:
我们现在还没有配置springmvc核心配置文件,所以web.xml爆红,我们先把这个文件创建出来。
然后我们就把这个文件引入到applicationContext.xml中:
现在我们就把ssm三个框架的核心配置文件放到一个文件里了,达到整合到一起的目的。
然后我们把sping-mvc.xml文件配置完:
我们在mvc核心配置文件中主要完成以下几个步骤:
1.注解驱动2.静态资源过滤3.扫描包:controller4.视图解析器
到这里我们的ssm整合就全部结束了。有的网上是把所有配置文件写到了一起,我们是根据功能不同写了6个配置文件。其实分开来看的话,除了整合Spring是挺麻烦的,整合mybatis和整合mvc还是比较容易的。
之前的项目已经把环境和项目结构搭建起来了,接下来我们先去写controller层用于调用service层:
首页面:
然后我们去写我们的前端页面allBook:
运行:
点击超链:
500了说明我们的项目是有问题的:
我们的排错思路为:
1. 查看我们的bean是否注入成功
显然我们是手动创建的serviceimp的Bean bean是肯定存在的
2.Junit单元测试,看看我们的代码是否能查出结果:
我们发现可以测试出来,所以我们的底层是没有错误的。一定是spring出了问题。
改动下再运行:
报空指针,说明我们的service层没有注入成功。
SpringMVC,整合的时候没调用到我们的service层的bean:
1.applicationContext.xml没有注入bean
2.web.xml中,我们也绑定过配置文件!发现问题,我们配置的是spring-mvc.xml,这里面确实没用service层的bean所以报空指针。
我们再运行一下:
现在我们跳转页面的功能已经成功了,接下来我们就要把前端页面美化一下,把代码优化一下:
先美化index页面:
我们给h3标签和超链接标签加上样式后:
接下来我们去美化跳转后显示结果的allBook页面:
这里是用bootstrap去美化页面,虽然我还没有学过,但是可以先感受一下美化的效果:
接下来就是把查询的到列表信息在页面中体现出来:
页面效果:
现在为止都是做纯前端的设计,还没有把数据库中查询到的列表信息显示到页面上:
写完功能后的完整前端页面:
运行:
这样我们查询全部书籍的方法就写完了,查询只用了一个方法就搞定了。