首页 > 其他分享 >SSM三层架构流程总结

SSM三层架构流程总结

时间:2023-06-16 19:44:58浏览次数:30  
标签:findAll 架构 -- public SSM user 跳转 三层 id

1.搭环境
webapp\WEB-INF\web.xml
pom 里面激活webapp <packaging>war</packaging>

将pom坐标复制
web.xml 复制进去
配置文件resources 目录 引入

applicationContext.xml
jdbc.properties
log4j.properties
spring-mvc.xml

2.创建实体类层
com.msr.bean
实体类.class 命名规则 驼峰命名法 记住每个单词首字母大写


3.创建三层
3.1dao层 引入框架Mybatis 后 改名字 为 mapper
所以此处创建包 为 mapper


3.2服务层 service层
3.3控制层 controller层

4.开始写后台开发程序

4.1首先写 实体类 要和mysql数据库的表明一样
有一样的属性 属性名和mysql表中的属性名字 要一致
写完属性要用快捷键生成 toString getandset 和 构造器Constructor 这里包含全参加 和空参


4.2 开始写dao层
也就是mapper 这里开始使用Mybatis框架来实现

首先接口
实体类名字+Mapper

之后接口内 进行函数的直接写
//1.查询账户信心
public List<Account> findAll();

//2.新增
public void saveAccount(Account account);

接口内函数完成 创建对应接口的xml文件
其中命名空间名字 是对应接口的全类名


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!--namespace 命名空间名-->

<mapper namespace="com.msr.mapper.AccountMapper">

<!--
id: 唯一标识符 方法名字
parameterType 参数类型
resultType 单表 结果类型返回类型
resultMap 多表 结果类型返回类型
-->

<!-- 查询 public List<User> findAll();-->
<select id="findAll" resultType="user" >
select * from user
</select>

<!--根据ID来查询 精确查询
public User findUserById(int id);

-->
<select id="findUserById" parameterType="int" resultType="user">
select * from user where id=#{id}
</select>


<!-- 模糊查询
public List<User> findAllLinkName();
-->
<select id="findAllLinkName" parameterType="String" resultType="user">
select * from user where username like '%${value}%'
</select>

<!--增加
public void addUser();
-->

<insert id="addUser" parameterType="user" keyProperty="id" useGeneratedKeys="true">
insert into user values (null,#{username},#{password})
</insert>

<!--删除
public void delUser(int id);
-->
<delete id="delUser" parameterType="int" >
delete from user where id=#{id}
</delete>

<!--修改用户
public void updataUser(User user);
-->
<update id="updataUser" parameterType="user" >
update user set username=#{username},password=#{password} where id=#{id}
</update>

 


</mapper>


5.开始编写service层
这里采用接口和实现类 完成
接口函数与mapper接口内函数一致

实现类 切记
@Service

因为servie要调用Mapper层

所以引入 下面为引入 所有的引入都需要注解 @Autowired

@Autowired
private AccountMapper accountMapper;
实现类 完成父类函数的重写
有返回的调用Mapper层的函数
没有返回的也调用Mapper层的函数

 

 

6.这里开始写最后的控制层 Controller

控制层主函数要加入注解 RequestMapping内为实体类名字小写
@Controller
@RequestMapping("/account")

Controller层调用Service
所以也需要引入
@Autowired
private AccountService accountService;

然后开始写查询
@RequestMapping("/findAll") 这里是路径映射 必须写
public String findAll(Model model){
List<Account> accountList = accountService.findAll();
model.addAttribute("accountList",accountList);
return "accountList";
}
写道这里 开始进行 测试 我们访问的路径为
localhost:8080\account\findAll 这里需要理解 后两个 是 控制层的类的映射路径 和函数映射路径


查询之后的保存 跳转 我们在安全目录下 不能跳转 只能走控制层 进行跳转
<h1><a href="/account/toSavePage">保存账户信息表单</a></h1>

上面就是点保存后的跳转 所以 我们需要进行控制层的编写

//toSavePage
//跳转到新增页面
@RequestMapping("/toSavePage")
public String toSavePage( ){
return "accountSave";
}

上面的属于 服务端的跳转 切记 !!!! 这里利用了路径的映射
return的跳转 因为有了Spring配置文件的内部资源视图解析器
前后的路径进行了省略 详情看spring的配置文件

新增页面填写好
填写内容后 请求转发到 查询页面
我们应该还是采用 服务端的跳转 也就是 Controller层的函数跳转

@RequestMapping("/save")
public String save(Account account){
accountService.saveAccount(account);
return "redirect:/account/findAll"; //这里是请求转发 跳转主函数的映射路径下的函数查询路径
}

标签:findAll,架构,--,public,SSM,user,跳转,三层,id
From: https://www.cnblogs.com/ningbaoer/p/17486385.html

相关文章

  • 从0开始,精通Go语言Rest微服务架构和开发
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • 系统架构设计师笔记第16期:数据库基本概念
    数据库技术的发展数据库技术在过去几十年中经历了显著的发展和演变。层次数据库和网状数据库:20世纪60年代和70年代初,层次数据库和网状数据库是主流的数据库模型。层次数据库使用树状结构组织数据,而网状数据库使用复杂的网络结构。这些数据库模型适用于特定的数据组织和查询需求,但缺......
  • 操作系统架构设计:如何优化系统性能和资源利用率
    目录1.引言2.技术原理及概念2.1.基本概念解释2.2.技术原理介绍3.实现步骤与流程3.1.准备工作:环境配置与依赖安装3.2.核心模块实现3.3.集成与测试操作系统架构设计:如何优化系统性能和资源利用率随着计算机硬件性能的不断提高和软件功能的不断扩展,操作系统在系统性能、资......
  • Oracle最高可用性架构(MAA)|黄金级(GOLD)
    1、什么是MAA参考之前的文章:1、Oracle最高可用性架构(MAA)|青铜级(BRONZE)https://www.cnblogs.com/mingfan/p/16804556.html2、Oracle最高可用性架构(MAA)|白银级(SILVER) https://www.cnblogs.com/mingfan/p/17464913.html2、黄金级(GOLD)MAA我们都知道,单点是系统高可用的......
  • 招商基金资深架构师教你如何搭建统一监控平台
    随着数字化进程的加速和业务的高速发展,系统的复杂程度日益升级,为确保业务系统的连续性和稳定性,越来越多的企业想要建设统一的监控平台,但却不知道从哪里开始着手。比如:有些企业会直接将监控系统页面集成到统一监控的门户里,当作统一的监控平台。有些企业把所有告警事件集中到统一系统......
  • Java的六边形架构
    六边形体系结构是一种风格,它以一种将核心逻辑与外部元素隔离开来的方式分层对象。核心逻辑是特定于您的业务的部分,外部元素就像集成点,例如DB,外部API,UI等。它将软件划分  为内部和外部部分。 内部  部件包含核心业务逻辑和域层(在LayeredArchitecture中解释)。该外部分包括用户界......
  • 【实战】霸榜各大医学分割挑战赛的Transformer架构--nnFormer
    文章目录安装下载以及预处理实验数据预处理数据修改源代码错误traintest简介:我们介绍了nnFormer(not-anothertransFormer),一种用于3D医学图像分割的transformer。nnFormer不仅使用了卷积和自注意力的结合,还引入了基于局部和全局体积的自注意机制来学习体积表示。此外,nnFormer......
  • 主从架构如何保证读写一致性(主从网络延迟)
    问题在高并发的场景下,一般是读写分离,写主库,读从库。但是主从同步存在延迟,原因可能有a.主库的从库太多b.从库硬件配置比主库差c.慢SQL语句过多d.主从库之间的网络延迟e.主库读写压力大如果数据写入主库之后还未来得及同步到从库,此时读从库就会读到脏数据解决方案1......
  • 利用Taro打造敏捷的移动App架构
    什么是Taro?Taro(或称为Taro框架)是一种用于构建跨平台应用程序的开源JavaScript框架。它基于React和ReactNative,可以用于开发Web、iOS、Android和微信小程序等平台上的应用程序。Taro的目标是实现一套代码多端运行的方案,开发者可以使用一套React语法编写代码,然后通过Taro编译器将......
  • 腾讯云低延时直播系统架构设计与弱网优化实践
    “直播带货”可能是2020年最具代表性的词汇之一,那么传统电商该如何融合直播系统,直播过程如何保障用户的最佳观看体验?本文由腾讯云资深架构师何书照在LiveVideoStack线上分享中的内容整理而成,详解了大规模、低延时电商直播系统架构设计以及电商直播的难点、技术挑战与突破。 文/......