Mybatis简单示例程序

1、目的

本示例程序展示Mybatis的简单功能,如CRUD的功能。

2、环境

JDK17

Idea 2019

MyBatis : 3.5.13

SpringBoot 3.1.1

mysql 5.7

3、需要准备的知识

  • 了解ideal开发工具
  • 能灵活使用SpringBoot(起码入门)

4、准备的表(SQL)

CREATE TABLE `person` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'PK',
  `name` varchar(255) DEFAULT '' COMMENT '名称',
  `age` int(10) unsigned DEFAULT '1' COMMENT '年龄',
  `school` varchar(255) DEFAULT '' COMMENT '学校',
  `province` varchar(255) DEFAULT '' COMMENT '藉惯',
  `created_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `creator` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '创建人',
  `revised_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
  `reviser` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '修改人',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='会员表';

5、创建工程

用ideal工具,创建一个 maven的springboot 工程。

image.png

5.1 配置application.yml

在application.yml中加入如下内容:

#hikari配置
spring:
  datasource: # 数据源的相关配置
    type: com.zaxxer.hikari.HikariDataSource          # 数据源类型:HikariCP
    driver-class-name: com.mysql.cj.jdbc.Driver          # mysql驱动
    url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
    username: root
    password: 12345678
    hikari:
      pool-name: driver-HikariCP #连接池名称
      connection-timeout: 60000 # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 默认:30秒
      minimum-idle: 5                 # 最小连接数
      maximum-pool-size: 20 #最大连接数量
      auto-commit: true               # 自动提交
      max-lifetime: 1800000 #连接的最长生命周期
      keepalive-time: 1750000 #尝试保持连接的频率
      connection-test-query: select 1 #连接验证sql

#mybatis 配置
mybatis:
  type-aliases-package: net.jhelp.mybatis.learning.orm.entity          # 所有POJO类所在包路径
  mapper-locations: classpath:mapperXml/*.xml, classpath:mapperExt/*/*.xml      # mapper映射文件
  configuration:
    #下划线自动转驼峰
    map-underscore-to-camel-case: true
    #打印sql语句,有多种日志实现方式,常用StdOutImpl、Slf4jImpl
    #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    #log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl

6、配置springboot 的 pom引用

打开pom.xml文件,加入springboot, mybatis, mysql-java驱动的maven 引用。

效果如下:

<?xml version="1.0" encoding="UTF-8"?>
<project
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>net.jhelp.mybatis.learning</groupId>
    <artifactId>01-myfirstdemo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <description></description>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.1.1</version>
        <relativePath/>
        <!-- lookup parent from repository -->
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <jdk.version>17</jdk.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.13</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.32</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>3.0.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>6.0.10</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-test</artifactId>
            <version>3.1.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>2.0.7</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>3.0.2</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <verbose>true</verbose>
                    <overwrite>true</overwrite>
                    <configurationFile>${project.basedir}/src/main/resources/generatorConfig-mysql.xml
                    </configurationFile>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

为了方便mybatis 的dao及 entity的生成,加了入自动生成的引用