SSM框架整合(十五)上

简介: SSM框架整合(十五)

一. SSM框架的整合

SSM 框架, 指的是 Spring+SpringMVC+MyBatis 框架。


其中, Spring的知识可以 参考老蝴蝶以前的文章,Spring的"两个蝴蝶飞,你好"的简单开发(一)


MyBatis也可以参考老蝴蝶以前的文章: MyBatis的简单了解(一)


SSM的整合,是在以前的基础之上,进行整合的,不对以前的知识进行讲解。


SSM的整合,也是跟以前SSH的整合一样,两两整合。 但SpringMVC是Spring框架的一部分,所以SpringMVC与Spring框架不需要整合。


所以,直接 Spring与MyBatis进行整合即可。


整合SSM 实现 REST 风格的CRUD操作。


二. SSM框架整合的详细步骤


二.一 新建一个动态的Web项目,名称为SSM, 选择2.5版本的


二.二 在src下创建包,在SSM项目下创建 config 的源文件夹


src 下创建的包分别为 : com.yjl.pojo, com.yjl.mapper, com.yjl.service, com.yjl.service.impl, com.yjl.action, com.yjl.utils , 来放置代码


创建源文件夹为 config, 来放置 配置文件


20190910123142443.png


二.三 创建mybatis 数据库,里面创建 user表。 以user表为例进行整合


User的 字段有 ,id,name,sex,age,description, id为Integer,自动增长,主键。


20190910123158194.png


数据有:


20190910123204939.png


二.四 导入SSM 需要的整合Jar包


1 . MyBatis 所需要的Jar包


20190910123229460.png


共15个。


2 . Spring+SpringMVC所需要的 jar包


20190910123210974.png


共 25个


3 . JSTL模板类 库,有两个


20190910123253301.png


4 . 数据库连接池 C3P0所需要的 jar包 或者是dbcp 所需要的jar包。 用dbcp吧,区别于SSH. 有两个


20190910123258707.png


5 . mysql 数据库的驱动 1个。


20190910123303386.png


6 . MyBatis与 Spring整合所需要的jar包 由MyBatis提供, 注意版本,选择1.3版本的。 1个。


20190910123322834.png


将这些jar 包放置在 WEB-INF 下面的lib文件夹下。


共有 16+25+2+2+1+1= 46个。


导入之后, 发现 commons-logging-1.2.jar 包 重复,(Spring与MyBatis都有),去除一个。


log4j.jar 有两个版本, log4j-1.2.17.jar(MyBatis的), log4j-1.2.16.jar(Spring的),去除低版本的,保留 1.2.17


故最后只剩下 44个 jar包。


20190910123337201.png


二.五 源文件夹 config下创建 db.properties 文件,来存储数据库的连接配置


db.properties:


##关于数据库的属性
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8
jdbc.username=root
jdbc.password=abc123
## 关于数据库连接池的属性
jdbc.maxActive=30
jdbc.maxIdle=5


在数据库前面加上前缀, jdbc,避免直接 url,username 与spring中的属性重复。


二.六 源文件夹config 下创建log4j.properties, 来存储日志信息


log4j.properties


### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger=debug, stdout


二.七 源文件夹 config下创建 mybatis文件夹,下面再创建 SqlMapConfig.xml 文件,存储MyBatis的配置


二.八 config下创建spring的文件夹,下面再创建 spring的配置文件


如 applicationContext-dao.xml(Spring与dao的整合) , applicationContext-service.xml(Spring与Service的整合), springmvc.xml (SpringMVC的配置文件)


创建之后, config 源文件夹下的目录如下所示:


2019091012334890.png


上面是配置基本的文件,还没有到真正开始呢。 现在,才正式进入配置。


二.九 利用MyBatis的逆向工程来生成 user 表的逆向代码


MyBatis的逆向工程,可以观看老蝴蝶写的文章: MyBatis逆向工程的使用(十二)


逆向工程执行之后 ,会生成 User.java, UserExample.java, UserMapper.java, UserMapper.xml 文件。


将 User.java,UserExample.java 复制到 com.yjl.pojo 包下, 将UserMapper.java, UserMapper.xml 复制到 com.yjl.mapper 包下。


在MyBatis中添加分页查询的功能, 关于MyBatis的分页,可以观看老蝴蝶以前写的文章: MyBatis的pageHelper分页插件的使用(十五)


需要在UserExample, UserMapper.java, UserMapper.xml 中添加分页的功能代码。


故需要对其进行稍微的改变。


改变后的文件如下:


User.java


package com.yjl.pojo;
import java.io.Serializable;
public class User implements Serializable{
  private static final long serialVersionUID = 6736354022794444729L;
  private Integer id;
    private String name;
    private Integer age;
    private String sex;
    private String description;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }
    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 == null ? null : sex.trim();
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description == null ? null : description.trim();
    }
  @Override
  public String toString() {
    return "User [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + ", description=" + description
        + "]";
  }
}


UserExample.java


package com.yjl.pojo;
import java.util.ArrayList;
import java.util.List;
public class UserExample {
    protected String orderByClause;
    protected boolean distinct;
    //添加两个字段,用于分页。
    private int start;  //开始的位置
    private int offset; //每页显示的最大数目
    public int getStart() {
    return start;
  }
  public void setStart(int start) {
    this.start = start;
  }
  public int getOffset() {
    return offset;
  }
  public void setOffset(int offset) {
    this.offset = offset;
  }
  // .... 省略逆向工程生成的代码, 主要是太多了,老蝴蝶就不复制了。
}


UserMapper.java


package com.yjl.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.yjl.pojo.User;
import com.yjl.pojo.UserExample;
public interface UserMapper {
    int countByExample(UserExample example);
    int deleteByExample(UserExample example);
    int deleteByPrimaryKey(Integer id);
    int insert(User record);
    int insertSelective(User record);
    List<User> selectByExample(UserExample example);
    User selectByPrimaryKey(Integer id);
    int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example);
    int updateByExample(@Param("record") User record, @Param("example") UserExample example);
    int updateByPrimaryKeySelective(User record);
    int updateByPrimaryKey(User record);
    //根据sql语句进行相应的查询
  List<User> selectBySQL(@Param(value="limit")int limit, 
      @Param(value="offset") int offset);
}


UserMapper.xml


代码也太多了,就不复制了,在逆向工程生成的代码之上, 把 selectBySQL写出来即可。


 <!-- 分页查询 -->
   <select id="selectBySQL" resultMap="BaseResultMap" parameterType="com.yjl.pojo.UserExample" >
    select
    <include refid="Base_Column_List" />
    from user
    limit #{limit},#{offset}
  </select>


样式为:


20190910123400295.png

相关文章
|
6月前
|
Java
SSM框架整合
SSM框架整合
46 3
|
3月前
|
Java 数据库连接 Maven
手把手教你如何搭建SSM框架、图书商城系统案例
这篇文章是关于如何搭建SSM框架以及实现一个图书商城系统的详细教程,包括了项目的配置文件整合、依赖管理、项目结构和运行效果展示,并提供了GitHub源码链接。
手把手教你如何搭建SSM框架、图书商城系统案例
|
5月前
|
JSON 前端开发 Java
手把手整合SSM框架2
手把手整合SSM框架
67 0
|
5月前
|
Java 数据库连接 Maven
手把手整合SSM框架1
手把手整合SSM框架
69 0
|
3月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
3月前
|
Java 数据库连接 Maven
SSM框架整合图书管理项目
这篇文章是关于SSM框架整合到图书管理项目的详细教程,涵盖了从Maven项目构建、依赖导入、数据库连接、配置文件编写、实体类和接口实现到SpringMVC整合的完整步骤。
SSM框架整合图书管理项目
|
2月前
|
XML Java 数据库连接
如何搭建SSM框架、图书商城系统
这是一份详尽的《Spring + SpringMVC + Mybatis 整合指南》,作者耗时良久整理出约五万字的内容,现已经全部笔记公开。此文档详细地介绍了如何搭建与整合SSM框架,具体步骤包括创建Maven项目、添加web骨架、配置pom文件以及整合Spring、SpringMVC和Mybatis等。无论是对初学者还是有一定基础的开发者来说,都是很好的学习资源。此外,作者还提供了项目源码的GitHub链接,方便读者实践。虽然当前主流推荐学习SpringBoot,但了解SSM框架仍然是不可或缺的基础。
34 0
|
3月前
|
Java 数据库
使用ssm框架搭建的图书管理系统
本文介绍了使用SSM框架搭建的图书管理系统,包括图书信息管理、借阅记录管理、公告管理、出入库管理以及用户管理等功能。
使用ssm框架搭建的图书管理系统
|
5月前
|
SQL 前端开发 Java
基于SSM框架的教务系统
基于SSM框架的教务系统
51 2
基于SSM框架的教务系统
|
5月前
|
Java
SSM框架Controller层可以做什么
SSM框架Controller层可以做什么
下一篇
无影云桌面