SpingBoot——SB整合MB的web项目模板

这篇具有很好参考价值的文章主要介绍了SpingBoot——SB整合MB的web项目模板。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这里是我以后用到的项目都要先创建的模板

第一步

新建一个springboot项目,这里jdk版本和java版本根据需求选择

SpingBoot——SB整合MB的web项目模板

第二步

——选择springboot版本和他提供的可以选择安装的依赖

这里因为是开发web项目,所以选择一个spring web

同时因为还要用到mysql,要一个mysql驱动,和一个mybatis框架简化开发

SpingBoot——SB整合MB的web项目模板

第三步 

完成数据库的相关配置

在配置文件application.properties当中完成和数据库连接的相关配置,可以先创建数据库也可以后面创建


#驱动类名称
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库连接的url
spring.datasource.url=jdbc:mysql://localhost:3306/test1
#连接数据库的用户名
spring.datasource.username=root
#连接数据库的密码
spring.datasource.password=1234

开启驼峰命名法(这里没有用到)

mybatis.configuration.map-underscore-to-camel-case=true

添加两个有用的插件(貌似也没有用到)

 

第四步

在pom.xml加入如下的依赖

lombok的依赖(日志)

用法看这里:SpringBoot——基于SpringBoot整合Mybatis的入门案例+sql提示配置+lombok工具包介绍_北岭山脚鼠鼠的博客-CSDN博客

SpringBoot——SB整合mybatis案例(残缺版本)第一集_北岭山脚鼠鼠的博客-CSDN博客

  <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

第五步

准备各层的包文件夹如下

resources中的目录结构是为XML开发准备(没有用到)

SpingBoot——SB整合MB的web项目模板 

第六步

规定Result风格,所有的响应数据都必须规定使用Result风格的数据来响应

做法为在pojo中增加如下的一个实体类Result,该类有三种属性,一个是请求成功与否,第二个是请求的执行状态,最后一个是请求返回的数据。这里三个属性需要构造setter和getter方法还有有参和无参构造方法。

用到的三个注解就是来自上面依赖里引入的lombok。

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result {
    private Integer code;//响应码,1 代表成功; 0 代表失败
    private String msg;  //响应信息 描述字符串
    private Object data; //返回的数据

    //增删改 成功响应
    public static Result success(){
        return new Result(1,"success",null);
    }
    //查询 成功响应
    public static Result success(Object data){
        return new Result(1,"success",data);
    }
    //失败响应
    public static Result error(String msg){
        return new Result(0,msg,null);
    }
}

到这里一个基本的项目模板就已经基本完成了

现在演示实现一个根据id的查询功能和插入功能

准备工作:

先准备一个数据库test1和该数据库下的一个users表,使用如下的建表语句

create database test1;

drop table users;
create table `users`(
    `id` int unsigned not null auto_increment primary key comment '主键ID',
    `name` varchar(100) COLLATE utf8mb3_bin default null comment '姓名',
    `age` tinyint unsigned default  null comment '年龄',
    `create_time` datetime not null comment '用户创建时间'
)auto_increment=1 DEFAULT CHARSET=utf8mb3 comment ='用户表';

insert into users(name,age,create_time) values('YhY',15,'2023-03-24 17:33:10');
insert into users(name,age,create_time) values('杨辉',50,'2023-04-12 18:33:10');

select * from users;

上面auto_increment是让主键id自动递增, auto_increment=1是主键从1开始递增,默认就是1

COLLATE utf8mb3_bin是让name区分大小写,下面 DEFAULT CHARSET=utf8mb3是设定该表的字符集编码为utf8mb3

有了数据库表之后就要有一个对应的实体类

在pojo层当中新建如下的Users类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Users {
    private Integer id;
    private String name;
    private Integer age;
    private LocalDateTime createTime;
}

每一层之间关系如下

controller——>service——>mapper,前一个获取后一个的bean对象后调用对应方法实现操作

在Controller当中如下所示

@RestController是ResponseBody和Controller的结合,可以返回一个json格式的数据,如果单单使用Controller的话是只返回一个视图

@RequestMapping指定了该类中的所有资源的访问路径必须以/users开头

@Slf4j是为了在下面使用日志记录相关信息,这个是上面lombok的注解。

每一个资源的返回值都要按照Result规范来

下面有使用注解指定了两种请求——Post请求和Get请求,Post请求的参数,

post请求的参数都在请求体里面,这里要在方法形参前面加上一个@RequestBody注解去获取

get请求的参数都在url当中,用另外一个注解@PathVariable去获取

@Slf4j
@RestController
@RequestMapping("/users")
public class UsersController {

    @Autowired
    private UsersService usersService;

    @PostMapping
    public Result add(@RequestBody Users users)
    {
        log.info("新增用户: {}",users);
        usersService.add(users);
        return Result.success();
    }

    @GetMapping("/{id}")
    public Result getById(@PathVariable Integer id){
log.info("根据ID查询用户id:{}",id);
Users users=usersService.getById(id);
log.info("查询到的员工信息:{}",users);
return Result.success(users);
    }
}

在Service层当中如下所示

这一层将调用mapper当中的映射接口实现对应功能

这里的添加新用户时需要有一个添加时间,直接调用LocalDateTime的now()方法获取当前时间设置在users里面然后再传进Mapper层当中。

@Service
public class UsersServiceImpl implements UsersService {
    @Autowired
    private UsersMapper usersMapper;

    @Override
    public void add(Users users) {
        users.setCreateTime(LocalDateTime.now());
        usersMapper.insert(users);
    }

    @Override
    public Users getById(Integer id) {
       Users users=usersMapper.getById(id);
        return users;
    }
}

在Mapper层如下所示

这里对于要放进sql语句当中的数值要使用一个#{}参数占位符,传进来的是一个实体类会自动去匹配类当中的属性,传进来一个属性就匹配属性名称。

这里还没有展示开启驼峰命名法的作用。

@Mapper
public interface UsersMapper {
@Insert("insert into users(name,age,create_time) values(#{name},#{age},#{createTime})")
     void insert(Users users);

@Select("select * from users where id = #{id}")
    Users getById(Integer id);
}

使用postman测试如下

发送查询请求得到一个Result格式的响应数据

SpingBoot——SB整合MB的web项目模板

控制台输出

SpingBoot——SB整合MB的web项目模板

 发送添加请求得到一个Result格式的响应数据

SpingBoot——SB整合MB的web项目模板

控制台输出如下

SpingBoot——SB整合MB的web项目模板

在数据库表当中的数据 

SpingBoot——SB整合MB的web项目模板 

结束,上面就是一个通用模板的创建使用,以后有了通用的东西再加文章来源地址https://www.toymoban.com/news/detail-419137.html

到了这里,关于SpingBoot——SB整合MB的web项目模板的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot 的项目编译即报错处理--SB系列之001

      SpringBoot知识范围-学习步骤【JSB系列之000】 ---总目录 SpringBoot 的项目编译即报错处理--JSB系列之001 SpringBoot 的项目helloworld--JSB系列之002 SpringBoot 的配置类--JSB系列之003 SpringBoot 的项目如何运行--JSB系列之004 SpringBoot操作数据库JdbcTemplate--JSB系列之005 SpringBoot操作数据库jpa--JSB系

    2024年02月16日
    浏览(36)
  • Solon Web 开发:三、一个简单的 Web 模板项目(或示例)

    演示 web 程序的常用能力: 控制器、请求参数、参数校验、跳转 过滤器、全局异常处理 静态文件 动态模板 动态模板公共变量及控制器基类 日志 Json 渲染格式控制 模板下载: 打包成 jar ,可以自启动 helloworld_web_jar.zip (maven) helloworld_web_jar_gradle.zip (gradle) 打包成 war,需

    2024年02月12日
    浏览(46)
  • 【业务功能篇45】SSM整合shiro项目:web.xml执行顺序

    web.xml 的加载顺序是:ServletContext - context-param - listener - filter - servlet 学习shiro时,需要配置shiro ,我们需要在filter过滤器之前,先初始化好shiro组件,不然请求认证无法走到shiro,根据web.xml的加载顺序,listener标签中会先于filter标签中的组件,所以我们配置shiro的context文件,单独

    2024年02月16日
    浏览(53)
  • 史上最详细的小程序测试用例模板,以后再也不怕测试用例不会写了

    目录 1. 文档介绍 1.1 文档目的 1.2 文档范围 1.3 读者对象 1.4 术语与缩写解释 2. 功能测试用例 2.1 被测试对象的介绍 2.2 测试范围与目的 2.3 测试环境与测试辅助工具的描述 2.4 功能测试用例 附录:评审意见 设计测试用例的目的是测试系统是否能够正确完成整个业务流程,在一

    2023年04月11日
    浏览(41)
  • 带你了解关于FastAPI快速开发Web API项目中的模板和Jinja

    摘要: FastAPI 实际上是为构建 API 和微服务而设计的。它可用于构建使用 Jinja 提供 HTML 服务的 Web 应用程序。 本文分享自华为云社区《FastAPI 快速开发 Web API 项目: 模板和 Jinja 介绍》,作者:宇宙之一粟。 模板是全栈 Web 开发的重要组成部分。使用 Jinja,您可以构建丰富的模

    2023年04月25日
    浏览(35)
  • WEB3 创建React前端Dapp环境并整合solidity项目,融合项目结构便捷前端拿取合约 Abi

    好 各位 经过我们上文 WEB3 solidity 带着大家编写测试代码 操作订单 创建/取消/填充操作 我们自己写了一个测试订单业务的脚本 没想到运行的还挺好的 那么 今天开始 我们就可以开始操作我们前端 Dapp 的一个操作了 在整个过程中 确实是没有我们后端的操作 或者说 我们自己就

    2024年02月07日
    浏览(63)
  • 【SpingBoot】详细介绍SpringBoot项目中前端请求到数据库再返回前端的完整数据流转,并用代码实现

    在SpringBoot项目中,前端请求到最终返回的完整数据流转一般包括以下几个步骤: 前端发送HTTP请求到后端Controller。 Controller接收到请求后,调用相关Service处理业务逻辑。 Service调用DAO层获取数据。 DAO层访问数据库获取数据。 数据库返回数据给DAO层。 DAO层将数据返回给Servic

    2024年02月10日
    浏览(41)
  • 完美解决 IDEA创建JDK1.8的Spingboot项目但Java版本只能勾选17和21,没有 8

    今天新建项目发现java只能勾选17和21。 原因 进入Springboot官网查看情况,发现在2023年11月24日,3.0以下的版本不再支持了。 解决 IDEA页面创建Spring项目,其实是访问spring initializr去创建项目。我们可以通过阿里云国服去间接创建Spring项目。服务器URL地址替换为 https://start.aliyu

    2024年02月04日
    浏览(68)
  • Go开发使用bee工具生成beego框架工程代码、运行web项目以及beego中内置模板函数列表

        GO开发中使用bee工具生成beego框架工程代码,在这之前假定你已经成功安装好了Beego环境搭建和bee工具,Windows下Beego环境搭建和bee工具的安装使用_bee命令 windows-CSDN博客 然后在命令行或者在git bash中进入到GOPATH的src目录,执行bee new 工程名称,来生成一个beego框架工程目录:

    2024年04月29日
    浏览(39)
  • vue2项目中调取登录接口登录以后获取个人信息以后,储存在哪里,怎么在不同的页面展示想要的信息?

    在Vue2项目中,可以将个人信息存储在Vuex状态管理中或者浏览器的本地存储中,具体取决于项目的需求和规模。 1. Vuex状态管理 在Vuex中定义一个user模块,用于存储用户信息,可以在登录成功后将用户信息存储到该模块中。 // store/user.js    const state = {          userInfo: \\\'\\\'  

    2023年04月25日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包