14.SSM整合
admin
2024-04-04 21:25:14
0

一:ContextLoaderListener

Spring提供了监听器ContextLoaderListener,实现ServletContextListener接口,可监听 ServletContext的状态,在web服务器的启动,读取Spring的配置文件,创建Spring的IOC容器。web 应用中必须在web.xml中配置

    org.springframework.web.context.ContextLoaderListenercontextConfigLocationclasspath:spring.xml

二:准备工作

①创建Maven Module

②导入依赖

    war5.3.23org.springframeworkspring-context${spring.version}org.springframeworkspring-beans${spring.version}org.springframeworkspring-web${spring.version}org.springframeworkspring-webmvc${spring.version}org.springframeworkspring-jdbc${spring.version}org.springframeworkspring-aspects${spring.version}org.springframeworkspring-test${spring.version}org.mybatismybatis3.5.11org.mybatismybatis-spring2.0.6com.alibabadruid1.0.9junitjunit4.12testmysqlmysql-connector-java8.0.29log4jlog4j1.2.17com.github.pagehelperpagehelper5.2.0ch.qos.logbacklogback-classic1.2.3javax.servletjavax.servlet-api3.1.0providedcom.fasterxml.jackson.corejackson-databind2.12.1commons-fileuploadcommons-fileupload1.3.1org.thymeleafthymeleaf-spring53.0.12.RELEASE

三:配置web.xml

    CharacterEncodingFilterorg.springframework.web.filter.CharacterEncodingFilterencodingUTF-8forceEncodingtrueCharacterEncodingFilter/*HiddenHttpMethodFilterorg.springframework.web.filter.HiddenHttpMethodFilterHiddenHttpMethodFilter/*SpringMVCorg.springframework.web.servlet.DispatcherServletcontextConfigLocationclasspath:springmvc.xml1SpringMVC/org.springframework.web.context.ContextLoaderListenercontextConfigLocationclasspath:spring.xml

四:创建SpringMVC的配置文件并配置

    

五:搭建MyBatis环境

①创建属性文件jdbc.properties

jdbc.driver=com.mysql.cj.jdbc
jdbc.url=jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC
jdbc.username=root
jdbc.password=abc123

②创建MyBatis的核心配置文件mybatis-config.xml

    

③创建Mapper接口和映射文件 

public interface EmployeeMapper {
}

④创建日志文件log4j.xml




六:创建Spring的配置文件并配置

    

七:测试功能

①创建组件

实体类Employee

public class Employee {private Integer empId;private String empName;private Integer age;private String sex;private String email;public Employee() {}public Employee(Integer empId, String empName, Integer age, String sex, String email) {this.empId = empId;this.empName = empName;this.age = age;this.sex = sex;this.email = email;}public Integer getEmpId() {return empId;}public void setEmpId(Integer empId) {this.empId = empId;}public String getEmpName() {return empName;}public void setEmpName(String empName) {this.empName = empName;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}@Overridepublic String toString() {return "Employee{" +"empId=" + empId +", empName='" + empName + '\'' +", age=" + age +", sex='" + sex + '\'' +", email='" + email + '\'' +'}';}
}

创建控制层组件EmployeeController

/*** 查询所有的员工信息-->/employee-->get* 根据id查询员工信息-->/employee/1-->get* 跳转到添加页面-->/to/add-->get* 添加员工信息-->/employee-->post* 修改员工信息-->/employee-->put* 删除员工信息-->/employee/1-->delete*/
@Controller
public class EmployeeController {@Autowiredprivate EmployeeService employeeService;@RequestMapping(value = "/employee",method = RequestMethod.GET)public String getAllEmployee(Model model){//查询所有的员工信息List list = employeeService.getAllEmployee();//将员工信息在请求域中共享model.addAttribute("list",list);//跳转到employee_list.htmlreturn "employee_list";}
}

创建接口EmployeeService

public interface EmployeeService {/*** 查询所有的员工信息* @return*/List getAllEmployee();
}

创建实现类EmployeeServiceImpl

@Service
@Transactional
public class EmployeeServiceImpl implements EmployeeService {@Autowiredprivate EmployeeMapper employeeMapper;@Overridepublic List getAllEmployee() {return employeeMapper.getAllEmployee();}
}

在Mapper接口中添加方法

public interface EmployeeMapper {/*** 查询所有的员工信息* @return*/List getAllEmployee();
}

 在Mapper配置文件中写我们需要操作的sql语句

②创建页面

index.html

index.html

查询所有的员工信息

employee_list.html

    
流水号员工姓名年龄性别邮箱操作
删除修改

③访问测试分页功能

controller层方法:

    @RequestMapping(value = "/employee/page/{pageNum}",method = RequestMethod.GET)public String getEmployeePage(@PathVariable("pageNum") Integer pageNum,Model model) {//获取员工的分页信息PageInfo page = employeeService.getEmployeePage(pageNum);//将分页数据共享到请求域中model.addAttribute("page",page);//跳转到employee_list.htmlreturn "employee_list";}

 service接口以及实现类

    /*** 获取员工的分页信息* @param pageNum* @return*/PageInfo getEmployeePage(Integer pageNum);
    @Overridepublic PageInfo getEmployeePage(Integer pageNum) {//开启分页功能PageHelper.startPage(pageNum,4);//查询所有的员工信息List list = employeeMapper.getAllEmployee();//获取分页相关数据PageInfo page = new PageInfo<>(list,5);return page;}

首页,index.html 

index.html

查询所有的员工信息

employee_list.html



员工列表


流水号员工姓名年龄性别邮箱操作
删除修改

相关内容

热门资讯

亚朵节后价格“跳水”超70% 春节过后,部分热门小城的亚朵酒店房价上演“过山车”行情,房价节前飙升,节后迅速跳水,巨大的价格波动引...
原创 金... 你绝对想不到,同样一克999足金,在深圳水贝批发市场只要1334元,走进周大福门店却变成1545元,...
德兰明海冲击港交所!递表前大手... 又一家储能企业“叩响”了港交所大门。近期,港交所官网显示,中小型用户侧储能企业深圳市德兰明海新能源股...
绿茶集团、猫眼娱乐发布正面盈利... |2026年2月25日 星期三| NO.1绿茶集团发布正面盈利预告 2月24日港股收市后,绿茶集团(...
安宁市的历史文化及名人有哪些 安宁市,这座坐落在彩云之南的城市,宛如一颗璀璨明珠,散发着迷人的历史文化魅力。在这里,岁月留下了深深...
中国央行连续12个月加量续作M... 来源:中国新闻网 中新社北京2月24日电 (陶思阅)中国央行24日发布中期借贷便利(MLF)招标公告...
不是15%?特朗普10%全球关... 据美国海关及边境保卫局(CBP)发布消息,特朗普政府将实施的新全球关税为10%。 第一财经收到的CB...
2026年春节出游人次、消费金... 2026年春节,为期9天的超长假期点燃了全国消费热情,多项核心数据创下历史纪录。 经文化和旅游部数据...
美国联邦存款保险公司(FDIC... 美国联邦存款保险公司(FDIC):美国银行业存款季环比下滑2%。
2026春节AI大战深度复盘:... 主编温静导读:2026年春节,元宝、千问、豆包三大巨头以红包、免单为杠杆,发动了一场规模空前的用户争...
期市节后首日金属板块普涨 白银... 本报记者 王宁 2月24日,春节后的首个交易日,国内期货市场呈现涨多跌少态势。 从板块表现来看,农产...
月跌超10%背后:软件行业,将... 此前一天,2月23日,人工智能公司Anthropic宣布,其Claude Code工具可用于在IBM...
公告精选 |《飞驰人生3》票房... 控制权收购 东阳光(600673.SH):公司正在筹划通过发行股份的方式收购宜昌东数一号投资有限责任...
东阳光:筹划收购东数一号控制权... 上证报中国证券网讯(记者 骆民)东阳光公告,公司正在筹划通过发行股份的方式收购宜昌东数一号投资有限责...
原创 高... 你有没有发现,几年前人人都在拼命买房,而现在,越来越多人开始思考,房子,到底还是不是财富? 这几年,...
这个春节,中国经济热力值拉满 2026年的春节,注定要在中国消费市场上留下浓墨重彩的一笔。 当9天的超长假期遇上持续加码的政策红利...
2026年中国汽车产业十大趋势... 2025年,中国汽车产业在连续17年产销量稳居全球第一的基础上,再次交出了一份充满变革与挑战的答卷。...
2022年天猫烘焙厨电行业趋势... 今天分享的是:2022年天猫烘焙厨电行业趋势白皮书 报告共计:7页 烘焙厨电迎来新变革:从“功能单一...