【项目实战】 ---- 简单整合SpringBoot + MyBatis + Themyleaf小项目

一、项目环境搭建①

  • 创建SpringBoot项目

    image-20210515161105270

  • 选择对应的依赖

    (lombok + web + thymeleaf + mysql driver)

    image-20210515161214913

  • 目录结构

    image-20210515163909094

  • 修改ems_thymeleaf.pom文件

    • 引入mybatis、druid依赖

      <!--mybatis-->
      <dependency>
          <groupId>org.mybatis.spring.boot</groupId>
          <artifactId>mybatis-spring-boot-starter</artifactId>
          <version>2.1.1</version>
      </dependency>
      
      <!--druid-->
      <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>druid</artifactId>
          <version>1.1.19</version>
      </dependency>
      
  • 修改application.properties

    # 应用名称
    spring.application.name=ems_thymeleaf
    server.servlet.context-path=/ems
    # 应用服务 WEB 访问端口
    server.port=8080
    # 数据库驱动:# MySQL6以上用com.mysql.cj.jdbc.Driver (自己是5.7版本,如果是6以上版本需要注意连接地址配置还需要加上时区配置)
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    # 数据库类型
    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
    # 数据库连接地址
    spring.datasource.url=jdbc:mysql://localhost:3306/ems_thymeleaf?useUnicode=true&characterEncoding=utf8&useSSL=false
    # 数据库用户名&密码:
    spring.datasource.username=root
    spring.datasource.password=root
    # THYMELEAF (ThymeleafAutoConfiguration)
    # 开启模板缓存(默认值: true )
    spring.thymeleaf.cache=true
    # 检查模板是否存在,然后再呈现
    spring.thymeleaf.check-template=true
    # 检查模板位置是否正确(默认值 :true )
    spring.thymeleaf.check-template-location=true
    #Content-Type 的值(默认值: text/html )
    spring.thymeleaf.content-type=text/html
    # 开启 MVC Thymeleaf 视图解析(默认值: true )
    spring.thymeleaf.enabled=true
    # 模板编码
    spring.thymeleaf.encoding=UTF-8
    # 要被排除在解析之外的视图名称列表,⽤逗号分隔
    spring.thymeleaf.excluded-view-names=
    # 要运⽤于模板之上的模板模式。另⻅ StandardTemplate-ModeHandlers( 默认值: HTML5)
    spring.thymeleaf.mode=HTML5
    # 在构建 URL 时添加到视图名称前的前缀(默认值: classpath:/templates/ )
    spring.thymeleaf.prefix=classpath:/templates/
    # 在构建 URL 时添加到视图名称后的后缀(默认值: .html )
    spring.thymeleaf.suffix=.html
    
    mybatis.mapper-locations=classpath:/com/whc/mapper/*.xml
    mybatis.type-aliases-package=com.whc.entity
    spring.resources.static-locations=classpath:/templates/,classpath:/static/
    
  • 修改EmsThymeleafApplication.java

    @SpringBootApplication
    @MapperScan("com.whc.dao") // 扫描com.whc.dao下的所有mapper类作为Mapper映射文件
    public class EmsThymeleafApplication {
         
    
    	public static void main(String[] args) {
         
    		SpringApplication.run(EmsThymeleafApplication.class, args);
    	}
    
    }
    

二、数据库表设计及项目环境②

需求分析:

  • 用户
    • 用户登录
    • 用户注册、先生成验证码
  • 员工
    • 增删改查功能

分析库表结构:

  • 用户表 t_user
    • 属性 id、username、realname、password、sex
  • 员工表 t_emp
    • 属性 id、name、salary、age、bir

数据库创建表

  • 新建数据库

    image-20210515164529308

  • 新建表

    create table t_user(
    	id varchar(40) primary key, -- id
    	username varchar(40),  -- 用户名
    	realname varchar(40),  -- 真实名称
    	password varchar(40),  -- 密码
    	sex varchar(8)  -- 性别
    );
    
    create table t_emp(
    	id varchar(40) primary key, 
      name varchar(40), -- 姓名
    	salary varchar(40), -- 薪资
    	age int(3), -- 年龄
    	bir date -- 生日
    );
    

项目环境

  • 引入对应的资源文件

    image-20210515165358316

  • 编写IndexController

    默认情况下template中的静态页面无法直接通过URL访问,需要通过controller的跳转,定义映射之后,可以将直接访问的URL映射成类似controller的跳转功能。

    @Controller
    public class IndexController {
         
    
    	@GetMapping("/index")
    	public String toIndex() {
         
    		return "ems/login";
    	}
    }
    
  • 启动项目,访问localhost:8080/ems/index

    • 跳转登录页面

      image-20210515171500310

    • 跳转注册页面

      @GetMapping("/toRegister")
      	public String toRegister() {
             
      		return "ems/regist";
      	}
      

三、图片验证码功能

  • 验证码工具类ValidateImageCodeUtils.java

    public class ValidateImageCodeUtils {
         
        /**
         * 验证码难度级别 Simple-数字 Medium-数字和小写字母 Hard-数字和大小写字母
         */
        public enum SecurityCodeLevel {
         
            Simple, Medium, Hard
        }
    
        ;
    
        /**
         * 产生默认验证码,4位中等难度
         *
         * @return
         */
        public static String getSecurityCode() {
         
            return getSecurityCode(4, SecurityCodeLevel.Medium, false);
        }
    
        /**
         * 产生长度和难度任意的验证码
         *
         * @param length
         * @param level
         * @param isCanRepeat
         * @return
         */
        public static String getSecurityCode(int length, SecurityCodeLevel level, boolean isCanRepeat) {
         
            // 随机抽取len个字符
            int len = length;
            // 字符集合(--除去易混淆的数字0,1,字母l,o,O)
            char[] codes = {
         
                    '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
                    'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
                    'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'
            };
            // 根据不同难度截取字符串
            if (level == SecurityCodeLevel.Simple) {
         
                codes =
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值