SpringMVC-整合SSM框架

本文详细描述了一个基于Java的Web应用,涉及SpringMVC控制器、MyBatisMapper接口和实现、以及数据库操作,展示了如何使用Spring进行服务层和数据访问层的整合。主要内容包括BlogService接口、MapperXML文件、DAO和Service实现,以及Spring配置和前端JSP页面设计。
摘要由CSDN通过智能技术生成

public int deleteBlogById(int id);

int updateBlog(Blog blog);

Blog queryBlogById(int id);

List queryAllBlogs();

}

7.编写Mapper.xml

==============

<?xml version="1.0" encoding="UTF-8" ?>

select * from blog where id=#{id}

update blog set name=#{name} ,pwd=#{pwd} where id=#{id}

insert into blog(name,pwd) values(#{name},#{pwd})

delete from blog where id=#{id}

select * from blog

8.编写service层的接口和实现类

===================

接口:

package com.yixin.service;

import com.yixin.pojo.Blog;

import java.util.List;

public interface BlogService {

public int addBlog(Blog blog);

public int deleteBlogById(int id);

int updateBlog(Blog blog);

Blog queryBlogById(int id);

List queryAllBlogs();

}

实现类:

package com.yixin.service;

import com.yixin.dao.BlogMapper;

import com.yixin.pojo.Blog;

import org.springframework.stereotype.Controller;

import org.springframework.stereotype.Service;

import java.util.List;

public class BlogServiceImpl implements BlogService{

private BlogMapper blogMapper;

public void setBlogMapper(BlogMapper blogMapper) {

this.blogMapper = blogMapper;

}

public int addBlog(Blog blog) {

return blogMapper.addBlog(blog);

}

public int deleteBlogById(int id) {

return blogMapper.deleteBlogById(id);

}

public int updateBlog(Blog blog) {

return blogMapper.updateBlog(blog);

}

public Blog queryBlogById(int id) {

return blogMapper.queryBlogById(id);

}

public List queryAllBlogs() {

return blogMapper.queryAllBlogs();

}

}

9.编写controller层

===============

package com.yixin.controller;

import com.yixin.pojo.Blog;

import com.yixin.service.BlogService;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.beans.factory.annotation.Qualifier;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

@Controller

@RequestMapping(“/blog”)

public class BlogController {

@Autowired

@Qualifier(“BlogServiceImpl”)

private BlogService blogService;

@RequestMapping(“/allBlog”)

public String list(Model model) {

List list = blogService.queryAllBlogs();

System.out.println(“test”);

System.out.println(list);

model.addAttribute(“list”, list);

return “allBlog”;

}

@RequestMapping(“/toAddBlog”)

public String toAddPaper() {

return “addBlog”;

}

@RequestMapping(“/addBlog”)

public String addPaper(Blog blog) {

System.out.println(blog);

blogService.addBlog(blog);

return “redirect:/blog/allBlog”;

}

@RequestMapping(“/toUpdateBlog”)

public String toUpdateBook(Model model, int id) {

Blog blogs = blogService.queryBlogById(id);

System.out.println(blogs);

model.addAttribute(“blog”,blogs );

return “updateBlog”;

}

@RequestMapping(“/updateBlog”)

public String updateBook(Model model, Blog blog) {

System.out.println(blog);

blogService.updateBlog(blog);

Blog blog1 = blogService.queryBlogById(blog.getId());

model.addAttribute(“blogs”, blog1);

return “redirect:/blog/allBlog”;

}

@RequestMapping(“/del/{blogId}”)

public String deleteBook(@PathVariable(“blogId”) int id) {

blogService.deleteBlogById(id);

return “redirect:/blog/allBlog”;

}

}

编写配置类

=====

10.编写MyBatis层

=============

(1)编写数据库配置文件db.properties

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3306/mybatis_blog?useSSL=true&useUnicode=true&characterEncoding=UTF-8\

&autoReconnect=true&failOverReadOnly=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC

username=root

password=123456

(2)编写MyBatis核心配置文件mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>

11.编写Spring层

============

(1)编写Spring整合Mybatis的相关的配置文件:spring-dao.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:context=“http://www.springframework.org/schema/context”

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

https://www.springframework.org/schema/context/spring-context.xsd">

<context:property-placeholder location=“classpath:db.properties” system-properties-mode=“FALLBACK”/>

<–支持过滤由指定的创建接口或注解创建映射器,这样就可以直接使用Mapper了–>

(2)Spring整合service层

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:context=“http://www.springframework.org/schema/context”

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

https://www.springframework.org/schema/context/spring-context.xsd">

<context:component-scan base-package=“com.yixin.service” />

12.SpringMVC配置

==============

(1)web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns=“http://xmlns.jcp.org/xml/ns/javaee”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=“http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd”

version=“4.0”>

DispatcherServlet

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:applicationContext.xml

1

DispatcherServlet

/

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

utf-8

encodingFilter

/*

15

(2)spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:context=“http://www.springframework.org/schema/context”

xmlns:mvc=“http://www.springframework.org/schema/mvc”

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/mvc

https://www.springframework.org/schema/mvc/spring-mvc.xsd">

<mvc:annotation-driven />

mvc:default-servlet-handler/

<context:component-scan base-package=“com.yixin.controller” />

13.编写前端jsp文件

============

目录如下:

(1)index.jsp

<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

首页

进入首页

(2)addBlog.jsp

<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

新增博客

新增博客

博客名字:


博客密码:


(3)allBlog.jsp

<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>

<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

博客列表

博客列表 —— 显示所有博客

新增

博客编号 博客名字 博客密码

<c:forEach var=“blog” items=“${requestScope.get(‘list’)}”>

${blog.getId()} ${blog.getName()} ${blog.getPwd()}

更改 |

删除

</c:forEach>

(4)updateBlog.jsp

<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

修改信息

修改信息

博客名称:

博客密码:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结:心得体会

既然选择这个行业,选择了做一个程序员,也就明白只有不断学习,积累实战经验才有资格往上走,拿高薪,为自己,为父母,为以后的家能有一定的经济保障。

学习时间都是自己挤出来的,短时间或许很难看到效果,一旦坚持下来了,必然会有所改变。不如好好想想自己为什么想进入这个行业,给自己内心一个答案。

面试大厂,最重要的就是夯实的基础,不然面试官随便一问你就凉了;其次会问一些技术原理,还会看你对知识掌握的广度,最重要的还是你的思路,这是面试官比较看重的。

最后,上面这些大厂面试真题都是非常好的学习资料,通过这些面试真题能够看看自己对技术知识掌握的大概情况,从而能够给自己定一个学习方向。包括上面分享到的学习指南,你都可以从学习指南里理顺学习路线,避免低效学习。

大厂Java架构核心笔记(适合中高级程序员阅读):

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。[外链图片转存中…(img-9KsSTG2b-1713421098556)]

[外链图片转存中…(img-5Drb7WD2-1713421098557)]

[外链图片转存中…(img-QfLJVpEB-1713421098558)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结:心得体会

既然选择这个行业,选择了做一个程序员,也就明白只有不断学习,积累实战经验才有资格往上走,拿高薪,为自己,为父母,为以后的家能有一定的经济保障。

学习时间都是自己挤出来的,短时间或许很难看到效果,一旦坚持下来了,必然会有所改变。不如好好想想自己为什么想进入这个行业,给自己内心一个答案。

面试大厂,最重要的就是夯实的基础,不然面试官随便一问你就凉了;其次会问一些技术原理,还会看你对知识掌握的广度,最重要的还是你的思路,这是面试官比较看重的。

最后,上面这些大厂面试真题都是非常好的学习资料,通过这些面试真题能够看看自己对技术知识掌握的大概情况,从而能够给自己定一个学习方向。包括上面分享到的学习指南,你都可以从学习指南里理顺学习路线,避免低效学习。

大厂Java架构核心笔记(适合中高级程序员阅读):

[外链图片转存中…(img-Iykz9t47-1713421098558)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值