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 ...
随机推荐
- [javaEE] jsp入门
Servlet写java代码很好,但是拼接html的时候,非常不方便 JSP可以在html中嵌套java代码,这样在展示的时候,就会比较方便 Tomcat帮我们把jsp的页面翻译成了Servlet去运 ...
- SZU1
CodeForces 518A 字符串进位.. #include <iostream> #include <string> #include <cstring> # ...
- poj3260 平衡问题(二维01背包)
http://www.cnblogs.com/ziyi--caolu/p/3228090.html http://blog.csdn.net/lyy289065406/article/details/ ...
- spring的aop 基于schema
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程 一 前期工作 1.新建一个java项目,我是使用的maven,所以我新建了一个简单的maven项目,因为mav ...
- javaScript 面向对象开发实例
javaScript 面向对象开发实例 这个是结合require的模块化开发,首先创建构造函数: //test.js 1 function Test(lists) { var config={ nam ...
- 浅谈用于WEBGIS开发最重要的4个HTML5特性
WebGIS是GIS与Internet相结合的产物,一般Internet的开发手段都可用于WEBGIS的开发,比较流行的有Javascript.FLash,到现在应该说市面上的WEBGIS产品和具有的 ...
- 【Python】内置方法pop
此时 a,b 指向的地址所存的内容均被更改
- 微信jssdk 返回的 config invalid signature
这几天一直在调试wxjssdk,按照api的需求,http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html ,先是根据a ...
- 微信证书 javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
这几天在做微信退款接口,按照api写完之后,在本地测试了下没有问题,于是交给测试让他们在测试环境开测.他们说退款没有成功,感觉去查日志,发现后台报了 javax.net.ssl.SSLExceptio ...
- 面试题Spring Boot
Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家. 问题一 Spring Boot.Spring MVC 和 Spring 有什么区别 ...