MVC模式和三层架构下的综合开发(来源黑马)

1准备环境:

1.创建一个新的项目模块:MVC_demo,导入需要的坐标 2.创建三层架构的包结构 3.创建数据库表tb_brand 4.创建实体类Brand(数据与数据库里面的数据对应) 5.导入Mybatis开发的基础环境

Mybatis-config.xml BrandMapper.xml BrandMapper接口

演示如下: 1.创建Web项目后导入webapp目录

2.导入坐标:

分别为mybatis坐标 mysql驱动包 servlet包 JSp包 JSTL包

 

3.创建三层架构的包结构

其中web放表现层的代码 service放业务逻辑层代码 mapper放数据访问层代码 util放工具类的代码 pojo放实体类代码

4.创建一个数据库表,并且加入信息:

SQL语句:

 use db1
 create table tb_brand(
 -- 主键
  id int primary key auto_increment,
 -- 品牌名
  brand_name varchar(30),
 -- 企业名
  company_name varchar(20),
 -- 排序名称
  ordered int,
 -- 描述信息
  
  description varchar(100),
 -- 状态
  status int 
 );
  
  -- 添加数据:
  insert into tb_brand (brand_name,company_name,ordered,description,status)
  values 
  ('三只松鼠','三只松鼠股份有限公司',5,'好处不上火',0),
  ('华为','华为技术有限公司',100,'华为致力于把数据世界带入每个人,每个家庭,每个组织,构建万物互联的智能世界',1),
  ('小米','小米科技有限公司',50,'are you ok',1);
  
  
  select * from tb_brand;

 

 

5.创建一个跟数据库信息对应的实体类:

 

5.创建Mybatis配置文件,给配置文件起别名(该别名路径对应实体类的包路径):

6.创建mapper对应的SQL映射文件和mapper文件。

mapper文件:

2案例:查询所有:

需要完成的效果:

在html页面点击查询所有后,查询所有数据

如下图:

之前我们在Servlet里面添加用户信息时,是直接调用Dao层的,即mapper里面有数据库查询是否有某个用户信息的功能1,和添加用户信息的功能2,并且还有更多的功能,而SelectAllServelt类中调用功能12后,另外一个Servlet类调用功能12后又得重复调用功能12,而Servicer层,即是将功能12封装在一起,后面的Servlet类再次调用时,可以直接调用Service层里面的12功能。(增强代码复用性)

演示:

1.在BrandMapper类里面编写接口类的方法:

并且在SQL映射文件编写SQL语句:

并且在util里面创建SqlSessionFactory的工具类:

 

在service包里面创建BrandService类:

并且在里面调用SqlSessionFactory工具类:创建查询所有的方法调用Dao层的(mapper里面)的查询数据库功能。

在webapp里面创建一个index名称的html页面:

 

注意index名称的html当我们在浏览器没输入资源时,默认访问index名称的html页面:

在该html里面创建一个超链接:去访问selectAllServlet

超链接直接去关联Servlet

后面再web目录下创建Servlet类

 

将在Servlet里面获取到的数据存到request域中,再将request里面的东西转发到jsp里面去再在webapp里面创建一个jsp文件(注意名字跟Servlet域传过去的的路径名一样)

并且jsp文件的信息如下:

后面运行tomcat后直接访问该项目(不输入额外的路径)

 

 点击查询所有后

页面自动跳转到Servlet路径资源中显示上面数据。

3 案例:添加数据

功能实现:

三层架构的分析:

如上点击新增按钮后,页面跳转到添加用户信息的页面,将用户信息添加进去后,点击提交,浏览器就会将请求数据发到Web层,接收数据后,封装为Brand对象,在调用Service层在数据库存储数据,后面再将数据转发到查询所有的Servlet中,将数据返回再将数据传到jsp中进行展示。

演示如下:

1.先在Dao层编写SQl映射文件和mapper的接口的方法:编写Dao层 分别编写查询添加数据方法。

2.再编写Service层代码:

并且调用SqlSessionFactoryUtils工具类

在Service层中创建一个方法,来进行添加的业务逻辑处理

3.编写页面:

在brand.jsp页面里面将新增按钮名字设置为add 使用javaScript来设置按钮单击事件后的超链接。

 

如上设置按键单击后跳转到超链接的标签:超链接跳转到输入添加数据的表单的页面

创建一个页面来添加数据提交数据,并且设置表单提交的路径:为addServlet资源路径

4编写Servlet页面:

 

首先获取service(业务层的对象)

并且创建变量来接收表单提交过来的数据,封装为一个Brand对象 将Brand对象使用业务层对象的add方法添加数据 后面转发到查询所有的Servlet资源中去再次访问查询所有的资源路径:

运行Tomcat后:点击查询所有:

点击新增:在新增页面输入信息:点击新增:

如果新增华为:

 

页面不会新增。

4.1修改—回显数据:

1.如下图,每次修改数据时,都要先将要修改的数据回显到页面中, 再对页面的数据进行修改后,提交到Service层,并对数据库数据进行修改

三层架构的分析:

首先在浏览器页面中给每个修改都设置一个超链接(并且传给该超链接一个值) Dao层Mapper接口中编写一个通过id来查询数据 Service编写一个方法调用Dao层的selectBuid(id) Web接收到id后,Servlet中调用Service查询Brand,再将修改的数据存储到request中,最后转发到修改页面中

演示:

1.编写Dao层代码:在mapper中创建一个通过id查询的方法,并且在SQL映射文件中编写SQL语句

2.编写Service层:

在Service里面编写一个selectByid方法,返回Brand对象

3.编写Web层代码:

首先编写页面:

给修改按钮关联一个超链接路径和提交的元素(即点击该按钮后,跳转到资源路径下面,并且将提交数据发过去)

创建一个Servlet接收修改按钮连接的超连接:

并且接收传过来的id通过id调用service来查询数据库中对应的数据(后面将获取到的Brand数据封装到request中) 最后将域转发到一个修改页面的jsp中

域转发到update.jsp后就可以在jsp中编写java代码,并且通过与中request里面设置的"brand"变量来设置修改页面中输入框的数据

4.2修改数据:

目的:在修改品牌页面修改回显数据后,数据修改

三层架构分析:

Dao层:在mapper和SQL映射语句中编写update方法 service中编写update方法调用Dao层mapper接口的方法 Web层,将修改品牌页面的数据提交转发到updateServlet中去,里面调用service里面的update方法来修改数据 最后域转发到查询所有Servlet中去

演示:

1>编写Dao层mapper中的update方法和SQL映射文件的SQL映射语句:

该处传递参数的语句是直接将对象传入(不用@Param()传参)

 

2>编写Service层:

3>编写Web层:

在update域将该页面的表单提交路径设置为updateServlet

并且由于后面updateServlet需要id信息来调用service层的方法修改数据:

所以表单创建一个隐藏域提交id的信息(该id的信息是selectByid中传过来的域的数据id)

最后创建一个updateServlet类来获取表单中数据(包括id)并且将数据封装为Brand类调用service方法来修改,最后将该域转发到查询所有的Servlet中展示所有的数据。

运行Tomcat后直接点击Tomcat的端口路径后:

点击查询所有:

点击修改后修改数据:

点击提交:

MVC架构模式三层架构都是常用的软件架构设计模式,用于分离不同层次的代码功能和职责。 MVC架构模式是一种软件设计模式,包括三个基本组件:模型(Model)、视图(View)和控制器(Controller)。模型负责处理数据逻辑,视图负责用户界面展示,控制器负责处理用户输入和业务逻辑。MVC模式通过将不同的功能分离到不同的组件中,实现了代码的解耦和可维护性的提高。 三层架构是一种软件系统的分层设计模式,通常包括表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。表现层负责用户界面的展示和交互,业务逻辑层负责处理业务逻辑和数据处理,数据访问层负责与数据库进行数据交互。三层架构通过将不同层次的功能分离,实现了代码的复用和可扩展性的提高。 MVC架构模式三层架构有相似之处,都是通过分层的方式将不同功能和职责解耦,提高代码的可维护性和可扩展性。同时,三层架构可以看作是实现MVC模式的一种方式,将不同层次的代码按照MVC模式的要求进行分组和编写,以便于整体架构的灵活性和可替换性。 总结来说,MVC架构模式三层架构都是常用的软件架构设计模式,通过分层的方式将不同功能和职责解耦,提高代码的可维护性和可扩展性。三层架构可以看作是实现MVC模式的一种方式,将不同层次的代码按照MVC模式的要求进行分组和编写。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [MVC模式三层架构](https://blog.csdn.net/bb_111/article/details/127279845)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Java MVC模式三层架构](https://blog.csdn.net/jjw_zyfx/article/details/127703245)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值