博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javaweb各种框架组合案例(五):springboot+mybatis+generator
阅读量:6160 次
发布时间:2019-06-21

本文共 9077 字,大约阅读时间需要 30 分钟。

一、介绍

1.springboot是spring项目的总结+整合

  当我们搭smm,ssh,ssjdbc等组合框架时,各种配置不胜其烦,不仅是配置问题,在添加各种依赖时也是让人头疼,关键有些jar包之间还会出现冲突,让你的项目出现难以解决的问题。基于这种情况,springboot横空出世,在考虑到Struts控制层框架有漏洞,springboot放弃(大多数企业同样如此)了Struts,转而代之是springMVC,不过,springboot是自动集成springMVC的,不需要任何配置,不需要任何依赖,直接使用各种控制层注解。springboot是springcloud的基础,是开启微服务时代的钥匙。

 

二、新建springboot工程

1. 使用idea2019新建project,选择spring Initializr,next

 

2. 填写坐标信息,next

 

 3. web选择Spring Web Starter,SQL选择MyBatis Framework、MySQL Driver,next

 

 4. 填写项目名已经存放位置,finish

 

三、使用mybatis generator构建项目

1. 数据库

  创建数据库

 

create database ssdj;

 

  创建phone表 

CREATE TABLE `phone` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `brand` varchar(255) DEFAULT NULL,  `user_id` int(11) DEFAULT NULL,  PRIMARY KEY (`id`),  KEY `FK_8t3jhwmmlxpq3qcwcy1a3alts` (`user_id`),  CONSTRAINT `FK_8t3jhwmmlxpq3qcwcy1a3alts` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  创建user表

CREATE TABLE `user` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `password` varchar(255) DEFAULT NULL,  `username` varchar(255) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

  插入数据

user                    phone

  

    实现了一个用户拥有多部手机的业务

 

2. pom.xml

  在创建springboot工程创建时勾选的Dependencies会在pom中添加,所以pom.xml基本不需要自己添加依赖

  为pom.xml添加generator插件,其它不用动

org.mybatis.generator
mybatis-generator-maven-plugin
${basedir}/src/main/resources/generatorConfig.xml
true
true

  springboot方便之处就是“自以为是”的为工程添加默认中间件,并且不需要自己添加依赖,不需要写额外配置,如数据库连接池用的是HirikaCP,其它的中间件用的都是市场上评价最好最稳定的

 

3. application.properties

  在src/main/resource下找到application.properties文件

   因为properties文件可读性差,将其更名为application.yml,并在其中添加

spring:  profiles:    active: dev

 

4. application-dev.yml

  在resource下创建application-dev.yml文件,并在其中添加

server:  port: 8080spring:  datasource:    username: root    password: root    url: jdbc:mysql://localhost:3306/ssdj?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=false    driver-class-name: com.mysql.cj.jdbc.Drivermybatis:  mapper-locations: classpath:mapper/*Mapper.xml  type-aliases-package: club.xcreeper.ssm_generator_restful.entity
#showSql logging:   level:     club:       xcreeper:         ssm_generator_restful:           dao:             debug

 

5. generatorConfig.xml

  在resource目录下创建generatorConfig.xml文件,在其中添加

        
        
    
    
    
      
   
     
   
    
      
  

 

6. logback-spring.xml

  在resource目录下创建logback-spring.xml文件,在其中添加

logback
info
${CONSOLE_LOG_PATTERN}
UTF-8
${log.path}/log_debug.log
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
UTF-8
${log.path}/debug/log-debug-%d{yyyy-MM-dd}.%i.log
100MB
15
debug
ACCEPT
DENY
${log.path}/log_info.log
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
UTF-8
${log.path}/info/log-info-%d{yyyy-MM-dd}.%i.log
100MB
15
info
ACCEPT
DENY
${log.path}/log_warn.log
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
UTF-8
${log.path}/warn/log-warn-%d{yyyy-MM-dd}.%i.log
100MB
15
warn
ACCEPT
DENY
${log.path}/log_error.log
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
UTF-8
${log.path}/error/log-error-%d{yyyy-MM-dd}.%i.log
100MB
15
ERROR
ACCEPT
DENY

 

7. 运行generatorConfig.xml文件,自动生成代码

  在idea工具的顶部 Run - Edit Configurations

  

  在其左上角“+”号里添加Maven

  在Command line中填写 mybatis-generator:generate -e,ok

  

   在idea顶部 Run - Run 'xxx [mybatis-generator:generate -e]'

  

  ok,再去查看代码是否生成

 

8. 设置实体关系

  因为一个用户拥有多部手机,所以在User实体类中加入private List<Phone> phones; 和 getter、setter

   并且去掉Phone实体类中的user_id属性和其getter、setter

    在UserMapper.xml文件中改造ResultMap映射关系

  并且改造selectByPrimaryKey查询语句

 

9. 再编写service层和controller层即可,可通过postman测试接口

(1)service及其实现

package club.xcreeper.ssm_generator_restful.service;import club.xcreeper.ssm_generator_restful.entity.User; public interface UserService { User getUser(int id); }
package club.xcreeper.ssm_generator_restful.service.impl; import club.xcreeper.ssm_generator_restful.dao.UserMapper;
import club.xcreeper.ssm_generator_restful.entity.User;
import club.xcreeper.ssm_generator_restful.service.UserService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public User getUser(int id) {   return userMapper.selectByPrimaryKey(id); } }

 

(2) controller

  使用Restful api 风格

package club.xcreeper.ssm_generator_restful.controller;import club.xcreeper.ssm_generator_restful.entity.User;import club.xcreeper.ssm_generator_restful.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("/user")public class UserController {    @Autowired    private UserService userService;    @GetMapping(value = "/getOne/{id}")    public User getUser(@PathVariable int id){        return userService.getUser(id);    }}

 

10. 通过postman进行接口测试

 

转载于:https://www.cnblogs.com/xiaogblog/p/11119349.html

你可能感兴趣的文章
微软反垄断案新突破 Win10系统或需剥离可信计算
查看>>
拥抱开放式网络 通往下一代数据中心
查看>>
一站式金融云托管服务 都匀融通村镇银行系统成功上线运行
查看>>
红外摄像机的功率究竟有多大
查看>>
春风十里不如春城一聚:华平解决方案巡展走进昆明
查看>>
华为NFV实验室一周年:打造开放合作生态链 加速NFV产业化
查看>>
别看360完成私有化 仍有三因素阻碍中概股回归
查看>>
打开光伏广阔市场的钥匙何在?
查看>>
"爱说说"技术原理:前后台参数约定及逻辑代码(三)
查看>>
选型OpenStack,需要谨防“舍本逐末”
查看>>
程序员需要关注的十个大数据技术
查看>>
2016年成熟亚太地区公共云服务市场规模将达到81亿美元
查看>>
人工智能大幕开启 安防行业已成先头部队
查看>>
"2016中国APP分类排行榜发布暨颁奖晚宴" —— 兰亭修禊少长有王谢 黔香阁暖高见望诸公...
查看>>
2016年这些网络新贵或被并购
查看>>
Scatec Solar拟在乌克兰建设60MW光伏电站
查看>>
你真的在正确地使用WLAN控制器吗?
查看>>
阿里技术大神:你没做错啥,你错在啥都没做
查看>>
iOS开发之FMDB
查看>>
ENISA报告:ICS-SCADA防护建议
查看>>