springboot+SSM Demo框架搭建
springboot+SSM Demo框架搭建
源码连接:https://gitee.com/lingyao1/
一、pom.xml文件
首先添加必要的依赖
加入web模块
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency>
整合mybaties
<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.2</version> </dependency>
添加数据库连接依赖(这里用的shimysql)
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version> </dependency>
下面是完整的pom.xml文件
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><packaging>war</packaging><!-- 添加springboot的父依赖--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.6</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.springboot</groupId><artifactId>mvc_demo</artifactId><version>0.0.1-SNAPSHOT</version><name>ssm_demo</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><!--web模块--><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- mybatis --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.2</version></dependency><!-- mysql连接 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.28</version></dependency><!--单元测试 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><!--maven打包插件--><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
二、数据库建表脚本
#2022-4-14 lingyao建表
DROP TABLE IF EXISTS `login_info`;
CREATE TABLE login_info(`id` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '主键',`user_account` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '用户登录名',`user_password` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '用户登录密码',`status` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '状态: 1、启用-ENABLE 2、禁用-DISABLE',`created_time` DATETIME NOT NULL COMMENT '创建时间',`last_modify_time` DATETIME NOT NULL COMMENT '最后一次修改时间',PRIMARY KEY (`id`),UNIQUE INDEX (`user_account`)
)ENGINE=INNODB DEFAULT CHARSET=UTF8 COMMENT '用户登录信息表';#2022-4-14 lingyao 将表名`login_info`修改为`t_login_info`
ALTER TABLE login_info RENAME t_login_info;
#2022-4-14 lingyao插入一条测试数据
INSERT INTO `t_login_info` VALUES('1','小九','111111','ENABLE',now(),now())
三、创建实体类Entity
package com.springboot.ssm_demo.entity;import java.io.Serializable;
import java.util.Date;/*** @author lingyao* @description 实体类用于对应数据库中的表* mybatis配置文件中默认设置了驼峰转换,所以定义实体类时最好也进行驼峰命名*/
public class LoginEntity implements Serializable {private static final long serialversionUID = 1L;private String id;private String userAccount;private String userPassword;private String status;private Date createdTime;private Date lastModifyTime;/*** 创建无参构造器*/public LoginEntity(){ }/*** 创建有参构造器*/public LoginEntity(String id, String userAccount, String userPassword, String status, Date createdTime,Date lastModifyTime ){id = this.id;userAccount = this.userAccount;userPassword = this.userPassword;status = this.status;createdTime = this.createdTime;lastModifyTime =this.lastModifyTime;}//创建getter、setter方法public String getUserAccount() {return userAccount;}public String getUserPasssword() {return userPassword;}public String getStatus() {return status;}public Date getCreatedTime() {return createdTime;}public Date getLastModifyTime() {return lastModifyTime;}public String getId() {return id;}public void setId(String id) {this.id = id;}public void setUserAccount(String userAccount) {this.userAccount = userAccount;}public void setUserPasssword(String userPasssword) {this.userPassword = userPasssword;}public void setStatus(String status) {this.status = status;}public void setCreatedTime(Date createdTime) {this.createdTime = createdTime;}public void setLastModifyTime(Date lastModifyTime) {this.lastModifyTime = lastModifyTime;}//创建tostring方法@Overridepublic String toString() {return "LoginEntity{" +"id='" + id + '\'' +", userAccount='" + userAccount + '\'' +", userPasssword='" + userPassword + '\'' +", status='" + status + '\'' +", createdTime=" + createdTime +", lastModifyTime=" + lastModifyTime +'}';}
}
四、创建数据访问层Mapper接口以及对应的实现
mapper接口:
package com.springboot.ssm_demo.mapper;import com.springboot.ssm_demo.entity.LoginEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository;import java.util.List;/*** @author lingyao* @description mapper层做数据持久工作的 实现类mapper.xml(也可用注解形式)*/ @Repository @Mapper public interface LoginMapper {/*** 通过id查询用户信息*/public LoginEntity queryById(@Param("id") String id); // public List<LoginEntity> test(); }
xml配置文件对接口进行实现
这里接口的实现我采用的是xml配置文件(具体xml细节需可以查寻mybaties)
<?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.springboot.ssm_demo.mapper.LoginMapper"><!--查询 t_login_info表的sql片段 --><sql id="t_login_info">select id,user_account,user_password,status,created_time,last_modify_time from t_login_info</sql><!--结果集映射集--><resultMap id="loginResult" type="com.springboot.ssm_demo.entity.LoginEntity"><result property="id" column="id" ></result><result property="userAccount" column="user_account" ></result><result property="userPassword" column="user_password" ></result><result property="status" column="status" ></result><result property="createdTime" column="created_time" ></result><result property="lastModifyTime" column="last_modify_time" ></result></resultMap><!--根据登录id查询登录信息--><select id="queryById" resultMap="loginResult"><include refid="t_login_info"></include>where id=#{id}</select>
<!-- <select id="test" resultMap="loginResult">-->
<!-- <include refid="t_login_info"></include>-->
<!-- </select>-->
</mapper>
注意事项:
xml文件名应与mapper接口名对应
xml文件里的namespace应该对应接口所在的包的完整路径(例如:com.springboot.ssm_demo.mapper.LoginMapper)
select标签的id属性应该和mapper接口中的方法相同(id="queryById就对应就扣中的queryById接口方法)
注意查询参数类型要正确。
返回的查询结果类型要正确。(特别注意返回结果实体Entity的属性和数据库表字段的对应,可以用resultmap解决)
五、services层
接口
package com.springboot.ssm_demo.service;import com.springboot.ssm_demo.entity.LoginEntity; /*** @author lingyao* @description 业务程用于处理业务逻辑*/ public interface LoginService {public LoginEntity queryById(String id); }
接口实现类
package com.springboot.ssm_demo.service;import com.springboot.ssm_demo.entity.LoginEntity; import com.springboot.ssm_demo.mapper.LoginMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;/*** @author lingyao* @description*/ @Service public class LoginServiceImpl implements LoginService {@Autowiredprivate LoginMapper loginMapper;@Overridepublic LoginEntity queryById(String id) {return loginMapper.queryById(id);} }
五、controller层
package com.springboot.ssm_demo.controller;import org.omg.CORBA.PUBLIC_MEMBER; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** @author lingyao* @description view层,前后端数据交互层* //@Controller类中的方法可以直接通过返回String跳转到jsp、ftl、html等模版页面。也可以在方法上加@ResponseBody注解,返回实体对象。* @RestController类中的所有方法只能返回String、Object、Json等实体对象,不能跳转到模版页面*/ @RestController public class LoginController {@RequestMapping(value = "/")String index() {return "this is Spring Boot!";}public void test (){System.out.println("单元测试!");} }
六、配置文件
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword:url: jdbc:mysql://localhost:3306/shop_demo?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
#扫描mapperxml文件
mybatis:mapper-locations: classpath*:mapper/*.xml
# type-aliases-package: classpath:com/springboot/ssm/entity
#打印sql日志
logging:level:com.springboot.ssm_demo.mapper: debug
七、附录
- sql脚本,用于测试框架是否搭建成功,应在测试前执行。
#2022-4-14 lingyao建表
DROP TABLE IF EXISTS `login_info`;
CREATE TABLE login_info(`id` VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '主键',`user_account` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '用户登录名',`user_password` VARCHAR(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '用户登录密码',`status` VARCHAR(20) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '状态: 1、启用-ENABLE 2、禁用-DISABLE',`created_time` DATETIME NOT NULL COMMENT '创建时间',`last_modify_time` DATETIME NOT NULL COMMENT '最后一次修改时间',PRIMARY KEY (`id`),UNIQUE INDEX (`user_account`)
)ENGINE=INNODB DEFAULT CHARSET=UTF8 COMMENT '用户登录信息表';#2022-4-14 lingyao 修改表名
ALTER TABLE login_info RENAME t_login_info;
#2022-4-14 lingyao插入一条测试数据
INSERT INTO `t_login_info` VALUES('1','小九','111111','ENABLE',now(),now())
八、测试
找到启动类SsmDemoApplication,启动项目,项目未报错,然后在浏览器中输入输入controller类中的index方法的路径(localhost:8080/)浏览器页面出现‘this is Spring Boot!’那么表示项目启动成功。
在测试类中进行单元测试查看通过接口能否调用到数据库里的数据
在测试类中调用service层中的queryById(id)方法,并运行查询到下面的结果表示测试成功。至此框架全部搭建成功。
注意:在测试数据库数据调用之前要在本地数据库执行附录中的sql脚本
n_info RENAME t_login_info;
#2022-4-14 lingyao插入一条测试数据
INSERT INTO t_login_info
VALUES(‘1’,‘小九’,‘111111’,‘ENABLE’,now(),now())
## 八、测试1. 找到启动类SsmDemoApplication,启动项目,项目未报错,然后在浏览器中输入输入controller类中的index方法的路径(localhost:8080/)浏览器页面出现‘this is Spring Boot!’那么表示项目启动成功。2. 在测试类中进行单元测试查看通过接口能否调用到数据库里的数据3. 在测试类中调用service层中的queryById(id)方法,并运行查询到下面的结果表示测试成功。至此框架全部搭建成功。**注意:在测试数据库数据调用之前要在本地数据库执行附录中的sql脚本**
springboot+SSM Demo框架搭建相关推荐
- SpringBoot后端项目框架搭建
SpringBoot后端项目框架搭建 本节内容服务于SpringBoot + Vue 搭建 JavaWeb 增删改查项目. 工具安装 电脑已安装\配置如下工具: IDEA.jdk.MySQL及其可视化 ...
- SSM整合框架搭建(适合新手)
SSM整合(SpringMvc+Spring+Mybatis) 首先创建一个Dynamic Web Project(JavaWeb动态工程) 创建一个xxx.xxx.xxx.controller包用来 ...
- springboot整合tk-mybatis框架搭建
项目结构截图放在文末了,图片太大怕影响观看体验,想模仿搭建项目的可以拉到底看下截图再动手不迟. 第一步:依赖 <properties><project.build.sourceEnc ...
- springboot+dubbo+zookeeper详细搭建
springboot+dubbo+zookeeper框架搭建 环境搭建 启动zookeeper 启动dubbo-addmin-2.6.0监控平台(可省) 服务提供者 引包 配置参数 启动类 demo ...
- ssm框架搭建连接mysql_从零开始搭建SSM框架(Spring + Spring MVC + Mybatis)
最近在回顾和总结一些技术,想到了把之前比较火的 SSM 框架重新搭建出来,作为一个小结,同时也希望本文章写出来能对大家有一些帮助和启发,因本人水平有限,难免可能会有一些不对之处,欢迎各位大神拍砖指教, ...
- ssm框架整合_框架整合战斗压缩粮篇SpringCloud+SpringBoot+SSM
各位小伙伴今天又敲了多少Bug了,今天改Bug又花了多长时间啦,我们每天就是敲Bug,敲完改,改完敲,习惯就好啦,心态摆正.Debug起来!!! 上次是Dubbo整合,今天终结篇Cloud整合,不要废 ...
- java二维码生成 使用SSM框架 搭建属于自己的APP二维码合成、解析、下载
java二维码生成 使用SSM框架 搭建属于自己的APP二维码合成.解析.下载 自己用java搭建一个属于自己APP二维码合成网站.我的思路是这样的: 1.用户在前台表单提交APP的IOS和Andro ...
- 从零开始搭建SpringBoot的Demo
从零开始搭建SpringBoot的Demo 版本说明: Sprngboot:2.1.3.RELEASE jdk:1.8 Mysql:5.7 Idea:2018.2.4 功能:集成通用M ...
- java实现登陆ssm框架_SSM框架搭建web服务器实现登录功能(Spring+SpringMVC+Mybatis)
初学java EE,虽然知道使用框架会使开发更加便捷高效,但是对于初学者来说,感到使用框架比较迷惑,尤其是各种jar包的引用.各种框架的配置.注解的使用等等. 最好的学习方法就是实践,于是下载了一个现 ...
- Dubbo入门介绍---搭建一个最简单的Demo框架
Dubbo入门---搭建一个最简单的Demo框架 置顶 2017年04月17日 19:10:44 是Guava不是瓜娃 阅读数:320947 标签: dubbo zookeeper 更多 个人分类: ...
最新文章
- CSDN 居然免费送会员?程序员们快来领!
- Spring Boot集成Quartz注入Spring管理的类
- OpenStack 界面开发中的排序问题
- python如何调用字典_如何访问python字典里的值?(实例解析)
- Matlab之while循环语句
- nginx+lua (一)
- android 程序退出广播,android 利用广播实现程序的强制退出
- w3c 跨域请求规范
- 利用Caffe实现mnist的数据训练
- linux安装docker部署java项目
- scala 类中的对象是类_Scala中的类和对象
- 教你实现图片的惰性加载
- java上传图片特征码到服务器,记一个Base64编码后经网络传输产生的问题
- Nvidia-Docker
- zetoro导入csl 软件学报
- 离散数学——容斥原理
- 最新最全张家界旅游攻略(您必须知道的张家界攻略)
- 岁月温柔-8 妈妈的抑郁症?
- emp和emn是什么文件,emnemp是什么文件
- Canvas之绘制时钟
热门文章
- 谷歌gmail注册入口_如何更改,恢复,重设Gmail,Google云端硬盘,Android,Chrome的Google帐户密码?...
- Python使用APP Inventor网络微数据库TinyWebDB
- 网络安全-MySQL数据库
- 实际利率 名义利率
- 中兴a2018拆机图片_中兴a2s拆机视频
- flash cs3下停止movieClip的播放
- 用好小程序码这张小程序专有的名片
- 9.2-Scrapy框架爬虫【进阶】-spiders用法
- 33种著名汽车标志及来历
- 配置git mergetool不产生*.orig文件