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

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

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


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
30天前
|
Java 数据库连接 Maven
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和MyBatis Generator,使用逆向工程来自动生成Java代码,包括实体类、Mapper文件和Example文件,以提高开发效率。
92 2
mybatis使用一:springboot整合mybatis、mybatis generator,使用逆向工程生成java代码。
|
30天前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
52 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
1月前
|
前端开发 Java Apache
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
本文详细讲解了如何整合Apache Shiro与Spring Boot项目,包括数据库准备、项目配置、实体类、Mapper、Service、Controller的创建和配置,以及Shiro的配置和使用。
267 1
Springboot整合shiro,带你学会shiro,入门级别教程,由浅入深,完整代码案例,各位项目想加这个模块的人也可以看这个,又或者不会mybatis-plus的也可以看这个
|
29天前
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
49 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
30天前
|
SQL Java 数据库连接
mybatis使用二:springboot 整合 mybatis,创建开发环境
这篇文章介绍了如何在SpringBoot项目中整合Mybatis和MybatisGenerator,包括添加依赖、配置数据源、修改启动主类、编写Java代码,以及使用Postman进行接口测试。
15 0
mybatis使用二:springboot 整合 mybatis,创建开发环境
|
1月前
|
Java 数据库连接 API
springBoot:后端解决跨域&Mybatis-Plus&SwaggerUI&代码生成器 (四)
本文介绍了后端解决跨域问题的方法及Mybatis-Plus的配置与使用。首先通过创建`CorsConfig`类并设置相关参数来实现跨域请求处理。接着,详细描述了如何引入Mybatis-Plus插件,包括配置`MybatisPlusConfig`类、定义Mapper接口以及Service层。此外,还展示了如何配置分页查询功能,并引入SwaggerUI进行API文档生成。最后,提供了代码生成器的配置示例,帮助快速生成项目所需的基础代码。
|
1月前
|
前端开发 Java 数据库连接
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
本文是一份全面的表白墙/留言墙项目教程,使用SpringBoot + MyBatis技术栈和MySQL数据库开发,涵盖了项目前后端开发、数据库配置、代码实现和运行的详细步骤。
37 0
表白墙/留言墙 —— 中级SpringBoot项目,MyBatis技术栈MySQL数据库开发,练手项目前后端开发(带完整源码) 全方位全步骤手把手教学
|
1月前
|
Java 数据库连接 mybatis
Springboot整合Mybatis,MybatisPlus源码分析,自动装配实现包扫描源码
该文档详细介绍了如何在Springboot Web项目中整合Mybatis,包括添加依赖、使用`@MapperScan`注解配置包扫描路径等步骤。若未使用`@MapperScan`,系统会自动扫描加了`@Mapper`注解的接口;若使用了`@MapperScan`,则按指定路径扫描。文档还深入分析了相关源码,解释了不同情况下的扫描逻辑与优先级,帮助理解Mybatis在Springboot项目中的自动配置机制。
110 0
Springboot整合Mybatis,MybatisPlus源码分析,自动装配实现包扫描源码
|
2月前
|
XML Java 关系型数据库
springboot 集成 mybatis-plus 代码生成器
本文介绍了如何在Spring Boot项目中集成MyBatis-Plus代码生成器,包括导入相关依赖坐标、配置快速代码生成器以及自定义代码生成器模板的步骤和代码示例,旨在提高开发效率,快速生成Entity、Mapper、Mapper XML、Service、Controller等代码。
springboot 集成 mybatis-plus 代码生成器
|
2月前
|
SQL XML Java
springboot整合mybatis-plus及mybatis-plus分页插件的使用
这篇文章介绍了如何在Spring Boot项目中整合MyBatis-Plus及其分页插件,包括依赖引入、配置文件编写、SQL表创建、Mapper层、Service层、Controller层的创建,以及分页插件的使用和数据展示HTML页面的编写。
springboot整合mybatis-plus及mybatis-plus分页插件的使用

推荐镜像

更多