SpringMVC~整合SSM框架,配置笔记(实现黑天鹅管理系统)

1.2

javax.servlet

servlet-api

2.5

org.mybatis

mybatis

3.5.3

org.springframework

spring-webmvc

5.1.4.RELEASE

org.springframework

spring-jdbc

5.1.4.RELEASE

org.aspectj

aspectjweaver

1.9.4

org.mybatis

mybatis-spring

2.0.1

org.projectlombok

lombok

1.16.20

provided

com.fasterxml.jackson.core

jackson-databind

2.9.8

Maven资源过滤设置

src/main/java

**/*.properties

**/*.xml

false

src/main/resources

**/*.properties

**/*.xml

false

配置application-context.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:mvc=“http://www.springframework.org/schema/mvc”

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

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

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

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

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

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

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

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

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

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

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

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

http://www.springframework.org/schema/tx/spring-tx.xsd">

<context:property-placeholder location=“classpath:database.properties”/>

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

<tx:advice id=“txAdvice” transaction-manager=“transactionManager”>

tx:attributes

<tx:method name=“*”/>

</tx:attributes>

</tx:advice>

<aop:config >

<aop:pointcut id=“pointcut” expression=“execution(* com.duck.service.DuckServiceImpl.*(…))”/>

<aop:advisor advice-ref=“txAdvice” pointcut-ref=“pointcut”/>

</aop:config>

mvc:annotation-driven/

mvc:default-servlet-handler/

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

  • mybatis配置mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
  • DataSourc信息配置database.properties

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/java_11_06?useSSL=true&useUnicode=true&characterEncoding=utf8

jdbc.username=root

jdbc.password=listen

编写数据库对应的POJO实体类和对应mapper


  • pojo实体类

@Data

@NoArgsConstructor

@AllArgsConstructor

public class Duck {

private String id;

private String name;

private Timestamp birthday;

private BigDecimal height;

private BigDecimal weight;

private BigDecimal food;

}

  • pojo的dao操作接口

public interface DuckMapper {

List select();

int insert(Duck duck);

int update(Duck duck);

int delete(@Param(“id”) String id);

List selectByLike(String keyWords);

List selectByRange(Map<String ,Object> map);

Duck selectOne(@Param(“id”) String id);

}

  • 接口对应的mapper.xml映射文件
<?xml version="1.0" encoding="UTF-8" ?>

select * from duck;

insert into duck

values (#{id}, #{name}, #{birthday}, #{height}, #{weight}, #{food})

update duck

name=#{name},

height=#{height},

weight=#{weight},

food=#{food}

where id=#{id}

delete from duck where id=#{id};

select * from duck where name like #{keyWords}

select * from duck

height > #{minHeight}

and height < #{maxHeight}

and weight > #{minWeight}

and weight < #{maxWeight}

select * from duck where id=#{id};

service接口

public interface DuckService {

List select();

int insert(Duck duck);

int update(Duck duck);

int delete(String id);

List selectByLike(String keyWords);

List selectByRange(Map<String ,Object> map);

Duck selectOne(String id);

}

servic接口的实现类

public class DuckServiceImpl implements DuckService {

private DuckMapper duckMapper;

public void setDuckMapper(DuckMapper duckMapper) {

this.duckMapper = duckMapper;

}

public List select() {

return duckMapper.select();

}

public int insert(Duck duck) {

return duckMapper.insert(duck);

}

public int update(Duck duck) {

return duckMapper.update(duck);

}

public int delete(String id) {

return duckMapper.delete(id);

}

public List selectByLike(String keyWords) {

return duckMapper.selectByLike(keyWords);

}

public List selectByRange(Map<String, Object> map) {

return duckMapper.selectByRange(map);

}

public Duck selectOne(String id) {

return duckMapper.selectOne(id);

}

}

配置web.xml实现DispatchServlet和过滤器


<?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”>

springmvc

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:application-context.xml

1

springmvc

/

encooding

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

encooding

/*

controller


package com.duck.controller;

import com.duck.pojo.Duck;

import com.duck.service.DuckService;

import com.duck.util.IDUtil;

import com.duck.util.Time;

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 javax.servlet.http.HttpServletRequest;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

/**

  • Created with IntelliJ IDEA.

  • Description: If you don’t work hard, you will a loser.

  • User: Listen-Y.

  • Date: 2020-11-06

  • Time: 14:44

*/

@Controller

@RequestMapping(“/duck”)

public class DuckController {

private final DuckService duckService;

public DuckController(@Qualifier(“duckService”) DuckService duckService) {

this.duckService = duckService;

}

//展示所有鸭子

@RequestMapping(“/all”)

public String getAllDuck(Model model) {

List list = duckService.select();

model.addAttribute(“list”, list);

return “allDuck”;

}

//删除鸭子

@RequestMapping(“/delete”)

public String delete(String duckID) {

duckService.delete(duckID);

return “redirect:/duck/all”;

}

//修改鸭子

@RequestMapping(“/update/{duckID}/{key}”)

public String update(Duck duck, @PathVariable String duckID, @PathVariable int key, Model model) {

if (key == 1) {

Duck duck1 = duckService.selectOne(duckID);

model.addAttribute(“duck”, duck1);

return “updateDuck”;

}

duckService.update(duck);

return “redirect:/duck/all”;

}

//模糊查找鸭子

@RequestMapping(“/like”)

public String like(String keyWords, Model model) {

List list = duckService.selectByLike(“%” + keyWords + “%”);

if (list.size() == 0) {

model.addAttribute(“ERROR”, “未找到”);

} else {

model.addAttribute(“list”, list);

}

return “allDuck”;

}

//增加一个鸭子

@RequestMapping(“/add/{key}”)

public String add(Duck duck, @PathVariable int key) {

if ( key == 1) {

//只需进行跳转

return “addDuck”;

}

duck.setId(IDUtil.getID());

duck.setBirthday(Time.getTime());

duckService.insert(duck);

return “redirect:/duck/all”;

}

//范围查找鸭子

@RequestMapping(“/range/{key}”)

public String range(@PathVariable int key, HttpServletRequest request, Model model) {

if (key == 1) {

return “range”;

} else {

String minHeight = request.getParameter(“minHeight”);

String maxHeight = request.getParameter(“maxHeight”);

String minWeight = request.getParameter(“minWeight”);

String maxWeight = request.getParameter(“maxWeight”);

System.out.println(“***” + minHeight + “,” + maxHeight + “,” + minWeight + “,” + maxWeight);

Map<String, Object> map = new HashMap<String, Object>();

if (!(minHeight == null) && !minHeight.equals(“”)) {

map.put(“minHeight”, minHeight);

}

if (!(maxHeight == null) && !maxHeight.equals(“”)) {

map.put(“maxHeight”, maxHeight);

}

if (!(minWeight == null) && !minWeight.equals(“”)) {

map.put(“minWeight”, minWeight);

}

if (!(maxWeight == null) && !maxWeight.equals(“”)) {

map.put(“maxWeight”, maxWeight);

}

List list = duckService.selectByRange(map);

model.addAttribute(“list”, list);

return “allDuck”;

}

}

}

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

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

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

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

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

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

img

最后

文章中涉及到的知识点我都已经整理成了资料,录制了视频供大家下载学习,诚意满满,希望可以帮助在这个行业发展的朋友,在论坛博客等地方少花些时间找资料,把有限的时间,真正花在学习上,所以我把这些资料,分享出来。相信对于已经工作和遇到技术瓶颈的朋友们,在这份资料中一定都有你需要的内容。

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

List list = duckService.selectByRange(map);

model.addAttribute(“list”, list);

return “allDuck”;

}

}

}

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

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

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

[外链图片转存中…(img-P4bga4Pk-1713421284279)]

[外链图片转存中…(img-uGi8bKk2-1713421284279)]

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

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

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

img

最后

文章中涉及到的知识点我都已经整理成了资料,录制了视频供大家下载学习,诚意满满,希望可以帮助在这个行业发展的朋友,在论坛博客等地方少花些时间找资料,把有限的时间,真正花在学习上,所以我把这些资料,分享出来。相信对于已经工作和遇到技术瓶颈的朋友们,在这份资料中一定都有你需要的内容。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值