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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 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

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


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
28天前
|
JavaScript 安全 Java
java版药品不良反应智能监测系统源码,采用SpringBoot、Vue、MySQL技术开发
基于B/S架构,采用Java、SpringBoot、Vue、MySQL等技术自主研发的ADR智能监测系统,适用于三甲医院,支持二次开发。该系统能自动监测全院患者药物不良反应,通过移动端和PC端实时反馈,提升用药安全。系统涵盖规则管理、监测报告、系统管理三大模块,确保精准、高效地处理ADR事件。
|
1月前
|
Java 关系型数据库 MySQL
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
57 5
|
2月前
|
分布式计算 关系型数据库 MySQL
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型 图像处理 光通信 分布式计算 算法语言 信息技术 计算机应用
60 8
|
2月前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
68 9
|
3月前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
337 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
3月前
|
Java 关系型数据库 MySQL
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
这篇文章是关于如何使用Spring Boot框架通过JdbcTemplate操作MySQL数据库的教程。
119 0
springboot学习四:springboot链接mysql数据库,使用JdbcTemplate 操作mysql
|
2月前
|
关系型数据库 MySQL Java
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
SpringBoot项目中mysql字段映射使用JSONObject和JSONArray类型
36 0
|
3月前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
86 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
Java 程序员 应用服务中间件
SpringBoot系列(1)基础入门
相信你还在为SSM框架繁琐的搭建过程而苦恼,还在为复杂的配置文件而忧心,现在SpringBoot终于来了,它化繁为简,让开发变得极其简单而快速,短短几年时间已经成为了开发的主流框架。作为一个与时俱进的程序员,当然要把握时代的潮流,因此将从这篇文章开始,由基础到进阶,开始对springboot进行一个全面的分析。
131 0
SpringBoot系列(1)基础入门
|
Java 应用服务中间件 Maven
传统maven项目和现在spring boot项目的区别
Spring Boot:传统 Web 项目与采用 Spring Boot 项目区别
514 0
传统maven项目和现在spring boot项目的区别