前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Boot入门教程2-2、使用Spring Boot+MyBatis访问数据库(CURD)xml配置版

Spring Boot入门教程2-2、使用Spring Boot+MyBatis访问数据库(CURD)xml配置版

作者头像
KenTalk
发布2018-09-11 14:23:21
6410
发布2018-09-11 14:23:21
举报
文章被收录于专栏:Ken的杂谈
一、前言
  • 什么是MyBatis? MyBatis是目前Java平台最为流行的ORM框架 https://baike.baidu.com/item/MyBatis/2824918
  • 本篇开发环境 1、操作系统: Windows 10 X64 2、Java SDK: jdk-8u141 3、Maven:3.5 4、IDE:IntelliJ IDEA 2017 5、Spring Boot:1.5.6

本项目构建基于:https://cloud.tencent.com/developer/article/1334223

二、Spring Boot整合MyBatis
  • 引入核心依赖

package

说明

mybatis-spring-boot-starter

MyBatis核心for Spring Boot

mysql-connector-java

用于连接MySQL

pom.xml文件:

代码语言:javascript
复制
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.6.RELEASE</version>
</parent>

<dependencies>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
    </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.38</version>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

</dependencies>
  • 配置数据库连接

在配置文件:application.yml中增加以下配置:

代码语言:javascript
复制
#数据库连接配置
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/course?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
    username: mysql
    password: password

#mybatis配置
mybatis:
  mapper-locations: classpath:conf/mybatis/mapper/*.xml

数据库自行创建MySQL下载地址:https://dev.mysql.com/downloads/

  • Package创建

Package

说明

io.ken.springboot.course.model

用于存放实体

io.ken.springboot.course.dao

用于存放数据访问映射*mapper

  • user表&实体创建

1、user表创建脚本

代码语言:javascript
复制
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  `hobby` varchar(500) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、user实体

代码语言:javascript
复制
package io.ken.springboot.course.model;

public class User {

    private int id;

    private String name;

    private int age;

    private String hobby;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }


    public String getHobby() {
        return hobby;
    }

    public void setHobby(String hobby) {
        this.hobby = hobby;
    }
}

getger和setter可以选中类名之后使用快捷键Alt+Insert生成

  • 创建UserMapper,用于跟MyBatis数据操作配置(*mapper.xml)映射
代码语言:javascript
复制
package io.ken.springboot.course.dao;

import io.ken.springboot.course.model.User;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface UserMapper {

    User queryById(int id);

    List<User> queryAll();

    int add(User user);

    int delById(int id);

    int updateById(User user);
}
  • 创建MyBatis配置

1、创建MyBatis配置文件夹

resources/conf/mybatis/mapper

2、在mapper文件夹下创建UserMapper.xml

代码语言:javascript
复制
<?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">
<mapper namespace="io.ken.springboot.course.dao.UserMapper">

    <select id="queryById" resultType="io.ken.springboot.course.model.User"
            parameterType="int">
        SELECT *  FROM user WHERE id = #{id}
    </select>

    <select id="queryAll" resultType="io.ken.springboot.course.model.User">
        SELECT * FROM user
    </select>

    <insert id="add" parameterType="io.ken.springboot.course.model.User">
        INSERT INTO user(name,age,hobby) VALUES(#{name},#{age},#{hobby})
    </insert>

    <delete id="delById" parameterType="int">
        DELETE FROM user WHERE id = #{id}
    </delete>

    <update id="updateById" parameterType="io.ken.springboot.course.model.User">
        UPDATE user SET name=#{name},age=#{age},hobby=#{hobby} WHERE id = #{id}
    </update>
</mapper>
  • 创建UserController并提供API
代码语言:javascript
复制
package io.ken.springboot.course.controller;

import io.ken.springboot.course.dao.UserMapper;
import io.ken.springboot.course.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    UserMapper userMapper;

    @RequestMapping("/querybyid")
    @ResponseBody
    User queryById(int id) {
        return userMapper.queryById(id);
    }

    @RequestMapping("/queryall")
    @ResponseBody
    List<User> queryAll() {
        return userMapper.queryAll();
    }

    @RequestMapping("/add")
    @ResponseBody
    String add(User user) {
        return userMapper.add(user) == 1 ? "success" : "failed";
    }

    @RequestMapping("/updatebyid")
    @ResponseBody
    String updateById(User user) {
        return userMapper.updateById(user) == 1 ? "success" : "failed";
    }

    @RequestMapping("/delbyid")
    @ResponseBody
    String delById(int id) {
        return userMapper.delById(id) == 1 ? "success" : "failed";
    }
}
  • API测试

API

示例

添加用户

/user/add?name=tom&age=1&hobby=football

更新用户

/user/updatebyid?name=ken&age=18&hobby=coding&id=1

查询指定用户

/user/querybyid?id=1

查询所有用户

/user/queryall

删除指定用户

/user/delbyid?id=2

本文代码示例:https://github.com/ken-io/springboot-course/tree/master/chapter-02-02

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/08/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、Spring Boot整合MyBatis
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档