(续)SSM整合之SSM整合笔记(Spring整合MyBatis)(P179-188)
创始人
2024-02-10 18:49:09
0

一   准备工作

 

1 新建模块ssm    com.atguigu.ssm

2 导入依赖

war5.3.1
org.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.7org.mybatismybatis-spring2.0.6com.alibabadruid1.0.9junitjunit4.12testmysqlmysql-connector-java8.0.16log4jlog4j1.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

 

3 . 转web

4 . 创建表

配置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的配置文件并配置

springmvc.xml 


spring.xml


四 .创建控制层EmployeeController

package com.atguigu.ssm.controller;/*** 查询所有的员工信息-->/employee-->get* 查询员工的分页信息-->/employee/page/1-->get* 根据id查询员工信息-->/employee/1-->get* 跳转到添加页面-->/to/add-->get* 添加员工信息-->/employee-->post* 修改员工信息-->/employee-->put* 删除员工信息-->/employee/1-->delete*/
@Controller
public class EmployeeController {}

五   index.html



首页


index.html

六  测试

 七  创建service

1  创建service接口EmployeeService

package com.atguigu.ssm.service;public interface EmployeeService {}

2 创建service实现类EmployeeServiceImpl

package com.atguigu.ssm.service.impl;
import com.atguigu.ssm.service.EmployeeService;
import org.springframework.stereotype.Service;@Service
public class EmployeeServiceImpl implements EmployeeService {}

八  创建jdbc.properties

 

 

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

九  spring.xml


十  SSM整合之Spring整合MyBatis

1 .mybatis-config.xml



2   mapper的接口 EmployeeMapper

package com.atguigu.ssm.mapper;public interface EmployeeMapper {}

3   mapper的接口所对应的映射文件


4 .spring.xml

普通工厂和工厂bean的区别

普通工厂:如果是一个普通的工厂 然后我们把工厂配置到IOC容器中  要先获取IOC 在获取工厂的bean  然后在通过工厂获得工厂所提供的对象

工厂bean:  可以省略一个获取工厂的步骤  我们可以直接获取工厂所提供的对象

所以我们当前把SqlSessionFactoryBean配置到IOC容器中之后  就可从IOC容器直接获取到SqlSessionFactory对象

    
配置好SqlSessionFactoryBean后  就可以直接装配sqlSessionFactory对象

 删除mybatis-config.xml里面的数据源和引入实体所在的包  最后变成如下


5. 创建实体类pojo

package com.atguigu.ssm.pojo;public class Employee {private Integer empId;private String empName;private Integer age;private String gender;private String email;public Employee() {}public Employee(Integer empId, String empName, Integer age, String gender, String email) {this.empId = empId;this.empName = empName;this.age = age;this.gender = gender;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 getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}@Overridepublic String toString() {return "Employee{" +"empId=" + empId +", empName='" + empName + '\'' +", age=" + age +", gender='" + gender + '\'' +", email='" + email + '\'' +'}';}
}

6 . spring.xml


7 .创建日志文件log4j.xml


十 一   SSM整合之员工列表功能

1 书写控制层EmployeeController

查询完信息要把它展示在页面上  所以我们要把它共享到域对象中 
package com.atguigu.ssm.controller;
import com.atguigu.ssm.pojo.Employee;
import com.atguigu.ssm.service.EmployeeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;import java.util.List;/*** Date:2022/7/11* Author:ybc* Description:* 查询所有的员工信息-->/employee-->get* 查询员工的分页信息-->/employee/page/1-->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";}}

2   在接口里面写方法

package com.atguigu.ssm.service;import com.atguigu.ssm.pojo.Employee;import java.util.List;public interface EmployeeService {/*** 查询所有的员工信息* @return*/List getAllEmployee();
}

3 写实现类 

package com.atguigu.ssm.service.impl;@Service
public class EmployeeServiceImpl implements EmployeeService {@Autowiredprivate EmployeeMapper employeeMapper;@Overridepublic List getAllEmployee() {return employeeMapper.getAllEmployee();}
}

 

3 在mapper接口里面创建方法  查询所有员工的方法

package com.atguigu.ssm.mapper;import com.atguigu.ssm.pojo.Employee;import java.util.List;public interface EmployeeMapper {/*** 查询所有的员工信息* @return*/List getAllEmployee();
}

这里面不用写实现类  因为是mapper  主需要根据mapper接口的方法在所对应的映射文件创建他的sql语句就可以  

4  . 根据mapper接口的方法在所对应的映射文件EmployeeMapper.xml里面创建他的sql语句


5.  创建employee_list.html



员工列表


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

6 .index.html



首页


index.html

查询员工的分页信息

7 .测试

 

十二   SSM整合之展示数据

1 写控制层

    @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";}

2 .  写接口  方法   获取员工的信息

    /*** 获取员工的分页信息* @param pageNum* @return*/PageInfo getEmployeePage(Integer pageNum);

 3 实现类

 

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

4  index.html



首页


index.html

查询员工的分页信息

5 employee_list.html



员工列表


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

6  测试

 

 

十三  SSM整合设置分页相关超链接

1.  employee_list.html



员工列表


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

2 .测试

3  回顾   分页插件

limit index,pageSize

pageSize:每页显示的条数

pageNum:当前页的页码

index:当前页的起始索引,index=(pageNum-1)*pageSize

count:总记录数

totalPage:总页数

totalPage = count / pageSize;

if(count % pageSize != 0){

totalPage += 1; }

pageSize=4,pageNum=1,index=0 limit 0,4

pageSize=4,pageNum=3,index=8 limit 8,4

pageSize=4,pageNum=6,index=20 limit 8,4

首页 上一页 2 3 4 5 6 下一页 末页

 

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...