前言

前面已经介绍Spring和Mybatis整合,而本篇介绍在IDEA下Spring、Spring MVC、Mybatis(SSM)三个框架的整合,在阅读本篇之前,建议大家先去了解一下Spring、Spring MVC、Mybatis(三大框架基础入门传送门),会达到事半功倍的效果。至于Spring MVC相对于Servlet、JSP的优点这里就不累赘了,大家可以上网查阅相关资料。本篇注重整合思路、整合过程以及整合过程中出现的坑。

项目目录

添加依赖包

pom.xml:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

ddnd

ddnd

1.0-SNAPSHOT

4.2.5.RELEASE

org.mybatis

mybatis

3.4.6

org.mybatis

mybatis-spring

1.3.2

mysql

mysql-connector-java

8.0.13

org.springframework

spring-core

${spring.version}

org.springframework

spring-web

${spring.version}

org.springframework

spring-oxm

${spring.version}

org.springframework

spring-tx

${spring.version}

org.springframework

spring-jdbc

${spring.version}

org.springframework

spring-webmvc

${spring.version}

org.springframework

spring-context

${spring.version}

org.springframework

spring-context-support

${spring.version}

org.springframework

spring-aop

${spring.version}

org.springframework

spring-test

${spring.version}

复制代码

创建数据库和数据表

本文中使用Mysql,为了演示方便,仅创建个简单的数据库spring,还有数据表user。数据表创建SQL代码。

CREATE TABLE `user` (

`id` int(10) unsigned NOT NULL AUTO_INCREMENT,

`email` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,

`password` varchar(191) COLLATE utf8mb4_unicode_ci NOT NULL,

PRIMARY KEY (`id`),

UNIQUE KEY `users_email_unique` (`email`)

) ENGINE=InnoDB AUTO_INCREMENT=240 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

复制代码

新建数据库对应的实体类

为了实现与数据库中的user表进行关系映射,这里新建一个User类:User.java

package cn.ddnd.www.Entity;

public class User {

int id;

String email;

String password;

public void setId(int id) {

this.id = id;

}

public int getId() {

return id;

}

public void setPassword(String password) {

this.password = password;

}

public void setEmail(String email) {

this.email = email;

}

public String getPassword() {

return password;

}

public String getEmail() {

return email;

}

}

复制代码

新建Mapper.xml文件和Mapper接口(Dao层)

这里注意Mapper.xml文件名要和Mapper接口的名字相同

1.Mapper接口:UserDao.java

package cn.ddnd.www.Dao;

import cn.ddnd.www.Entity.User;

public interface UserDao {

public User getUserByEmail(String email);

}

复制代码

这里为了测试,仅编写一个接口,即通过用户email查询到用户的信息。

Mapper.xml文件:UserDao.xml

/p>

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

select * from user where email = #{email}

复制代码

这里需要注意用一下:我们使用的是IDEA,而IDEA默认是不编译main/src/java目录下的xml文件的,即在编译的时候不会把将这些xml一块打包进classes文件,而是直接丢弃。为了解决这个问题,有两种方法,1.将xml文件都放到resources目录下。2.配置maven的pom文件。这里我就用第一种方法,将mapper.xml文件都放到resources目录。

Mybatis配置文件

Mybatis-config.xml

/p>

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

复制代码

这里为cn.ddnd.www.Entity.User这个类设置个User的别名,这样直接使用User即可使用cn.ddnd.www.Entity.User这个类。

Spring MVC配置文件

Spring-mvc.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

复制代码

这里配置个InternalResourceViewResolver解析器,prefix属性指定资源文件的前缀,因为我的资源文件就放在web目录下,所以我这个属性留空,suffix属性配置资源页面的后缀。

Spring 配置文件

前面配置完Mybatis是不是觉得配置的代码很少、很简单?这是因为Mybatis的一些配置都放在Spring中配置啦!接下来看我们Spring的配置文件。 applicationContext.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

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/context

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

复制代码

在applicationContext配置了Mybatis的数据源、SqlSessionFactory、Mapper映射器,为了简便我们选择用扫描包的方式注册。 这里需要注意一下几点:

添加mapperLocations属性:因为我们把Mapper.xml文件和Mapper接口放在了不同的目录下,所以我们需要在配置Mybatis的SqlSessionFactory时候添加一个属性mapperLocations,即指定mapper.xml文件的路径。

启动扫描JavaBean:扫描指定包下的所有JavaBean,

添加XML命名空间:xmlns:context="http://www.springframework.org/schema/context",xsi:schemaLocation="http://www.springframework.org/schema/context,不然会出现通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明的问题。

路径前添加classpath:在指定XML路径的时候,需要以classpath:文件路径的形式,不然会出现XML文件找不到的问题,因为工程编译后XML文件都是放在classes的文件夹下。

编写Service层

虽然前面已经编写了Dao层(UserDao)了,但是Dao层的工作主要是做数据持久化的,而Service层则负责业务模块的逻辑应用设计,Service调用已定义的Dao层的接口实现数据的持久化。

package cn.ddnd.www.Service;

import cn.ddnd.www.Dao.UserDao;

import cn.ddnd.www.Entity.User;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

@Service

public class Uservice {

@Autowired

UserDao userDao;

public User getUserByEmail(String email) {

return userDao.getUserByEmail(email);

}

}

复制代码

编写Controller层

package cn.ddnd.www.Controller;

import cn.ddnd.www.Entity.User;

import cn.ddnd.www.Service.Uservice;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.servlet.ModelAndView;

@Controller

public class IndexController {

@Autowired

Uservice uservice;

@RequestMapping(value = "/")

public ModelAndView Index(){

User user;

user = uservice.getUserByEmail("xue8@ddnd.cn");

return new ModelAndView("index", "user", user);

}

}

复制代码

这里自动装配Service层的Uservice,实现数据查询,查询结果将在View层显示。这里为了方便,默认查询email为xue8@ddnd.cn的用户信息。

编写View层

Created by IntelliJ IDEA.

User: xueba

Date: 2018/11/29

Time: 17:34

To change this template use File | Settings | File Templates.

--%>

SSM整合

email:${user.email}

id:${user.id}

password:${user.password}

复制代码

将查询出来的用户信息显示出来。

配置Web.xml

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">

Spring

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:*.xml

1

Spring

复制代码

在Web.xml中配置前端控制器DispatcherServlet,负责发送每个请求到合适的处理程序。

运行测试

java框架ssm_【Java】SSM框架整合 附源码相关推荐

  1. java计算机毕业设计基于Ssm学生信息管理系统源码+数据库+系统+lw文档+mybatis+运行部署

    java计算机毕业设计基于Ssm学生信息管理系统源码+数据库+系统+lw文档+mybatis+运行部署 java计算机毕业设计基于Ssm学生信息管理系统源码+数据库+系统+lw文档+mybatis+运 ...

  2. Java毕设项目在线答题系统计算机(附源码+系统+数据库+LW)

    Java毕设项目在线答题系统计算机(附源码+系统+数据库+LW) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Ecli ...

  3. JAVA计算机毕业设计校园订餐系统(附源码、数据库)

    JAVA计算机毕业设计校园订餐系统(附源码.数据库) 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(In ...

  4. JAVA计算机毕业设计网课系统(附源码、数据库)

    JAVA计算机毕业设计网课系统(附源码.数据库) 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(Inte ...

  5. JAVA计算机毕业设计漫画网站系统(附源码、数据库)

    JAVA计算机毕业设计漫画网站系统(附源码.数据库) 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(In ...

  6. JAVA计算机毕业设计快递代收系统(附源码、数据库)

    JAVA计算机毕业设计快递代收系统(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(In ...

  7. java计算机毕业设计网络游戏后台管理系统(附源码、数据库)

    java计算机毕业设计网络游戏后台管理系统(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclisp ...

  8. JAVA计算机毕业设计物料追溯系统(附源码、数据库)

    JAVA计算机毕业设计物料追溯系统(附源码.数据库) 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(In ...

  9. java计算机毕业设计购物网站设计(附源码、数据库)

    java计算机毕业设计购物网站设计(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(In ...

  10. Java毕设项目便利店库存管理计算机(附源码+系统+数据库+LW)

    Java毕设项目便利店库存管理计算机(附源码+系统+数据库+LW) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Ecl ...

最新文章

  1. 数据处理之不平衡数据过采样与下采样
  2. 吐血总结|史上最全的MySQL学习资料!!
  3. php 时间错误,PHP xdebug调试trace记录时间错误
  4. java集合表_java集合类散列表
  5. java 数据库语句_java连接各数据库的语句
  6. SpringCloud Hoxton版微服务-RestTempalte + @LoadBlanced 实现负载均衡
  7. RichEdit控件的使用(未完)
  8. jQuery中文文档
  9. python3.6_发送邮件
  10. c++ string取子串_LeetCode第三题 “无重复字符的最长子串” 从低效率到高效率
  11. AgentWeb 更加简洁优秀的webview
  12. lattice diamond 安装及获取license方法
  13. 学生用计算机计算分数,Excel案例(十三)——学生计算机成绩表
  14. 时间刻度线css,纯CSS时间轴列表
  15. wireshark提示未启动npf服务The NPF driver isn’t running You may have trouble capturing or listing interfaces
  16. 实现折叠的uitableviewcell效果
  17. Extending Air
  18. 导入依赖失败,报错信息Failed to resolve: com.*.*:*:0.0.0<a href=““>Show in Project Structure dialog
  19. ping请求超时的解决方法?
  20. 如何拍摄VR全景照片

热门文章

  1. jsp洗衣店管理系统毕业设计
  2. 日语图片怎么翻译?分享个好用的翻译方法
  3. ALV字段‘‘QUAN‘小数位全为零不显示小数位,不全为零显示小数位
  4. IQueryable与IEnumberable
  5. visio 2010里面形状的剪切、联合、组合、拆分、相交、剪除功能在这里
  6. MyBatis-Plus联表查询及分页
  7. 纸质说明书秒变3D动画,斯坦福大学吴佳俊最新研究,入选ECCV 2022
  8. (转)每个架构师都应该研究下康威定律
  9. 关于vn.py的环境配置和项目安装——各种错误一招解决
  10. vue element-ui自定义表头,动态添加表头,新增行、新增列、删除行、删除列