SpringBoot集成Mybatis

1.创建SpringBoot工程

根据 http://www.cnblogs.com/vitasyuan/p/8765329.html 说明创建SpringBoot项目。

2.添加相关依赖

在pom.xml文件中添加数据库连接和mybatis的相关依赖,完整的pom文件如下:

  <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

3.创建测试数据表

创建测试数据库:springbootdemo,并添加以下数据表:

CREATE TABLE `dictionary` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `dict_key` varchar(50) NOT NULL DEFAULT '' COMMENT '字典key',
  `dict_value` varchar(50) NOT NULL DEFAULT '' COMMENT 'value',
  `parent_id` int(11) NOT NULL COMMENT '上级节点id',
  `description` varchar(100) NOT NULL DEFAULT '' COMMENT '描述信息',
  PRIMARY KEY (`id`),
  KEY `Index_dictKey_parentId` (`dict_key`,`parent_id`)
) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8mb4 COMMENT='数据字典表';

4.添加数据库相关配置

数据库配置使用多环境配置,具体多环境配置方法参考:http://www.cnblogs.com/vitasyuan/p/8782612.html

在application-dev.properties配置文件中添加数据库相关配置:

#数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/springbootdemo
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

在application.properties文件中添加使用dev环境配置文件的内容:

#配置使用的配置环境,值为application-{profile}.properties中的profile值
spring.profiles.active=rc
#mapper文件的路径
mybatis.mapper-locations=classpath:mapper/**/*.xml

5.添加mapper文件和接口

在resource文件夹下添加mapper/demo-server文件夹,并添加dictionary.xml配置文件,配置文件内容如下:

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.example.demo.business.dictionary.dao.DictionaryDao">

    <resultMap id="DictionaryResultMap" type="com.example.demo.business.dictionary.Dictionary">
        <result property="id" column="id"></result>
        <result property="dictKey" column="dict_key"></result>
        <result property="dictValue" column="dict_value"></result>
        <result property="parentId" column="parent_id"></result>
        <result property="description" column="description"></result>
    </resultMap>

    <select id="list" resultMap="DictionaryResultMap">
        SELECT * FROM `dictionary`
    </select>

    <select id="listChildrenByKey" resultMap="DictionaryResultMap">
        SELECT * FROM dictionary where parent_id= (select id from dictionary where dict_key= #{key})
    </select>

    <delete id="delete" parameterType="int">
        delete from dictionary where id = #{id}
    </delete>

    <insert id="insert" parameterType="com.example.demo.business.dictionary.Dictionary">
        INSERT INTO `dictionary`(`dict_key`,`dict_value`,`parent_id`,`description`)
        VALUES(#{dictKey}, #{dictValue}, #{parentId}, #{description})
    </insert>
</mapper>

6.添加controller测试数据库连接

创建controller类,代码如下:

@RestController
@RequestMapping(value = "/dictionary")
public class DictionaryController {

    @Autowired
    private DictionaryDao dictionaryDao;

    @GetMapping
    public Response<List<Dictionary>> get(){
        Response<List<Dictionary>> response = new Response<>();
        response.setData(dictionaryDao.list());
        return  response;
    }
}

启动服务,在浏览器中输入访问url:

http://localhost:8080/demo/dictionary

返回以下数据:

{
  "code": 200,
  "message": "Success",
  "data": [
    {
      "id": 27,
      "dictKey": "test",
      "dictValue": "testvalue",
      "parentId": 1,
      "description": "test"
    },
    {
      "id": 30,
      "dictKey": "test",
      "dictValue": "testvalue",
      "parentId": 1,
      "description": "test"
    },
    {
      "id": 32,
      "dictKey": "test",
      "dictValue": "testvalue",
      "parentId": 1,
      "description": "test"
    },
    {
      "id": 33,
      "dictKey": "test",
      "dictValue": "testvalue",
      "parentId": 1,
      "description": "test"
    }
  ]
}

表示数据库配置成功。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云知识学习

数据库报:1130-host x.x.x.x is not allowed to connect to this MySql server

解决方法: 应该是帐号不允许从远程登陆,只能在localhost。登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,...

3689
来自专栏c#开发者

Oracle常用数据字典表

Oracle常用数据字典表      查看当前用户的缺省表空间   SQL>select username,default_tablespace ...

2716
来自专栏小狼的世界

Oracle重置过期的密码

一、由于Oracle 11g在默认的default概要文件中设置了“PASSWORD_LIFE_TIME=180”天导致;

763
来自专栏鬼谷君

saltstack returners 结果转存

1406
来自专栏鬼谷君

inception安装使用

注意bison版本,centos7如果yum安装bison,会因为版本过高导致编译报错

862
来自专栏流柯技术学院

MySQL数据库不能远程访问的解决办法

MySQL的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "u...

1283
来自专栏Android学习之路

MySql命令集锦

19313
来自专栏数据库新发现

Mysql4安装Client does not support authentication protocol requested问题的解决

Mysql4安装Client does not support authentication protocol requested问题的解决

782
来自专栏鬼谷君

如何取消mysql授权并删除用户

1065
来自专栏杨建荣的学习笔记

分分钟搭建MySQL Group Replication测试环境(r11笔记第82天)

最近看了下MySQL 5.7中的闪亮特性Group Replication,也花了不少做了些测试,发现有些方面的表现确实不赖。当然要模拟这么一套环境还是需...

3457

扫码关注云+社区