springboot整合mybatis、mysql、freemaker基础实现

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: springboot整合mybatis、mysql、freemaker基础实现


springboot整合mybatis、mysql、freemaker基础实现


新建springboot项目

image.png


1.选择Spring Initializr及JDK版本点击next

image.png


2.根据个人需要修改对应名称

image.png


3.选择需要添加项

image.png


4.设置项目名称

image.png

点击Finish完成项目初始化。


5.删除搭建项目时生成的无用文件,删除后如图

image.png


配置项目信息

1.将application.properties后缀修改成application.yml

#数据库配置
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/springboot?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
    username: root
    password: 123456
#freemaker 配置
  freemarker:
    template-loader-path: classpath:/templates
    suffix: .ftl
#配置静态css js文件目录
  mvc:
    static-path-pattern: /static/**
#配置服务端口
server:
  port: 80
#配置*.xml文件
mybatis:
  mapper-locations: classpath:/mapper/*.xml

image.png


2.新增controller、dao、model、service包,增加如下文件

image.png


UserController.java 内容如下

package com.example.demo.controller;
import com.example.demo.model.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
/**
 * Created on 2019/5/21.
 */
@Controller
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;
    @RequestMapping("/getUser")
    public String getUser(Model model) {
        User user = userService.load(1);
        model.addAttribute("user",user);
        return "user";
    }
}


UserDaoMapper.java内容如下:

package com.example.demo.dao;
import com.example.demo.model.User;
import org.apache.ibatis.annotations.Mapper;
/**
 * Created on 2019/5/21.
 */
@Mapper
public interface UserDaoMapper {
    User load(Integer id);
}


User.java内容如下:

package com.example.demo.model;
import java.util.Date;
/**
 * Created on 2019/5/21.
 */
public class User implements java.io.Serializable{
    private java.lang.Integer id;
    private java.lang.String avatar;
    private java.lang.String account;
    private java.lang.String password;
    private java.lang.String salt;
    private java.lang.String name;
    private java.util.Date birthday;
    private java.lang.Integer sex;
    private java.lang.String email;
    private java.lang.String phone;
    private java.lang.String roleid;
    private java.lang.Integer deptid;
    private java.lang.Integer status;
    private java.util.Date createtime;
    private java.lang.Integer version;
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getAvatar() {
        return avatar;
    }
    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }
    public String getAccount() {
        return account;
    }
    public void setAccount(String account) {
        this.account = account;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getSalt() {
        return salt;
    }
    public void setSalt(String salt) {
        this.salt = salt;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Date getBirthday() {
        return birthday;
    }
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    public Integer getSex() {
        return sex;
    }
    public void setSex(Integer sex) {
        this.sex = sex;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getRoleid() {
        return roleid;
    }
    public void setRoleid(String roleid) {
        this.roleid = roleid;
    }
    public Integer getDeptid() {
        return deptid;
    }
    public void setDeptid(Integer deptid) {
        this.deptid = deptid;
    }
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public Date getCreatetime() {
        return createtime;
    }
    public void setCreatetime(Date createtime) {
        this.createtime = createtime;
    }
    public Integer getVersion() {
        return version;
    }
    public void setVersion(Integer version) {
        this.version = version;
    }
}


UserService.java内容如下:

package com.example.demo.service;
import com.example.demo.model.User;
/**
 * Created on 2019/5/21.
 */
public interface UserService {
    User load(Integer id);
}


UserServiceImpl.java内容如下

package com.example.demo.service;
import com.example.demo.dao.UserDaoMapper;
import com.example.demo.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
 * Created on 2019/5/21.
 */
@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserDaoMapper userDaoMapper;
    @Override
    public User load(Integer id) {
        User user = userDaoMapper.load(id);
        return user;
    }
}


3.在resources下增加mapper包,结构如下

image.png


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" >
<!--
     autogenerate V1.0 by dongao
-->
<mapper namespace="com.example.demo.dao.UserDaoMapper">
    <!-- 返回结果Map -->
    <resultMap type="com.example.demo.model.User" id="BaseResultMap">
        <result property="id" column="id" javaType="java.lang.Integer" jdbcType="INTEGER"/>
        <result property="avatar" column="avatar" javaType="java.lang.String" jdbcType="VARCHAR"/>
        <result property="account" column="account" javaType="java.lang.String" jdbcType="VARCHAR"/>
        <result property="password" column="password" javaType="java.lang.String" jdbcType="VARCHAR"/>
        <result property="salt" column="salt" javaType="java.lang.String" jdbcType="VARCHAR"/>
        <result property="name" column="name" javaType="java.lang.String" jdbcType="VARCHAR"/>
        <result property="birthday" column="birthday" javaType="java.util.Date" jdbcType="TIMESTAMP"/>
        <result property="sex" column="sex" javaType="java.lang.Integer" jdbcType="INTEGER"/>
        <result property="email" column="email" javaType="java.lang.String" jdbcType="VARCHAR"/>
        <result property="phone" column="phone" javaType="java.lang.String" jdbcType="VARCHAR"/>
        <result property="roleid" column="roleid" javaType="java.lang.String" jdbcType="VARCHAR"/>
        <result property="deptid" column="deptid" javaType="java.lang.Integer" jdbcType="INTEGER"/>
        <result property="status" column="status" javaType="java.lang.Integer" jdbcType="INTEGER"/>
        <result property="createtime" column="createtime" javaType="java.util.Date" jdbcType="TIMESTAMP"/>
        <result property="version" column="version" javaType="java.lang.Integer" jdbcType="INTEGER"/>
    </resultMap>
    <!--表名-->
    <sql id="table_name">user</sql>
    <!--查询字段集合-->
    <sql id="Base_Column_List">
        id,
        avatar,
        account,
        password,
        salt,
        name,
        birthday,
        sex,
        email,
        phone,
        roleid,
        deptid,
        status,
        createtime,
        version
    </sql>
    <!--查询字段-->
    <sql id="Base_Column_List_asType">
        id as "id",
        avatar as "avatar",
        account as "account",
        password as "password",
        salt as "salt",
        name as "name",
        birthday as "birthday",
        sex as "sex",
        email as "email",
        phone as "phone",
        roleid as "roleid",
        deptid as "deptid",
        status as "status",
        createtime as "createtime",
        version as "version"
    </sql>
    <!-- 根据主键查询用户 -->
    <select id="load" resultMap="BaseResultMap" parameterType="java.lang.Integer">
        select
        <include refid="Base_Column_List"/>
        from
        <include refid="table_name"/>
        where id = #{id,jdbcType=BIGINT}
    </select>
</mapper>


common.css文件内容如下:

p{font-size: 16px;color: mediumblue}


user.ftl文件内容如下:

<link href="../../static/common.css" rel="stylesheet" type="text/css" />
<h>  user</h>
<p>name:${user.name}</p>
<p>
    email:${user.email}
</p>


4.页面展示如下

image.png

注:以上内容如有不妥,欢迎指正。


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
Java 关系型数据库 MySQL
Mybatis入门之在基于Springboot的框架下拿到MySQL中数据
Mybatis入门之在基于Springboot的框架下拿到MySQL中数据
15 4
|
4天前
|
SQL Java 数据库连接
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
2万字实操案例之在Springboot框架下基于注解用Mybatis开发实现基础操作MySQL之预编译SQL主键返回增删改查
16 2
|
23天前
|
XML Java 数据库连接
MyBatis第二课,灰度发布,@Results注解,使用xml书写mysql
MyBatis第二课,灰度发布,@Results注解,使用xml书写mysql
|
1天前
|
Java 关系型数据库 MySQL
Spring Boot中集成MySQL数据库的步骤和技巧
Spring Boot中集成MySQL数据库的步骤和技巧
|
23天前
|
关系型数据库 MySQL 数据库
mysql 中文问号,mybatis-plus insert中文数据库显示问号
mysql 中文问号,mybatis-plus insert中文数据库显示问号
31 1
|
Java 程序员 应用服务中间件
SpringBoot系列(1)基础入门
相信你还在为SSM框架繁琐的搭建过程而苦恼,还在为复杂的配置文件而忧心,现在SpringBoot终于来了,它化繁为简,让开发变得极其简单而快速,短短几年时间已经成为了开发的主流框架。作为一个与时俱进的程序员,当然要把握时代的潮流,因此将从这篇文章开始,由基础到进阶,开始对springboot进行一个全面的分析。
113 0
SpringBoot系列(1)基础入门
|
Java 应用服务中间件 Maven
传统maven项目和现在spring boot项目的区别
Spring Boot:传统 Web 项目与采用 Spring Boot 项目区别
394 0
传统maven项目和现在spring boot项目的区别
|
XML Java 数据库连接
创建springboot项目的基本流程——以宠物类别为例
创建springboot项目的基本流程——以宠物类别为例
132 0
创建springboot项目的基本流程——以宠物类别为例
|
存储 机器学习/深度学习 IDE
SpringBoot 项目与被开发快速迁移|学习笔记
快速学习 SpringBoot 项目与被开发快速迁移
172 0
SpringBoot 项目与被开发快速迁移|学习笔记
|
Java Spring
自定义SpringBoot项目的启动Banner
``Banner``是``SpringBoot``框架一个特色的部分,其设计的目的无非就是一个框架的标识,其中包含了版本号、框架名称等内容,既然``SpringBoot``为我们提供了这个模块,它肯定也是可以更换的这也是``Spring``开源框架的设计理念。