1.先进行思维导图的设计,设计出整体的框架结构,页面关系

2.依据导图分析数据库中的表格,利用PD设计表格,添加联系,注意主键,外键的设置

3.导出PD的SQL文件,根据文件导入navicat创建对应的表格。

4.创建一个maven的webapp的项目

5.配置ssm依赖

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" 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"><modelVersion>4.0.0</modelVersion><groupId>com.ssm</groupId><artifactId>student_system</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><spring.version>5.2.7.RELEASE</spring.version></properties>
编译器的版本要改成1.8
spring的版本写到上面,便于整体修改<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency>Spring的依赖,spring-mvc的依赖<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency>mybatis包相关整合<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.5</version></dependency>-mybatis-spring桥接包<dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>2.0.5</version></dependency></dependencies><build><finalName>student_system</finalName></build>
</project>

在编辑的时候把mapper文件给漏掉没有出现,会报Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid 错误,所以这时应该在依赖中加入以下依赖,手动导入xml文件,同时clean

静态资源导出模板<build><resources><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources>
</build>"**" 表示任意级目录
"*" 表示任意文件意思就是把所有 /src/main/java 中所有 xml 文件也打包进包中,
当使用 mybatis 这种需要写 xml 的框架的时候会要用到

以下可以删除

  <name>test_ssm01 Maven Webapp</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --><plugins><plugin><artifactId>maven-clean-plugin</artifactId><version>3.1.0</version></plugin><!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --><plugin><artifactId>maven-resources-plugin</artifactId><version>3.0.2</version></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version></plugin><plugin><artifactId>maven-surefire-plugin</artifactId><version>2.22.1</version></plugin><plugin><artifactId>maven-war-plugin</artifactId><version>3.2.2</version></plugin><plugin><artifactId>maven-install-plugin</artifactId><version>2.5.2</version></plugin><plugin><artifactId>maven-deploy-plugin</artifactId><version>2.8.2</version></plugin></plugins></pluginManagement>

6.确定项目的文件结构,创建完成一些基本文件夹

6.配置spring基本(网址比较全的applicationContext.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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"></beans>

7.配置spring-mvc.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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"></beans>

8.部署tomcat服务器

部署时要选择探索版,然后域名要简单一下,然年后选择时时更新类。

9.在web.xml中挂载spring,springmvc, 过滤器

<?xml version="1.0" encoding="UTF-8" ?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaeehttp://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"><servlet><!--  1、配置前端控制器DispatcherServlet 加载Spring-mvc.xml配置文件,否则不会载入--><servlet-name>student_system</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--    前端控制器参数--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><!--    启动时立刻加载--><load-on-startup>1</load-on-startup></servlet><!--  配置Servlet映射--><servlet-mapping><servlet-name>student_system</servlet-name><url-pattern>/</url-pattern><!--/*拦截很多,/拦截一部分--></servlet-mapping><!-- 加载spring配置文件--><!--  上下文参数--><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><!--  编码过滤器--><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><!--    spring已经写好的类--><init-param><param-name>encoding</param-name><param-value>utf-8</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>

不在这里配置,是不会挂载的,注意监听器不要写错

10.写一个测试类查看是否web.xml载入成功

在控制台打印出来,说明测试成功!

11.配置数据库信息db.properties(根据mysql-connector-java版本采用不同格式)

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/student_system?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&useSSL=false
jdbc.username=root
jdbc.password=111111注意driver格式,url的正确性,以及参数

打开Database配置好,然后可以查看url地址

12.配置mybatis(mybatis-config.xml)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><!--mybatis配置文件--><configuration></configuration>
为了配合mybatis补充applicationContext操作步骤
1、在applicationContex中加载db.properties
这样/src/main/resources/*.properties文件就会被spring加载
如果想使用多个配置文件,可以添加order字段来进行排序
<context:property-placeholder location="classpath:db.properties" />2、在applicationContex中,配置数据源,配置前需要加入数据池依赖
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"><property name="driverClassName" value="${jdbc.driver}"></property><property name="url" value="${jdbc.url}"></property><property name="username" value="${jdbc.username}"></property><property name="password" value="${jdbc.password}"></property>
</bean>3、在applicationContex中,获取SqlSessionFactory工厂
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="configLocation" value="classpath:mybatis-config.xml"></property><property name="mapperLocations"><list><value>classpath:com/ssm/dao/*.xml</value></list></property><!--配置分页插件--><property name="plugins"><array><bean class="com.github.pagehelper.PageInterceptor"><property name="properties"><value>helperDialect=mysql</value></property></bean></array></property>
</bean>4、在applicationContex中,配置扫描Mapper文件,dao层的映射
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.ssm.dao"></property><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>

注意:application映射dao层,如果出现Could not autowire. No beans of 'UserDao' type found. 错误很有可能就是映射路径不对。

数据库驱动以及数据池依赖

    <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.15</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-dbcp2</artifactId><version>2.7.0</version></dependency>

插件需要导入分页插件的依赖,

    <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.2.0</version></dependency>

10.补充两个映射,完善一个User

①创建User实体类

package com.ssm.entity;public class User {private Integer id;private String userName;private String userPwd;private String name;private String remark;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getUserPwd() {return userPwd;}public void setUserPwd(String userPwd) {this.userPwd = userPwd;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getRemark() {return remark;}public void setRemark(String remark) {this.remark = remark;}@Overridepublic String toString() {return "User{" +"id=" + id +", userName='" + userName + '\'' +", userPwd='" + userPwd + '\'' +", name='" + name + '\'' +", remark='" + remark + '\'' +'}';}
}

②创建UserDao接口(方法名称要和xml的id相对应)

package com.ssm.dao;import com.ssm.entity.User;public interface UserDao {public int create(User user);}insert的结果,如果成功返回的是1(可能是这个1是影响的条数),失败返回的是exception,而不是0。

③创建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.ssm.dao.UserDao"><insert id="create" parameterType="com.ssm.entity.User" useGeneratedKeys="true" keyProperty="id">insert into tb_user(user_name,user_pwd,name,remark) values(#{userName},#{userPwd},#{name},#{remark})</insert>
</mapper>

useGeneratedKeys="true" keyProperty="id"是把数据库自动生成的id加入实体类中。

④实现业务层(创建dao对象,对方法进行调用)

package com.ssm.service;import com.ssm.dao.UserDao;
import com.ssm.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class UserService {@Autowiredprivate UserDao userDao;public int create(User user) {return userDao.create(user);}
}

⑤实现控制层(确保所有请求经过,并且转发调用相应的服务层)

package com.ssm.controller;import com.ssm.entity.User;
import com.ssm.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;@Controller
@RequestMapping("/user")
public class UserController {@Autowiredprivate UserService userService;@PostMapping("/create")public void create(User user){userService.create(user);}
}

11.检查映射情况

①在UserMapper.xml中应该有对dao层的映射

<?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.ssm.dao.UserDao"><insert id="create" parameterType="com.ssm.entity.User" useGeneratedKeys="true" keyProperty="id">insert into tb_user(user_name,user_pwd,name,remark) values(#{userName},#{userPwd},#{name},#{remark})</insert>
</mapper>

②在applicationContext.xml开头有对db.properties和Service层的映射

    <context:component-scan base-package="com.ssm.service"/><context:property-placeholder location="classpath:db.properties" />

结尾有对dao的映射

<!--    4、在applicationContex中,配置扫描Mapper文件,dao层的映射--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.ssm.dao"/><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/></bean>

③spring-mvc中有对控制层的映射

 <context:component-scan base-package="com.ssm.controller"/>

12.测试框架运行情况(可以使用postman)

明显当postman出现404,但是插入成功时,SSM搭建成功了。

启动不成功:Cannot resolve reference to bean 'sqlSesssionFactory' while setting bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'sqlSesssionFactory' available

找了很久的错误,注意服务器日志,然后自己阅读,仔细思考报错的意思是什么,才能更快更准找到错误。

SSM框架搭建过程----学生学籍管理系统相关推荐

  1. Ssm框架实现的学生信息管理系统

    此篇为大家推荐的是一款基于SSM框架实现的学生信息管理系统 算是我们带大家入门SSM框架的实战项目,项目涉及到的知识点都是SSM框架最基本的知识,我们的思路是从简单到困难,难度不断升级,所以后面关于S ...

  2. 如何基于SSM设计实现一个学生学籍管理系统

    本系统是一个基于ssm+layui的学籍管理系统: 本系统比较简单,适用于新手,上手简单易操作,主要是帮助理解java web (ssm框架)项目的整体运行流程,附带着也熟悉一下这种项目的搭建: 后面 ...

  3. ssm框架搭建过程中的bug(石乐志)

    1.最初的错误:web.xml中未加listener 缺省代码: <listener><listener-class>org.springframework.web.conte ...

  4. SSM框架搭建过程详解(一)环境及其层次配置

    1.创建maven项目 1.1GroupID和ArtifactID的区别 通俗来讲就是横坐标和纵坐标的区别,GroupID填写形式一般为com.xxx.xxx即包名,ArtifactID则填写工程项目 ...

  5. 【计算机毕业设计】679学生学籍管理系统

    一.系统截图(需要演示视频可以私聊) 目 录 目 录 摘  要 ABSTRACT 1 绪论 1.1 课题背景 1.2 研究现状 1.3 研究内容 2 系统开发环境 2.1 vue技术 2.2 JAVA ...

  6. 用单链表编程实现一个简易的高校学籍管理系统_SSM框架实现学生学籍管理系统...

    基于Spring, SpringMVC, Mybatis 框架实现一个学生学籍管理系统, 能够对学生基本信息, 比如姓名年龄形变状态进行管理, 也能进行通讯录维护, 并能导出Excel报表 运行环境 ...

  7. 基于SSM搭建的学生信息管理系统项目源码+学习视频

    基于SSM搭建的学生信息管理系统 目录 基于SSM搭建的学生信息管理系统 1.为什么要编写学生信息管理系统 1.1编写项目的起因: 2.编写学生信息管理系统的过程 2.1项目成果的展示: 登录界面: ...

  8. vc++学生学籍管理系统

    学生学籍管理系统 课程设计 院(系): 计算机工程学院              专业:           计算机科学与技术            姓名: 王凯伟 班级: 计算083  学号: 题目 ...

  9. 基于java的学生学籍管理系统(含源文件)

    欢迎添加微信互相交流学习哦! 项目源码:https://gitee.com/oklongmm/biye 目录 内容摘要    - 2 - 引言    - 4 - 学生学籍管理系统开发的意义和目的   ...

最新文章

  1. 设置润乾报表鼠标移到格子上就显示提示内容
  2. getdate函数_PHP getdate()函数与示例
  3. Mac OS X Terminal 101:终端使用初级教程以及Xcode
  4. 93没有了_93平旧两居大变身,二手房这样装修10万块搞定
  5. 蓝桥杯2014c++真题:扑克序列(next_permutation)
  6. java路径两种写法/和\\
  7. java.lang.NoSuchFieldError: INSTANCE at org.apache.http.conn.ssl.SSLConnectionSocketFactory
  8. React Native填坑之旅--class(番外篇)
  9. 数据库分页技术的实现
  10. 计算机主板自动重启,我电脑关机后总是自动重启,主板换了
  11. 64位win7旗舰版java_win7 64位旗舰版下载_lenovo windows7 64位旗舰版笔记本专用系统_软件侠下载站...
  12. 使用 Git 添加文件时,出现 Warning: LF will be replaced by CRLF in...提示及解决方案
  13. STC51入门笔记(郭天祥C语言)---第二节:Keil 软件使用及流水灯设计
  14. js 前端导出报错 格式不正确_vue项目前端导出word文件(bug解决)
  15. 父母教养方式与幼儿焦虑关系的三水平元分析
  16. HTTP常见状态码:400\500 错误代码
  17. 我花了整整24530元,才写出这篇育发防踩雷攻略
  18. 两百条微信小程序开发跳坑指南(不定时更新)
  19. UVaLive 4868 Palindrometer (暴力 / 构造)
  20. ABP入门系列(7)——分页实现_0

热门文章

  1. mysql ha_err_key_not_found_mysql主从同步报错:Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND...
  2. vue.js嵌套路由-------由浅入深
  3. Azure PowerShell (9) 使用PowerShell导出订阅下所有的Azure VM的Public IP和Private IP
  4. Linux系统个性化设置
  5. java并行计算Fork和Join的使用
  6. fn有toString方法,string没有toFunction方法,自定义一个toFunction方法
  7. 21 世纪最需要的 7 种人才素质 - 李开复
  8. Asp.Net WebApi swagger使用教程
  9. CF刷刷水题找自信 2
  10. 贪心+优先队列之更改优先级-hdu1896