IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> SSM整合 -> 正文阅读

[Java知识库]SSM整合

SSM整合

  • spring和mybatis整合

    • domain
    @Setter@Getter
    public class User {
        private Integer id;
        private String uname;
        private String upwd;
    
        public User() {
        }
    
        public User(Integer id, String uname, String upwd) {
            this.id = id;
            this.uname = uname;
            this.upwd = upwd;
        }
        
        @Override
        public String toString() {
            return "User{" +
                    "id=" + id +
                    ", uname='" + uname + '\'' +
                    ", upwd='" + upwd + '\'' +
                    '}';
        }
    }
    
    • mapper

    UserMapper

    public interface UserMapper {
        List<User> selectUsers();
    }
    

    UserMapper.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.zhj.mapper.UserMapper">
        <select id="selectUsers" resultType="User">
            select *
            from user
        </select>
    </mapper>
    
    • service

    IUserService

    public interface IUserService {
        List<User> getUsers();
    }
    

    UserService

    @Service
    public class UserService implements IUserService {
    
        @Resource
        private UserMapper userMapper;
    
        @Override
        public List<User> getUsers() {
            List<User> users = userMapper.selectUsers();
            return users;
        }
    }
    
    • applicationContext

      <?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:tx="http://www.springframework.org/schema/tx"
             xmlns:aop="http://www.springframework.org/schema/aop"
      
             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/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
      ">
          <!--1 扫描组件-->
          <context:component-scan base-package="com.zhj"/>
      
          <!--2 导入jdbc.properties-->
          <context:property-placeholder location="classpath:jdbc.properties"/>
          <!--3 创建数据源对象-->
          <bean id="getDataSourcePool" class="com.mchange.v2.c3p0.ComboPooledDataSource">
              <property name="driverClass" value="${jdbc.driver}"/>
              <property name="jdbcUrl" value="${jdbc.url}"/>
              <property name="user" value="${jdbc.username}"/>
              <property name="password" value="${jdbc.password}"/>
          </bean>
          <!--4 创建 SqlSessionFactory-->
          <bean id="getSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
              <property name="dataSource" ref="getDataSourcePool"/>
              <property name="configLocation" value="classpath:mybatis-config.xml"/>
          </bean>
      
          <!--5 去掉dao层-->
          <!--扫描mapper文件 生成对象 替代之前的dao层操作 生成mapper接口的代理对象-->
          <bean id="getMapper" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
              <property name="basePackage" value="com.zhj.mapper"/> <!--读取mapper层mapper.xml的文件-->
          </bean>
      
          <!--6 事务管理器-->
          <bean id="txManager"
                class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
              <property name="dataSource" ref="getDataSourcePool"/>
          </bean>
          <!--支持事务注解-->
          <tx:annotation-driven transaction-manager="txManager"/>
      
      
      </beans>
      
      • jdbc.properties
      jdbc.driver=com.mysql.jdbc.Driver
      jdbc.url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf8
      jdbc.username=root
      jdbc.password=******
      
      • mybaitis-config.xml
      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE configuration
              PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
              "http://mybatis.org/dtd/mybatis-3-config.dtd">
      <configuration>
      
          <!--1 设置打印日志信息-->
          <settings>
              <setting name="logImpl" value="STDOUT_LOGGING"/>
          </settings>
          <!--2 设置别名-->
          <typeAliases>
              <package name="com.zhj.domain"/>
          </typeAliases>
          <!--3 连接 数据库配置-->
      <!--    <environments default="mysql">-->
      <!--        <environment id="mysql">-->
      <!--            <transactionManager type="JDBC"/>-->
      <!--            <dataSource type="POOLED">-->
      <!--                <property name="driver" value="com.mysql.jdbc.Driver"/>-->
      <!--                <property name="url"-->
      <!--                          value="jdbc:mysql://localhost:3306/ssm?useUnicode=true&amp;characterEncoding=utf-8"/>-->
      <!--                <property name="username" value="root"/>-->
      <!--                <property name="password" value="034312"/>-->
      <!--            </dataSource>-->
      <!--        </environment>-->
      <!--    </environments>-->
          <!--4 设置mapper文件-->
          <mappers>
              <mapper resource="com/zhj/mapper/UserMapper.xml"/>
          </mappers>
      </configuration>
      

      测试:

      @RunWith(SpringJUnit4ClassRunner.class)
      @ContextConfiguration("classpath:applicationContext.xml")
      public class UserTest {
          @Autowired
          private IUserService userService;
      
          @Test
          public void test1(){
              System.err.println(userService.getUsers());
          }
      }
      
  • 加入加入整合springmvc

    • springmvc.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:p="http://www.springframework.org/schema/p"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           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/p http://www.springframework.org/schema/p/spring-p.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">
        <!--1 配置 扫描控制层在哪个包-->
        <context:component-scan base-package="com.zhj.controller"/>
        <!--2 配置 视图解析解析器中的前缀和后缀-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <!-- 设置前缀-->
            <property name="prefix" value="/WEB-INF/"/>
    
            <!-- 设置后缀-->
            <property name="suffix" value=".jsp"/>
        </bean>
        <mvc:annotation-driven/>
        <!--3 设置静态文件-->
        <!--    <mvc:resources mapping="static/**" location="static/"/>-->
        <!--4 上传文件 配置 MultipartResolver -->
        <bean id="multipartResolver"
              class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <property name="defaultEncoding" value="UTF-8"/>
            <property name="maxUploadSize" value="5242880"/>
            <!--        <property name="uploadTempDir" value="static/temp"/>-->
            <property name="resolveLazily" value="true"/>
    
        </bean>
    
    </beans>
    
    • 配置web.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
             version="2.5">
        <display-name>SSM-DEMO</display-name>
        <!-- 1 监听器配置    -->
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </context-param>
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
        <!-- 2 前端过滤器 转换乱码 -->
        <filter>
            <filter-name>CharacterEncodingFilter</filter-name>
            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
            <init-param>
                <param-name>encoding</param-name>
                <param-value>UTF-8</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>CharacterEncodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        <servlet>
            <!-- 3 加入前端控制器 frontController -->
            <servlet-name>frontController</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <!--设置前端控制器参数-->
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:springmvc.xml</param-value>
            </init-param>
            <!--1 启动服务器时再加载-->
            <!--0 使用时再加载-->
            <load-on-startup>1</load-on-startup>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>frontController</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    </web-app>
    

    index.jsp

    <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
    <!DOCTYPE html>
    <html>
    <head>
        <title>JSP - Hello World</title>
    </head>
    <body>
    <h1><%= "Hello World!" %>
        <a href="UserController/selectUsers">查看所有用户</a>
    </body>
    </html>
    

    UserController

    @Controller
    @RequestMapping("/UserController")
    public class UserController {
    
        @Autowired
        private IUserService userService;
    
        @RequestMapping("selectUsers")
        public ModelAndView selectUsers(){
            List<User> users = userService.getUsers();
            ModelAndView modelAndView = new ModelAndView();
            modelAndView.addObject("users", users);
            modelAndView.setViewName("success");
            System.out.println(users);
            return modelAndView;
        }
    }
    

    success.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    显示页面
    <c:forEach items="${users}" var="user">
        ${user.toString()} <br>
    </c:forEach>
    </body>
    </html>
    
  • 分页查询

    1. 导入jar包 : pagehelper 导入5 之后版本哦

    2. 配置分页拦截器

      在mybatis-config.xml中配置

    <plugins>
        <plugin interceptor="com.github.pagehelper.PageHelper"></plugin>
    </plugins>
    
    1. 在service层添加一个分页方法
    @Override
    public PageInfo<User> getUsersByPage(int pageIndex, int pageSize) {
        // 开启分页
        PageHelper.startPage(pageIndex,pageSize);
        // 调用查询方法
        List<User> users = userMapper.selectUsers();
        // 组装PageInfo对象返回    
        PageInfo<User> userPageInfo = new PageInfo<>(users);
        return userPageInfo;
    }
    
    1. Index.jsp
    <a href="UserController/selectUsersByPage">分页查询</a>
    
    1. controller
    @Controller
    @RequestMapping("/UserController")
    public class UserController {
      @Autowired
          private IUserService userService; 
    
      @RequestMapping("selectUsersByPage")
          public ModelAndView selectUsersByPage(){
              PageInfo<User> usersByPage = userService.getUsersByPage(1, 3);
              ModelAndView modelAndView = new ModelAndView();
              modelAndView.addObject("users", usersByPage);
              modelAndView.setViewName("success");
      //        System.out.println(users);
              return modelAndView;
          }
    }
    

    6.success

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%String baseurl = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getServletContext();
        pageContext.setAttribute("baseurl",baseurl);%>
    <html>
    <head>
        <base href="${baseurl}">
        <title>Title</title>
    </head>
    <body>
    显示页面
    <c:forEach items="${usersPage.list}" var="item">
        ${item}
    </c:forEach>
    <c:forEach var="i" begin="1" end="${usersPage.size}"   >
        ${i}
        <a href="${baseurl}/UserController/selectUsersByPage?pageIndex=${i}">${i}</a>
    </c:forEach>
    </body>
    </html>
    
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:40:39  更:2021-08-02 10:42:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年3日历 -2025/3/4 3:25:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码