ssm框架基本流程
题目,写的有点大了,其实就是 对一张表的基本处理,增删改查的基本操作演示。
好了,我们开始了。
假如,我们在做一个单表处理,就举例是 学院(某个大学的学院) 吧。
首先,我们分析 学校这样表有哪些属性,分析完后,就可以在数据库中 建 depart 这张表了。
有三个属性:
然后要在项目中 做一个 depart Bean 可以使用generate mybais 工具自动生成 depart model ,现在我们model已经做好了。
下面是Depart.java 中的代码,都是自动生成的,但是有时因为后面业务的需求,需要去其他表里查 需要增加 Model 像代码中的school ,因为学院是隶属于学校的,
* @mbggenerated
*/
private String departId;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database column depart.schoolId
*
* @mbggenerated
*/
private String schoolId;
/**
* This field was generated by MyBatis Generator.
* This field corresponds to the database column depart.name
*
* @mbggenerated
*/
private String name;
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column depart.departId
*
* @return the value of depart.departId
*
* @mbggenerated
*/
public String getDepartId() {
return departId;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column depart.departId
*
* @param departId the value for depart.departId
*
* @mbggenerated
*/
public void setDepartId(String departId) {
this.departId = departId == null ? null : departId.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column depart.schoolId
*
* @return the value of depart.schoolId
*
* @mbggenerated
*/
public String getSchoolId() {
return schoolId;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column depart.schoolId
*
* @param schoolId the value for depart.schoolId
*
* @mbggenerated
*/
public void setSchoolId(String schoolId) {
this.schoolId = schoolId == null ? null : schoolId.trim();
}
/**
* This method was generated by MyBatis Generator.
* This method returns the value of the database column depart.name
*
* @return the value of depart.name
*
* @mbggenerated
*/
public String getName() {
return name;
}
/**
* This method was generated by MyBatis Generator.
* This method sets the value of the database column depart.name
*
* @param name the value for depart.name
*
* @mbggenerated
*/
private School school;
public void setName(String name) {
this.name = name == null ? null : name.trim();
}
public School getSchool() {
return school;
}
public void setSchool(School school) {
this.school = school;
}
model我们已经做好了, model-view-controller mvc
下来我们做controller层():
(现在我们的业务需求是,把depart中的数据展示出来)
DepartController.java
@Controller //spring 注解 作用是 表示这是个控制器
@RequestMapping(value="depart") //以后用来做访问的地址
public class DepartController {
@Resource //表示这个类是 依赖于spring来注入的,即控制反转
DepartService departService;
//上面相当于 DepartService departService=new DepartServiceImpl(); spring 帮助我们实现了注入
@RequestMapping(value="list")
public String list(@ModelAttribute Page<Depart>page,Depart depart,Model model, HttpServletRequest request){
departService.selectByModel(page, depart);//查找结果
return "basic/depart_list"; //到view
}
}
看到了,上面的代码,你能会问 DepartService 这个东西在哪,我们现在做个这个东西,我实际做的时候,一般是先吧service层搭起来,然后再做controller层。
可以看到这是个接口,
具体实现是在下面这个:
这个时候你就要问了,spring是如何实现
DepartService departService=new DepartServiceImpl();
- 1
这个的。
看
他里面的代码:
@Service //这个注解,就代表 要被spring注入
public class DepartServiceImpl extends GenericServiceImpl<Depart, DepartExample, String> implements DepartService{
@Resource
DepartMapper departMapper;
@Override
public void selectByModel(Page<Depart> page, Depart depart) {
departMapper.selectByModel(page, depart);//调用dao层
}
}
dao层: 大多是 自动生成的,不过到了具体的业务需求,也要需要手动去写,就像 我们调用的selectByModel(page, depart);
就是我们手动写的
接下来,看看 selectByModel(page, depart);
这个具体的。
用到了动态SQL:
<select id="selectByModel" parameterType="com.xuezhixin.mls.web.model.Depart" resultMap="BaseResultMap">
select
d.* from depart d
<where>
<if test="name !=null and name !=''">
and name=#{name,jdbcType=CHAR}
</if>
</where>
</select>
generate mybatis自动生成的
<resultMap id="BaseResultMap" type="com.xuezhixin.mls.web.model.Depart" >
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
-->
<id column="departId" property="departId" jdbcType="CHAR" />
<result column="schoolId" property="schoolId" jdbcType="CHAR" />
<result column="name" property="name" jdbcType="VARCHAR" />
</resultMap>
到这里,我们的业务基本就处理就完成了。
接下来,我们 做 view 层 把数据展示出来
这个代码 属于伪代码,只是想表达逻辑
- 1
- 2
<th>院系名称</th>
<c:forEach items="${page.result }" var="depart1" varStatus="status">
<td>${depart1.name}</td>
- 1
- 2
- 3
可以看到,这样就基本完成了 整个流程。
ssm框架基本流程的更多相关文章
- ssm框架搭建流程及原理分析
这几天自己想搭建个ssm框架玩一下,有些东西长时间不玩都给忘了,所以自己把整个流程整理了一下,只要跟着步骤,就能顺利完成ssm框架的搭建. 一.搭建步骤: 1.整理jar包 2.对于一个web ...
- 基于IDEA采用springboot+Mybatis搭建ssm框架简单demo项目的搭建配置流程
一.通过对比可以原始SSM搭建流程,spring boot省去了大量的配置,极大提高了开发者的效率.原始SSM框架搭建流程见博客: https://www.cnblogs.com/No2-explor ...
- SSM框架搭建web服务器实现登录功能(Spring+SpringMVC+Mybatis)
初学java EE,虽然知道使用框架会使开发更加便捷高效,但是对于初学者来说,感到使用框架比较迷惑,尤其是各种jar包的引用.各种框架的配置.注解的使用等等. 最好的学习方法就是实践,于是下载了一个现 ...
- 实习小结(二)--- SSM框架搭建
SSM项目框架搭建 前几天做了一个学生信息管理的项目,使用纯控制台输入,查询数据库,将信息在控制台中打印,功能完善得差不多之后,老师让将这个项目移植到Web中,使用Spring+SpringMVC+M ...
- 使用maven搭建ssm框架的javaweb项目
目前主流的javaweb项目,常会用到ssm(Spring+Spring MVC+Mybatis)框架来搭建项目的主体框架,本篇介绍搭建SSM框架的maven项目的实施流程.记之共享! 一.SSM框架 ...
- SSM框架——整合搭建流程
1.首先创建maven工程,使用哪种方式进行创建都可以,可以参考博主之前的文章: <两种方式创建Maven项目[方式二]><两种方式创建Maven项目[方式一]> 2.先看看搭 ...
- SpringMVC--从理解SpringMVC执行流程到SSM框架整合
前言 SpringMVC框架是SSM框架中继Spring另一个重要的框架,那么什么是SpringMVC,如何用SpringMVC来整合SSM框架呢?下面让我们详细的了解一下. 注:在学习SpringM ...
- SSM框架Web程序的流程(Spring SpringMVC Mybatis)
SSM框架的Web程序主要用到了三个技术: Spring:用到了注解和自动装配,就是Spring的两个精髓IOC(反向控制)和 AOP(面向切面编程). SpringMVC:用到了MVC模型,将逻辑代 ...
- ssm框架的搭建流程
1.新建一个Maven project (1)选中create a simple project,自动配置必要的文件 (2)Packaging选择war类型.jar和war的区别就是一个是普通的jav ...
随机推荐
- Vue-[v-model]理解示例
对应文档节点: https://vuefe.cn/v2/guide/components.html#Customizing-Component-v-model <body> <div ...
- TCP基础知识(一)简介与数据包
TCP详解(1):简介与数据包 TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议 应用层向TCP层发送用于网间传输 ...
- Tomcat添加用户
在conf目录下tomcat-users.xml文件里添加如下代码: <role rolename="manager-gui"/> <user username= ...
- Effective C++ .15,16获取原始资源和成对使用同类型new和delete
15. 智能指针可以通过get操作 #include <iostream> #include <cstdlib> #include <memory> using n ...
- js原生带缩略图的图片切换效果
js原生带缩略图的图片切换效果 本例中用到的 moveElement(elementID,final_x,final_y,interval)是来自<JavaScript DOM编程艺术(中文第二 ...
- js的函数作用域跟块级作用域
js的函数作用域跟块级作用域(原文地址:http://blog.csdn.net/huangjq36sysu/article/details/51085674)
- UFW Essentials: Common Firewall Rules and Commands
Introduction UFW is a firewall configuration tool for iptables that is included with Ubuntu by defau ...
- mvn 打包命令
mvn install & package:package是把jar打到本项目的target下,而install时把target下的jar安装到本地仓库,供其他项目使用. mvn clean ...
- Linux下分布式项目部署环境搭建与使用(druid-1.0.25.jar)数据库连接加密
一.JDK安装 1.执行命令:cd Downloads/ 2.上 传:jdk-8u111-linux-x64.tar.gz 到Downloads 3.执行命令:tar -zxvf jdk-8u111- ...
- SVNKit学习——Setting Up A Subversion Repository 创建仓库(三)
所谓Setting Up A Subversion Repository,就是在Subversion所在的服务器上创建一个仓库,说白了就是在磁盘上建一个特殊的目录,这里我以windows举例. 1.使 ...